nspcc-dev / nspcc-dev/neofs-node

Do not try to put to blobstor on full write cache

Open
#3,745 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Is your feature request related to a problem? Please describe.

I'm always frustrated when I'm thinking of write cache and blobstor relations. Currently we always try to put object to blobstor if putting to write cache fails.

Describe the solution you'd like

Don't do that in case write cache is full. If that's the case it's supposed to be flushing to blobstor at the maximum speed possible and additional threads pushing objects to blobstor directly can only slow it down. If it's full because it can't flush objects to blobstor trying this direct put doesn't help either.

Describe alternatives you've considered

Keep things as is. Current behavior is somewhat better for the case when write cache can't put objects to blobstor, but direct put somehow can. I don't see this happening, but who knows.

Additional context

https://github.com/nspcc-dev/neofs-node/pull/3744#discussion_r2635320251

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

No file or test path is provided; start by locating the write-cache put handling and its fallback to blobstor. Trace how a full cache is distinguished from other write failures, then verify that a full cache no longer triggers a direct blobstor put while other fallback behavior remains unchanged.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
distributed-systems
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.