Is your feature request related to a problem? Please describe.
currently, Policer can only replenish lost EC parts within single rule
|
func (p *Policer) checkECParts(ctx context.Context, cnr cid.ID, parent oid.ID, rule iec.Rule, ruleIdx, localPartIdx int, localPartID oid.ID) { |
if more than parity_part_num parts are unavailable, it considers the reconstruction impossible
each object has multiple partitions with multiple EC rules in the policy. Thus, there are cases when missing parts (even all of them) according to a specific rule can be recreated from another partition
moreover, this will become a normal case with nspcc-dev/neofs-api#352 arrival
Describe the solution you'd like
if there are other rules:
- restore original object from them
- recreate lost parts for the broken rule
- place recreated parts as usual
Is your feature request related to a problem? Please describe.
currently, Policer can only replenish lost EC parts within single rule
neofs-node/pkg/services/policer/ec.go
Line 178 in c130f14
if more than
parity_part_numparts are unavailable, it considers the reconstruction impossibleeach object has multiple partitions with multiple EC rules in the policy. Thus, there are cases when missing parts (even all of them) according to a specific rule can be recreated from another partition
moreover, this will become a normal case with nspcc-dev/neofs-api#352 arrival
Describe the solution you'd like
if there are other rules: