Papers
Topics
Authors
Recent
Search
2000 character limit reached

Zigzag Array Codes in Distributed Storage

Updated 13 July 2026
  • Zigzag Array Codes are MDS array codes that leverage structured row permutations to rebuild lost data by accessing only a fraction of surviving nodes.
  • They attain the information-theoretic optimum rebuilding ratio of e/r, reducing data access complexity compared to earlier methods like EVENODD and RDP.
  • Extensions include variants for multiple erasures, enhanced error correction, and adaptations to small-field arithmetic, improving practical repair efficiency.

Searching arXiv for relevant papers on zigzag array codes and related developments. Zigzag Array Codes are a family of maximum-distance separable (MDS) array codes for distributed and RAID-style storage systems in which parity equations are organized through structured permutations of row indices, called zigzag sets, so that erased columns can be rebuilt by accessing only a prescribed fraction of the surviving array rather than reading all remaining data. In the original formulation, the central quantity is the rebuilding ratio R(e)R(e), defined as the fraction of surviving information accessed to exactly rebuild ee erased columns. The defining result is that, for an rr-erasure-correcting MDS array code, Zigzag Codes attain the information-theoretically optimal rebuilding ratio R(e)=e/rR(e)=e/r for 1≤e≤r1\le e\le r, while retaining efficient encoding and decoding and, in the classical construction, the optimal update property (Tamo et al., 2011). Subsequent work generalized the lower-bound theory, extended optimal rebuilding from single to multiple erasures, constructed variants with optimal rebuilding for parity-node erasures, developed error-correction algorithms beyond minimum Hamming distance, and revisited the framework to obtain small-field and low-skip-cost repair schemes (Wang et al., 2016, Zhang et al., 27 Sep 2025).

1. Definition and core coding model

An MDS array code is a two-dimensional array of size p×np\times n over a finite field FF, with kk systematic columns containing raw data and r=n−kr=n-k parity columns. The code is MDS if any rr erased columns can be exactly reconstructed from the remaining ee0 columns (Tamo et al., 2011). In later notation, the same structure is described as a systematic ee1 MDS array code with sub-packetization ee2, where a node erasure means loss of all ee3 elements in a column (Wang et al., 2016).

The distinctive performance metric is the rebuilding ratio. For ee4 erasures, it is the fraction of surviving data that must be accessed in order to rebuild the erased nodes exactly. In the original formulation,

ee5

For a single erasure in an ee6-erasure-correcting code, the surviving symbols are ee7; for ee8 erasures, they are ee9 (Tamo et al., 2011). A later averaged formulation writes the rebuilding ratio over a set rr0 of candidate erased nodes as

rr1

where rr2 is the minimum number of accessed elements required to rebuild the erased set rr3 (Wang et al., 2016).

This framework is closely related to repair bandwidth. If rr4 is the minimum number of elements transmitted from surviving nodes during rebuilding, then the normalized repair bandwidth is

rr5

Because transmitted information cannot exceed accessed information, rr6 is a lower bound on rr7 (Wang et al., 2016). This relation is important because the optimality of Zigzag Codes can be derived both from direct combinatorial counting in the array and from the storage–repair trade-off associated with regenerating-code theory (Tamo et al., 2011, Wang et al., 2016).

A further structural notion is optimal update. An MDS array code with rr8 parities is optimal update if each information element appears in exactly rr9 parity elements (Wang et al., 2016). In the original Zigzag construction, every parity element is a linear combination of exactly one element from each systematic column, and every information symbol appears exactly once in each parity column; consequently, updating one information symbol affects the information element itself and one parity symbol in each parity column, for a total of R(e)=e/rR(e)=e/r0 updates, which is optimal (Tamo et al., 2011).

2. Optimal rebuilding ratio and lower bounds

The central theorem of the original construction is that an MDS array code with R(e)=e/rR(e)=e/r1 parity columns must satisfy the lower bound

R(e)=e/rR(e)=e/r2

for exact rebuilding of R(e)=e/rR(e)=e/r3 erasures, and Zigzag Codes attain this bound for all R(e)=e/rR(e)=e/r4 (Tamo et al., 2011). For the particularly important case of a single erasure in a two-parity code, previous work had only bounded the rebuilding ratio between R(e)=e/rR(e)=e/r5 and R(e)=e/rR(e)=e/r6; Zigzag Codes resolved the open problem by proving that the exact optimum is R(e)=e/rR(e)=e/r7 and by constructing codes that achieve it (Tamo et al., 2011).

The lower bound has both an array-theoretic and a bandwidth-theoretic interpretation. In array terms, for arrays with R(e)=e/rR(e)=e/r8 rows, at least R(e)=e/rR(e)=e/r9 zigzag equations are required across the 1≤e≤r1\le e\le r0 parity columns; by the pigeonhole principle, one parity contributes at least 1≤e≤r1\le e\le r1 equations, which forces each surviving systematic column to supply at least an 1≤e≤r1\le e\le r2 fraction of its symbols (Tamo et al., 2011). In bandwidth terms, for exact-repair reconstructing codes with node storage 1≤e≤r1\le e\le r3, helper degree 1≤e≤r1\le e\le r4, and per-helper transmission 1≤e≤r1\le e\le r5, the file size 1≤e≤r1\le e\le r6 satisfies

1≤e≤r1\le e\le r7

where 1≤e≤r1\le e\le r8, 1≤e≤r1\le e\le r9. For MDS codes, this yields

p×np\times n0

and with all remaining nodes available, p×np\times n1, the normalized repair-bandwidth lower bound becomes p×np\times n2, implying p×np\times n3 (Wang et al., 2016).

The practical significance of this optimum is clearest in comparison with earlier two-parity array codes. EVENODD and RDP require approximately p×np\times n4 of the surviving data to rebuild one erased systematic column, whereas Zigzag achieves the optimal p×np\times n5; with three parities, the generalized Zigzag construction attains p×np\times n6 (Tamo et al., 2011). This suggests that the contribution of Zigzag Codes is not merely an incremental improvement in access volume, but the exact attainment of the minimum permitted by the MDS and exact-repair constraints.

3. Classical construction for two parities

The canonical p×np\times n7 Zigzag construction is specified by a binary-vector permutation framework. Fix p×np\times n8. The array has p×np\times n9 rows, FF0 systematic columns, and two parity columns: a row parity and a zigzag parity (Tamo et al., 2011). Choose a set FF1 of FF2 nonzero binary vectors FF3. For each FF4, define a permutation on row indices FF5, viewed in binary, by

FF6

where addition is bitwise XOR. Also define the orthogonality set

FF7

where the inner product is over FF8. Each FF9 has size kk0 (Tamo et al., 2011).

The row parity is defined by

kk1

and the zigzag parity by

kk2

In the optimal-update form, every parity element is a linear combination of exactly one element from each systematic column (Tamo et al., 2011).

For single-erasure rebuilding of systematic column kk3, the rows are partitioned into

kk4

Elements in rows kk5 are rebuilt from row parity, and elements in rows kk6 are rebuilt from zigzag parity (Tamo et al., 2011). Explicitly, for kk7,

kk8

and for kk9,

r=n−kr=n-k0

Only half the rows are used, so r=n−kr=n-k1 (Tamo et al., 2011).

The exact access count is governed by the interaction between the row-based and zigzag-based accesses. For distinct r=n−kr=n-k2, the number of elements accessed in surviving node r=n−kr=n-k3 while rebuilding node r=n−kr=n-k4 equals

r=n−kr=n-k5

Moreover, when r=n−kr=n-k6 and r=n−kr=n-k7,

r=n−kr=n-k8

where r=n−kr=n-k9 counts positions with rr0 and rr1 (Tamo et al., 2011). This leads to the notion of orthogonal permutations: a family rr2 with associated subsets rr3 of size rr4 is orthogonal if

rr5

The fundamental rr6 theorem chooses

rr7

where rr8 is the standard basis of rr9 and ee00 is the all-ones mask used to define

ee01

With ee02 and ee03 defined as above, the resulting ee04 array code has rebuilding ratio ee05 for any single systematic erasure (Tamo et al., 2011).

4. MDS property, coefficients, and decoding

Achieving the rebuilding optimum does not by itself ensure the MDS property; the parity coefficients must be chosen so that any two erased columns can be recovered. For the ee06 optimal Zigzag Code, a simple assignment over ee07 suffices, and ee08 is the smallest possible field (Tamo et al., 2011).

The coefficient assignment is: ee09 and

ee10

where

ee11

Here the exponent ee12 is computed in ee13, and ee14 is the primitive element (Tamo et al., 2011). With these coefficients, the ee15 Zigzag Code is MDS. In particular, for any two erased systematic columns ee16 and rows ee17,

ee18

so the resulting ee19 linear system built from two row-parity and two zigzag-parity equations is nonsingular (Tamo et al., 2011).

The explicit encoding equations are correspondingly simple. If ee20 is the systematic symbol at row ee21, column ee22, then

ee23

and

ee24

This form makes both encoding and rebuilding sparse: each parity symbol depends on one symbol per systematic column (Tamo et al., 2011).

For two systematic erasures with ee25, two cases arise. If the corresponding permutations are equal, the unknowns in each row decouple into a ee26 system,

ee27

where ee28 are assembled from row and zigzag parities. Otherwise, rows are paired by ee29, giving a coupled ee30 system that remains nonsingular over ee31 under the above coefficient assignment (Tamo et al., 2011).

The later general formalism rewrites Zigzag Codes by parity encoding matrices. For prime ee32, with ee33, vectors ee34, and parity index ee35, the parity node ee36 is governed by permutations

ee37

and can be represented through generalized permutation matrices ee38. The full generator matrix has the block form

ee39

and sufficiently large fields allow coefficient assignments that make every ee40 block submatrix corresponding to ee41 erased nodes invertible (Wang et al., 2016).

5. Generalization to ee42 parities and multiple erasures

The original paper generalized the binary construction to ee43-ary permutations, taking ee44 rows and vectors ee45 satisfying ee46 for each ee47 (Tamo et al., 2011). For parity index ee48,

ee49

and

ee50

Parity node ee51 uses zigzag sets ee52 containing symbols ee53 satisfying ee54 (Tamo et al., 2011).

The optimal single-erasure result over ee55 parities is obtained by choosing the orthogonal family generated by ee56. The resulting ee57 Zigzag Code has rebuilding ratio ee58 for any single systematic erasure (Tamo et al., 2011). For ee59, a field of size at most ee60 suffices in the optimal construction via commuting block-permutation matrices augmented by powers of a primitive element (Tamo et al., 2011).

The later multiple-erasure theory established precise necessary and sufficient conditions for optimal rebuilding in general Zigzag Codes. For erasures ee61, define, for each parity ee62, the group ee63 generated by ee64. Optimal rebuilding ratio ee65 holds if there exists a set ee66 of size ee67 such that:

  1. for each parity ee68, every ee69 stabilizes ee70;
  2. for each erased systematic node ee71,

ee72

  1. the selected ee73 zigzag equations are linearly independent (Wang et al., 2016).

In the vector-indexed special case, writing rows as ee74, define

ee75

Then optimal rebuilding is achieved if there exists ee76 of size ee77 that is a union of cosets of ee78 and satisfies

ee79

for each erased ee80, together with linear independence of the selected equations (Wang et al., 2016). This condition reduces further to

ee81

which is both necessary and sufficient for the existence of such an ee82 (Wang et al., 2016).

An explicit rebuilding algorithm follows this structure. For given erasures ee83:

  1. compute ee84 with ee85 a maximal admissible subset of survivors;
  2. find ee86 such that ee87 for all erased ee88, set ee89, and let ee90 be any union of ee91 cosets of ee92;
  3. from each parity ee93, access rows ee94 and the corresponding surviving systematic elements, then solve the resulting ee95 equations (Wang et al., 2016).

The same work proved that the optimal Zigzag Code with ee96, ee97, and ee98 is MDS and achieves the optimal rebuilding ratio ee99 for any set of rr00 erasures, rr01 (Wang et al., 2016). For rr02, the required fields remain rr03 and rr04, respectively (Wang et al., 2016).

6. Variants, error correction, and practical trade-offs

A major limitation of the original optimal-update Zigzag Codes is asymmetry between systematic and parity erasures: for rr05, they achieve optimal rebuilding ratio rr06 for a systematic-node erasure, but rebuilding a parity-node erasure requires accessing all remaining information (Wang et al., 2016). To address this, a later construction introduced a systematic MDS array code with rr07 systematic nodes, rr08 parities, and rr09 rows, achieving rebuilding ratio rr10 for any single erasure, whether systematic or parity (Wang et al., 2016). The trade-off is update cost: this construction is not optimal update, since each information element appears in rr11 parity symbols (Wang et al., 2016).

Zigzag Codes also admit syndrome-based error-correction procedures. For rr12 two-parity codes, if one systematic column is erased and at most one element error occurs in another systematic column, syndromes

rr13

identify the error location and support correction (Tamo et al., 2011). The expanded formulation gives an algorithm that corrects one node erasure plus one element error—beyond the minimum distance 3 for two parities—by using the MDS condition

rr14

to disambiguate candidate error positions (Wang et al., 2016). For general rr15, a single node error can be corrected by syndromes

rr16

using the test rr17 to identify the erroneous systematic column (Wang et al., 2016).

There is also a binary-field branch of the Zigzag literature. A two-parity GFrr18 construction achieved optimal repair of a failed information node using XOR operations only by sacrificing optimal update (Gad et al., 2013). In that design, the sub-packetization is

rr19

the row parity is

rr20

and the zigzag permutation for column rr21 is

rr22

To preserve the MDS property over GFrr23, the zigzag parity augments the classical one-symbol-per-column pattern with extra terms determined by “dark” positions and right-neighbor sets. The construction still repairs a single systematic failure by reading exactly rr24 symbols from each helper, but the expected number of parity updates per information update becomes rr25, and the worst-case number becomes rr26 (Gad et al., 2013). This suggests a broader pattern in the Zigzag family: smaller fields and simpler arithmetic may be obtained by relinquishing the optimal-update property.

7. Scaling, modern revisions, and relation to MSR formulations

The core optimal-update construction has a stringent size constraint: for rr27, any orthogonal-permutation code over rr28 rows has at most rr29 systematic columns, which is tight for the standard-basis construction (Tamo et al., 2011). Thus the number of rows is exponential in the number of columns for exact optimal ratio together with optimal update (Tamo et al., 2011). Duplication can enlarge rr30: duplicating each permutation rr31 times yields rr32 codes with rebuilding ratio

rr33

For the optimal rr34 code, this gives rr35 as rr36 (Tamo et al., 2011). The same source notes that alternative constructions using weight-3 vector sets achieve rr37 columns with ratio approximately rr38 on small constant fields such as GFrr39 or GFrr40 (Tamo et al., 2011).

A later revision revisited Zigzag Codes from the perspective of small fields and I/O locality. For row-indexing group rr41, with field characteristic two, explicit Cauchy-type coefficients

rr42

over any field with rr43 guarantee the MDS property, thereby decoupling rr44, rr45, and rr46 in a way that differs from classical rr47 Zigzag parameterizations (Zhang et al., 27 Sep 2025). The same work introduced an ordering-and-subgroup framework yielding repair-by-transfer schemes with bounded skip cost and low repair-fragmentation ratio while preserving optimal access and optimal rebuilding ratio for single-node repair. Its explicit families include zero skip-cost constructions with rates approaching rr48, and bounded skip-cost families with rates approaching rr49 and rr50 (Zhang et al., 27 Sep 2025). This indicates that the Zigzag paradigm can be adapted to storage settings where read contiguity and helper-side simplicity are as important as access volume.

Zigzag ideas also appear in minimum-storage regenerating (MSR) formulations. In Zigzag MSR codes, parity-check structure is expressed through block Vandermonde matrices and permutation-shift matrices rr51, and single-node repair attains the MSR point with optimal bandwidth (Liu et al., 27 Feb 2025). A cooperative repair scheme for Zigzag MSR codes was later proposed for any number rr52 of simultaneous failures, using rr53 space-shared instances of the original Zigzag MSR code and achieving the cooperative cut-set bound with

rr54

while reducing the field-size requirement to rr55 (Liu et al., 27 Feb 2025). Although these MSR constructions belong to a regenerating-code rather than a classical array-code formulation, they preserve the central Zigzag feature: highly structured permutation-based interference alignment.

Several limitations remain intrinsic across the literature. Exact optimal ratio in the classical constructions requires rr56, hence large sub-packetization; orthogonality of permutations is essential for the exact rr57 single-erasure ratio; and some Zigzag codes exhibit a threshold rr58 such that optimal rebuilding holds only for rr59 (Tamo et al., 2011, Wang et al., 2016). The 2016 work proves a monotonicity property: if optimal rebuilding holds for rr60, it also holds for all rr61 (Wang et al., 2016). A plausible implication is that the geometry of the vector set rr62 determines not only repair efficiency but also a phase transition in which erasure patterns admit the coset-stability conditions required for exact rr63 rebuilding.

Taken together, these results establish Zigzag Array Codes as a structurally rich class of MDS array codes in which rebuild efficiency is controlled through algebraic permutations on row indices. Their foundational contribution is the exact attainment of the rebuilding lower bound rr64 under exact repair, first for one erasure with two parities and then for all rr65 in broader families (Tamo et al., 2011, Wang et al., 2016). Later developments show that the same framework can be modified to optimize parity repair, support error correction beyond minimum distance, operate over GFrr66, reduce field size, improve I/O locality, and support cooperative repair in MSR settings (Gad et al., 2013, Zhang et al., 27 Sep 2025, Liu et al., 27 Feb 2025).

Topic to Video (Beta)

No one has generated a video about this topic yet.

Whiteboard

No one has generated a whiteboard explanation for this topic yet.

Follow Topic

Get notified by email when new papers are published related to Zigzag Array Codes.