nspcc-dev / nspcc-dev/neofs-node

Unify REP and EC code in GET server implementation

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

Nobody has claimed this yet.

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

Description

This duplicates some logic we already have in the service (assembly_v2.go) which will add maintenance cost and headache. We need more code reuse for split assembly.

Originally posted by @roman-khimov in https://github.com/nspcc-dev/neofs-node/pull/3754#discussion_r2647143272

code is quite outdated, and many updates have been added on top of it, only adding to its complexity. The EC was the largest, so it was added nearby. It is proposed to perform a general code refactoring in careful, small steps. The secondary goal is to share the common logic between REP and EC.

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 comparing the GET server implementation with the existing service logic in assembly_v2.go, focusing on duplicated REP and EC assembly paths. Map the common behavior before making changes; done means the duplicated logic is shared without changing GET behavior. No specific tests are named in the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
distributed-systems
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.