nspcc-dev / nspcc-dev/neofs-node

Improve configuration defaults and documentation

Open
#1,764 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

documentation enhancement I3 neofs-storage S4 U3
Dominant language
Go
Stars
38
Forks
51
Avg merge
1d 20h
Merged PRs (30d)
38

Description

Currently, we have a lot of parameters which affect the runtime performance. These include pool sizes, batch sizes, timeouts etc.
All parameters are set independently and have constant defaults. I think we can improve this in a number of ways:

  1. Document how one parameter can affect others. For example, object.put.pool_size_remote is also used in policer and tuned in runtime.
  2. Allow to set default for one parameter based on another parameter.
    2.1. Example: default replicator settings in the tree service can be set based on batch size.
    2.2. Example: apiclient.stream_timeout can be set based on dial_timeout, as the former in some sense reflects network latency expectations.
    2.3. Example: shard pool size and put service local poll size are connected to each other.
  3. Defaults should be set as expected for public networks, private installations should override, not the other way.
  4. neofs-adm storage-config can incorporate some of this complexity.
  5. For private installations with the known configuration (the amount of consensus and storage nodes), we should give some general recommendations.

It is already proven to be complex during our performance testing, the goal is to make it more understandable for an average user.

I am making this an epic issue, let's discuss what we want and create tasks afterwise.

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 inventorying the runtime parameters described in the issue, including pool sizes, batch sizes, timeouts, and the tree service replicator settings. Review how neofs-adm storage-config could expose this complexity and map the relationships between parameters. Done requires agreed follow-up tasks, documented interactions, derived defaults, and recommendations for public and private networks.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.