mirror of
https://github.com/nspcc-dev/neofs-api.git
synced 2026-03-01 04:28:54 +00:00
Initial placement constraints #135
Labels
No labels
I0
I1
I2
I3
I4
S0
S1
S2
S3
S3
S4
U2
U3
U4
bug
discussion
discussion
documentation
enhancement
enhancement
enhancement
feature
good first issue
question
task
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nspcc-dev/neofs-api#135
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @roman-khimov on GitHub (Oct 24, 2025).
Is your feature request related to a problem? Please describe.
I'm always frustrated when we can't have policy-defined delayed placement, make some copies initially and let the system handle the rest in the background. CopiesNumber tried to do that, but:
Describe the solution you'd like
Use main policy as a source of data. That's critical, the node set must remain the same. We have some vectors and REPs there (or just vectors for EC). Add the following set of settings to container as initial placement constraints: max replicas number, locality preference flag and a set of replica numbers per placement vector (+EC).
The way it works is:
Practical constraints for "REP 2 in MSK REP 2 in SPB REP 2 in NSK" policy:
The scheme seems to be expressive enough to cover all potential use cases. In each case remaining replicas (or EC plcaments) are done asynchronously. Node policer can be optimized to perform these replications with priority to regular checks/relocations.
Deprecate CopiesNumber.
@cthulhu-rider commented on GitHub (Oct 24, 2025):
for EC, deferred parity calculation and placement may be considered. For example, as for REP
these numbers may control number of parity parts created per-rule initially
in this approach, 0 can cause a collision in multi-rule setting: having core
EC 2/2 EC 3/1and initial[2, 0], the system may not understand whether it needs to save data without parity for the second rule or just skip it