nspcc-dev / nspcc-dev/neofs-node

Meta: optimize indexing objects

Open
#3,401 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

blocked enhancement I4 neofs-storage performance S2 U2
Dominant language
Go
Stars
38
Forks
51
Avg merge
1d 20h
Merged PRs (30d)
38

Description

It is known that it is possible to PUT objects more often than meta indexing can do: 1K queue is filled quite fast (minutes on real machines with real networks) and even 1M queue does not stand forever.

Expected Behavior

Handing objects from a block should take time that can compete block time itself. In our meta tests it is 50/100ms.

Current Behavior

Handling notifications from block takes longer than the block lasts, block queue fills quite fast.

Possible Solution

  1. Cache HEADers in memory as objects are stored in the storage engine
  2. Optimize indexing storage
  3. ...

Steps to Reproduce (for bugs)

Longivity PUT tests with small object sizes.

Regression

No

Your Environment

0.47.0

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading pkg/services/meta/meta.go around line 137 and running the longevity PUT tests with small object sizes. Measure notification handling against block duration and inspect the queue growth described in the issue. Done means block notifications are processed quickly enough to prevent the queue from filling under the reported workload.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
distributed-systems, performance
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.