Skip to content

Support EC recreation from other rules in Policer #3848

@cthulhu-rider

Description

@cthulhu-rider

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:

  1. restore original object from them
  2. recreate lost parts for the broken rule
  3. place recreated parts as usual

Metadata

Metadata

Assignees

No one assigned

    Labels

    I3Minimal impactS3Minimally significantU3RegularenhancementImproving existing functionalityneofs-storageStorage node application issues

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions