Source-linked AI summary

Self-repairing Homomorphic Codes for Distributed Storage Systems

Frederique Oggier, Anwitaman Datta

arXiv:1008.0064v1cs.DC

TL;DR

Traditional erasure-code maintenance can require reconstructing the whole object before repairing an individual fragment, creating high communication overhead. The paper proposes self-repairing codes that repair fragments directly from fixed-size subsets and support parallel repairs, while requiring marginally more redundancy and storage.

  • Problem

    Erasure codes are storage-efficient but can impose high communication overhead when lost fragments must be replenished.

  • Method

    The paper proposes self-repairing codes that directly repair encoded fragments from subsets whose size depends on the number of missing blocks, not their identities.

  • Results

    SRCs provide low-bandwidth repairs and parallel, independent replenishment, with marginally more storage required than traditional erasure codes for equivalent static resilience.

  • Takeaways & Limitations

    SRCs are presented as a practical candidate for networked distributed storage because their repair properties support lower communication overhead and latency.

  • Takeaways & Limitations

    The qualitative repair scenario assumes each node transfers one coded fragment per unit time and aggregate network bandwidth is much larger.

Abstract

from arXiv · show

Erasure codes provide a storage efficient alternative to replication based redundancy in (networked) storage systems. They however entail high communication overhead for maintenance, when some of the encoded fragments are lost and need to be replenished. Such overheads arise from the fundamental need to recreate (or keep separately) first a copy of the whole object before any individual encoded fragment can be generated and replenished. There has been recently intense interest to explore alternatives, most prominent ones being regenerating codes (RGC) and hierarchical codes (HC). We propose as an alternative a new family of codes to improve the maintenance process, which we call self-repairing codes (SRC), with the following salient features: (a) encoded fragments can be repaired directly from other subsets of encoded fragments without having to reconstruct first the original data, ensuring that (b) a fragment is repaired from a fixed number of encoded fragments, the number depending only on how many encoded blocks are missing and independent of which specific blocks are missing. These properties allow for not only low communication overhead to recreate a missing fragment, but also independent reconstruction of different missing fragments in parallel, possibly in different parts of the network. We analyze the static resilience of SRCs with respect to traditional erasure codes, and observe that SRCs incur marginally larger storage overhead in order to achieve the aforementioned properties. The salient SRC properties naturally translate to low communication overheads for reconstruction of lost fragments, and allow reconstruction with lower latency by facilitating repairs in parallel. These desirable properties make self-repairing codes a good and practical candidate for networked distributed storage systems.

I. INTRODUCTION

Erasure codes reduce storage overhead but make redundancy maintenance expensive because repairing a fragment traditionally requires reconstructing the whole object. The paper proposes self-repairing codes, which directly repair fragments from fixed-size subsets and support parallel replenishment, while trading away some static resilience or storage efficiency.

  • Motivation: Erasure-code repair can require fetching k encoded fragments to reconstruct the object before recreating each missing fragment.This creates k-fold more network traffic for every lost fragment under the naive strategy.
  • Motivation: Hybrid replicas match lost-data traffic but add storage inefficiency and system complexity.Lazy maintenance amortizes repairs but can delay recovery, increase vulnerability, and create network-usage spikes.
  • Self-repairing codes: SRCs minimize the number of nodes needed to reconstruct a missing block, reducing bandwidth and maintenance complexity while enabling faster parallel replenishment.This places SRCs at a different point in the design space from regenerating and hierarchical codes.
  • Self-repairing codes: Self-repairing codes directly repair encoded fragments from other subsets without first reconstructing the original data.Their repair input count depends on the number of missing blocks, not which specific blocks are missing.
  • Trade-offs: SRCs require more redundancy than erasure codes, and their k-fragment object recovery uses many suitable combinations rather than any arbitrary k fragments.The paper describes this as a trade-off between repair ability and extra redundancy.
  • Contributions: The paper contributes a deterministic Homomorphic Self-Repairing Code construction with computationally efficient self-repair operations.For equivalent static resilience, HSRC requires marginally more storage than traditional erasure codes.

II. LINEAR CODING THROUGH POLYNOMIALS

This section formalizes linear erasure coding over finite fields and explains how polynomial evaluation maps object fragments into encoded fragments stored across nodes. A Reed–Solomon example illustrates the encoding process concretely.

  • Finite fields: Finite-field elements in Fq with q = 2^m can be represented as m-dimensional binary vectors using a fixed basis.Addition and multiplication in F2 are performed modulo 2.
  • Erasure codes: A linear (n, k, d) erasure code maps a k-dimensional vector over Fq to an n-dimensional encoded vector.The codebook is the set of all resulting codewords.
  • Erasure codes: The minimum distance determines erasure tolerance, with MDS codes achieving n−k tolerance and recovery from any k encoded coefficients.Hamming distance counts positions where two codewords differ.
  • Polynomial encoding: Polynomial evaluation implements linear coding by encoding object fragments as polynomial coefficients and evaluating the polynomial at n field elements.The resulting evaluations form the encoded codeword.
  • Example: In the (3,2) Reed–Solomon example, two F4 fragments are encoded into three nodes, each storing two bits.The three stored pairs are obtained from evaluations at 1, w, and w + 1.

III. HOMOMORPHIC CODES

The paper introduces polynomial classes whose algebraic structure supports homomorphic operations over finite fields. In particular, weakly linearized polynomials preserve addition, enabling the code construction developed later.

  • Polynomial classes: The construction uses special polynomial classes as the basis for homomorphic codes, a class of self-repairing codes.The paper first recalls linearized polynomials before defining weakly linearized polynomials.
  • Homomorphic property: Characteristic two gives (a+b)^2 = a^2 + b^2, which underlies the additive behavior used by the polynomial construction.The paper applies this identity to powers of field elements.
  • Polynomial classes: A linearized polynomial over Fq, q = 2^m, has a specialized form that supports the required finite-field algebra.The supplied passage introduces the definition without displaying its full formula.
  • Polynomial classes: Weakly linearized polynomials are introduced as a related polynomial class whose parameter k later corresponds to the number of data symbols encoded.The paper motivates the terminology through a subsequent algebraic property.
  • Homomorphic property: For a weakly linearized polynomial p, p(a + b) = p(a) + p(b) over the characteristic-two field.This additive property is established as Lemma 1.
  • Polynomial classes: The paper generalizes the polynomial form using s = 2^l, with 1 ≤ l ≤ m, and derives a strengthened algebraic lemma.The case l = m yields a linearized polynomial.

B. Self-repairing codes using weakly linearized polynomials

The paper constructs homomorphic self-repairing codes by encoding fragments as coefficients of linearized polynomials and evaluating them over finite-field elements. Suitable evaluation points let encoded fragments be formed from linear combinations of others, enabling self-repair, while basis-only choices do not.

  • Construction: The encoding and decoding procedures mimic Reed–Solomon coding for weakly linearized polynomials, although the described processes are not efficient algorithms.Efficient implementations are left as a separate issue.
  • Construction: The construction decomposes an object of length M into k fragments of length M/k, encodes them as polynomial coefficients, and evaluates the polynomial at n nonzero field elements.Each evaluated fragment is assigned to a storage node.
  • Self-repair structure: For n = 2^(M/k)−1, evaluation points can be expressed as F2-linear combinations of a basis of F2^(M/k).This maximum code length permits the homomorphic structure used for self-repair.
  • Self-repair structure: An encoded fragment can be obtained as a linear combination of other encoded fragments, with reconstruction requiring XORs ranging from one favorable case to k−1 in the worst case.The code has no self-repairing property when all evaluation points lie in the basis itself.
  • Example: In the example with M = 12 and k = 3, n = 4 provides no self-repair, whereas n = 7 supports reconstructing a missing p(w5) from p(w2) and p(w).The example evaluates the polynomial over elements of F2^4.
  • Example: Different choices of n and evaluation points produce self-repairing codes, and choosing a subspace yields the XOR-like Homomorphic SRC structure analyzed in the paper.The encoded fragments still contain information about all original fragments rather than being simple XORs of the data.

IV. STATIC RESILIENCE ANALYSIS

The static resilience analysis evaluates whether an object remains recoverable from surviving encoded fragments before maintenance occurs. It compares HSRC recovery with traditional erasure codes under independent node-availability assumptions.

  • Definition: Static resilience is the probability that a stored object remains available without further maintenance when a fraction of member nodes becomes unavailable.The analysis considers recovery before the maintenance process is examined.
  • Analysis scope: HSRC recovery is studied against traditional erasure-code recovery before analyzing the communication overhead of replenishing lost fragments.This separates static object availability from maintenance performance.
  • Assumptions: The analysis assumes each node is independently available with probability pfrag, and that no two fragments of one object share a node.Under these assumptions, fragment availability is also independent with probability pfrag.

A. A network matrix representation

The network representation models encoded fragments as rows of a binary matrix, so node failures correspond to missing rows. Object recovery then depends on whether the surviving submatrix has rank at least k.

  • Representation: An object of length M is divided into k fragments of length M/k and encoded into n fragments of the same length.The fragments are represented through the coding matrix.
  • Representation: Each encoded fragment is stored at one node, producing an n × M/k binary matrix whose rows represent node-held fragments.The matrix entries describe the binary vectors held by the n nodes.
  • Examples: The examples instantiate the representation for n = 4 and n = 7 using matrices associated with the coding construction.The n = 4 case uses the 4-dimensional identity matrix.
  • Failure model: A node becoming unavailable is equivalent to removing a random matrix row, and n−x unavailable nodes leave an x × M/k surviving submatrix.The remaining x nodes provide x encoded fragments.
  • Recovery condition: The original object is recoverable from a surviving submatrix exactly when that matrix contains at least k linearly independent rows, equivalently when its rank is at least k.Recovery depends on the rank of the available encoded fragments.

B. Probability of object retrieval

The paper derives the object-recovery probability for HSRC codes by counting surviving submatrices by rank and weighting those ranks under independent fragment availability. It then validates the analysis by simulation and compares resilience with standard erasure codes.

  • Rank counting: R(x, d, r) counts x × d submatrices of a tall binary matrix having rank r, including row permutations in the initial count.The rank-counting framework excludes impossible rank values based on matrix dimensions.
  • Rank counting: For r < x with r ≤ d, the rank counts satisfy R(x, d, r) = R(x−1, d, r−1)(2^d−2^r−1)+R(x−1, d, r)(2^r−2^?x).The recurrence separates adding a linearly independent row from adding a dependent row; the supplied expression contains a garbled final exponent term.
  • Probability calculation: The fraction ρ(x, d, r) normalizes rank counts over all x × d submatrices after accounting for row-selection and permutation factors.The normalization removes permutations counted in the preceding analysis.
  • Probability calculation: The object-recovery probability pobj combines the distribution of available fragments with the fraction of surviving submatrices whose rank is sufficient for recovery.For HSRC(n, k), the calculation applies the rank results to an object split into k fragments and encoded into n fragments.
  • Code parameters: For the analyzed HSRC construction, d = log2 n + 1, with special handling when n reaches nmax or equals 2^i−1.Redundant columns are removed in the latter case before applying the rank-counting result.
  • Validation: Simulations precisely match the analytical results shown in Figure 1(a).The simulation is presented as validation of the resilience analysis.

C. Comparison with standard erasure codes

The proposed homomorphic SRC is compared with standard erasure codes using static resilience, with simulations validating the analysis. SRC incurs marginal extra redundancy while achieving resilience close to EC.

  • Figures 1(b) and 1(c) compare the static resilience of homomorphic SRC with traditional erasure codes.
  • SRC requires extra code redundancy, but the resulting storage overhead is marginal.
  • For the same storage overhead n/k, SRC static resilience is slightly lower than EC, approaching EC as n increases for fixed k.
  • Even with low storage overhead and relatively high pfrag, object availability can be 1.

V. COMMUNICATION OVERHEADS OF SELF-REPAIR

SRC diversity quantifies alternative fragment pairs for repair. For homomorphic SRC, this structure yields a repair guarantee whenever at least (n+1)/2 fragments remain available.

  • Diversity δ is the number of mutually exclusive fragment pairs that can recreate a specific fragment.
  • A missing fragment can be reconstructed from any of three exclusive fragment pairs in the example.
  • For HSRC(n, k), diversity is δ = (n −1)/2.
  • The HSRC diversity construction counts distinct pairs (α+β, β), identifying equivalent pairs only once.
  • If at least (n+1)/2 fragments are available, every unavailable fragment has an available pair sufficient for reconstruction.

A. Overheads of recreating one specific missing fragment

SRC estimates repair traffic for one missing fragment from the number of currently available fragments, using two-fragment repair when availability is sufficiently high and probabilistic larger downloads otherwise. Compared with traditional erasure-code repair, SRC can avoid reconstructing the whole object, while lazy EC repair may reduce aggregate bandwidth below SRC under some thresholds.

  • Comparison with erasure codes: Traditional erasure-code eager repair incurs k downloads for each repaired fragment and is excluded from the comparison as the worst case.The conventional procedure first reconstructs the original object and then recreates the missing fragment.
  • Traffic comparison: Figure 2 compares average traffic per lost block across SRC parallel and sequential repairs and traditional erasure-code repair as xth varies.Repairs are triggered when available fragments are no more than xth; eager SRC uses two fragments per lost block.
  • Lazy-repair trade-offs: Lazy repair can outperform SRC in total bandwidth when xth is chosen below xc, but waiting too long can increase vulnerability to further failures.The paper identifies practical parameter settings where SRC remains preferable because very low or very high thresholds create operational drawbacks.
  • Threshold flexibility: SRC keeps repair cost per lost block constant across a broad threshold range, including lazy thresholds satisfying xth ≥ (n + 1)/2.This supports flexible eager or lazy repair choices while avoiding several vulnerability and bandwidth-spike drawbacks associated with lazy traditional erasure-code repair.

C. Fast parallel repairs using SRC: A qualitative discussion

SRC supports independent parallel reconstruction of multiple missing fragments, enabling fast distributed repair. In the seven-fragment example, SRC finishes faster than both a maintained full replica and traditional erasure-code repair under the stated unit-capacity assumptions.

  • Parallel repair: SRC can repair different missing fragments independently and in parallel, reducing repair time and the period during which further faults may cause deterioration or object loss.The scenario assumes each node can transfer one coded fragment per unit time and the aggregate network bandwidth is much larger.
  • Example schedule: Seven missing fragments are reconstructed through a distributed schedule that downloads different available fragments at different nodes across successive time slots.The example uses an HSRC(15, 3) configuration and enumerates available fragment pairs for the missing blocks.

VI. CONCLUSION

The paper concludes that self-repairing codes offer low-bandwidth, flexible repairs and fast parallel replenishment for distributed storage. These benefits require a marginal static-resilience or storage-space trade-off and leave implementation challenges for future work.

  • Conclusion: SRC provides low-bandwidth repairs with flexible eager or lazy strategies and supports parallel, independent replenishment of lost redundancy.The conclusion identifies these as the main advantages over traditional erasure-code maintenance.
  • Trade-off: SRC marginally compromises static resilience at the same storage overhead, or requires marginally more storage to achieve equivalent static resilience.The trade-off is the stated cost of the self-repairing property relative to erasure codes.
  • Future work: Efficient decoding algorithms and fragment placement that leverages network topology remain algorithmic and systems challenges.The paper identifies these as ongoing and future work needed to harness SRCs in distributed storage systems.
Loading 1008.0064v1…