Zigzag Array Codes in Distributed Storage
- 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 , defined as the fraction of surviving information accessed to exactly rebuild erased columns. The defining result is that, for an -erasure-correcting MDS array code, Zigzag Codes attain the information-theoretically optimal rebuilding ratio for , 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 over a finite field , with systematic columns containing raw data and parity columns. The code is MDS if any erased columns can be exactly reconstructed from the remaining 0 columns (Tamo et al., 2011). In later notation, the same structure is described as a systematic 1 MDS array code with sub-packetization 2, where a node erasure means loss of all 3 elements in a column (Wang et al., 2016).
The distinctive performance metric is the rebuilding ratio. For 4 erasures, it is the fraction of surviving data that must be accessed in order to rebuild the erased nodes exactly. In the original formulation,
5
For a single erasure in an 6-erasure-correcting code, the surviving symbols are 7; for 8 erasures, they are 9 (Tamo et al., 2011). A later averaged formulation writes the rebuilding ratio over a set 0 of candidate erased nodes as
1
where 2 is the minimum number of accessed elements required to rebuild the erased set 3 (Wang et al., 2016).
This framework is closely related to repair bandwidth. If 4 is the minimum number of elements transmitted from surviving nodes during rebuilding, then the normalized repair bandwidth is
5
Because transmitted information cannot exceed accessed information, 6 is a lower bound on 7 (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 8 parities is optimal update if each information element appears in exactly 9 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 0 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 1 parity columns must satisfy the lower bound
2
for exact rebuilding of 3 erasures, and Zigzag Codes attain this bound for all 4 (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 5 and 6; Zigzag Codes resolved the open problem by proving that the exact optimum is 7 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 8 rows, at least 9 zigzag equations are required across the 0 parity columns; by the pigeonhole principle, one parity contributes at least 1 equations, which forces each surviving systematic column to supply at least an 2 fraction of its symbols (Tamo et al., 2011). In bandwidth terms, for exact-repair reconstructing codes with node storage 3, helper degree 4, and per-helper transmission 5, the file size 6 satisfies
7
where 8, 9. For MDS codes, this yields
0
and with all remaining nodes available, 1, the normalized repair-bandwidth lower bound becomes 2, implying 3 (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 4 of the surviving data to rebuild one erased systematic column, whereas Zigzag achieves the optimal 5; with three parities, the generalized Zigzag construction attains 6 (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 7 Zigzag construction is specified by a binary-vector permutation framework. Fix 8. The array has 9 rows, 0 systematic columns, and two parity columns: a row parity and a zigzag parity (Tamo et al., 2011). Choose a set 1 of 2 nonzero binary vectors 3. For each 4, define a permutation on row indices 5, viewed in binary, by
6
where addition is bitwise XOR. Also define the orthogonality set
7
where the inner product is over 8. Each 9 has size 0 (Tamo et al., 2011).
The row parity is defined by
1
and the zigzag parity by
2
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 3, the rows are partitioned into
4
Elements in rows 5 are rebuilt from row parity, and elements in rows 6 are rebuilt from zigzag parity (Tamo et al., 2011). Explicitly, for 7,
8
and for 9,
0
Only half the rows are used, so 1 (Tamo et al., 2011).
The exact access count is governed by the interaction between the row-based and zigzag-based accesses. For distinct 2, the number of elements accessed in surviving node 3 while rebuilding node 4 equals
5
Moreover, when 6 and 7,
8
where 9 counts positions with 0 and 1 (Tamo et al., 2011). This leads to the notion of orthogonal permutations: a family 2 with associated subsets 3 of size 4 is orthogonal if
5
The fundamental 6 theorem chooses
7
where 8 is the standard basis of 9 and 00 is the all-ones mask used to define
01
With 02 and 03 defined as above, the resulting 04 array code has rebuilding ratio 05 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 06 optimal Zigzag Code, a simple assignment over 07 suffices, and 08 is the smallest possible field (Tamo et al., 2011).
The coefficient assignment is: 09 and
10
where
11
Here the exponent 12 is computed in 13, and 14 is the primitive element (Tamo et al., 2011). With these coefficients, the 15 Zigzag Code is MDS. In particular, for any two erased systematic columns 16 and rows 17,
18
so the resulting 19 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 20 is the systematic symbol at row 21, column 22, then
23
and
24
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 25, two cases arise. If the corresponding permutations are equal, the unknowns in each row decouple into a 26 system,
27
where 28 are assembled from row and zigzag parities. Otherwise, rows are paired by 29, giving a coupled 30 system that remains nonsingular over 31 under the above coefficient assignment (Tamo et al., 2011).
The later general formalism rewrites Zigzag Codes by parity encoding matrices. For prime 32, with 33, vectors 34, and parity index 35, the parity node 36 is governed by permutations
37
and can be represented through generalized permutation matrices 38. The full generator matrix has the block form
39
and sufficiently large fields allow coefficient assignments that make every 40 block submatrix corresponding to 41 erased nodes invertible (Wang et al., 2016).
5. Generalization to 42 parities and multiple erasures
The original paper generalized the binary construction to 43-ary permutations, taking 44 rows and vectors 45 satisfying 46 for each 47 (Tamo et al., 2011). For parity index 48,
49
and
50
Parity node 51 uses zigzag sets 52 containing symbols 53 satisfying 54 (Tamo et al., 2011).
The optimal single-erasure result over 55 parities is obtained by choosing the orthogonal family generated by 56. The resulting 57 Zigzag Code has rebuilding ratio 58 for any single systematic erasure (Tamo et al., 2011). For 59, a field of size at most 60 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 61, define, for each parity 62, the group 63 generated by 64. Optimal rebuilding ratio 65 holds if there exists a set 66 of size 67 such that:
- for each parity 68, every 69 stabilizes 70;
- for each erased systematic node 71,
72
- the selected 73 zigzag equations are linearly independent (Wang et al., 2016).
In the vector-indexed special case, writing rows as 74, define
75
Then optimal rebuilding is achieved if there exists 76 of size 77 that is a union of cosets of 78 and satisfies
79
for each erased 80, together with linear independence of the selected equations (Wang et al., 2016). This condition reduces further to
81
which is both necessary and sufficient for the existence of such an 82 (Wang et al., 2016).
An explicit rebuilding algorithm follows this structure. For given erasures 83:
- compute 84 with 85 a maximal admissible subset of survivors;
- find 86 such that 87 for all erased 88, set 89, and let 90 be any union of 91 cosets of 92;
- from each parity 93, access rows 94 and the corresponding surviving systematic elements, then solve the resulting 95 equations (Wang et al., 2016).
The same work proved that the optimal Zigzag Code with 96, 97, and 98 is MDS and achieves the optimal rebuilding ratio 99 for any set of 00 erasures, 01 (Wang et al., 2016). For 02, the required fields remain 03 and 04, 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 05, they achieve optimal rebuilding ratio 06 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 07 systematic nodes, 08 parities, and 09 rows, achieving rebuilding ratio 10 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 11 parity symbols (Wang et al., 2016).
Zigzag Codes also admit syndrome-based error-correction procedures. For 12 two-parity codes, if one systematic column is erased and at most one element error occurs in another systematic column, syndromes
13
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
14
to disambiguate candidate error positions (Wang et al., 2016). For general 15, a single node error can be corrected by syndromes
16
using the test 17 to identify the erroneous systematic column (Wang et al., 2016).
There is also a binary-field branch of the Zigzag literature. A two-parity GF18 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
19
the row parity is
20
and the zigzag permutation for column 21 is
22
To preserve the MDS property over GF23, 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 24 symbols from each helper, but the expected number of parity updates per information update becomes 25, and the worst-case number becomes 26 (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 27, any orthogonal-permutation code over 28 rows has at most 29 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 30: duplicating each permutation 31 times yields 32 codes with rebuilding ratio
33
For the optimal 34 code, this gives 35 as 36 (Tamo et al., 2011). The same source notes that alternative constructions using weight-3 vector sets achieve 37 columns with ratio approximately 38 on small constant fields such as GF39 or GF40 (Tamo et al., 2011).
A later revision revisited Zigzag Codes from the perspective of small fields and I/O locality. For row-indexing group 41, with field characteristic two, explicit Cauchy-type coefficients
42
over any field with 43 guarantee the MDS property, thereby decoupling 44, 45, and 46 in a way that differs from classical 47 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 48, and bounded skip-cost families with rates approaching 49 and 50 (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 51, 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 52 of simultaneous failures, using 53 space-shared instances of the original Zigzag MSR code and achieving the cooperative cut-set bound with
54
while reducing the field-size requirement to 55 (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 56, hence large sub-packetization; orthogonality of permutations is essential for the exact 57 single-erasure ratio; and some Zigzag codes exhibit a threshold 58 such that optimal rebuilding holds only for 59 (Tamo et al., 2011, Wang et al., 2016). The 2016 work proves a monotonicity property: if optimal rebuilding holds for 60, it also holds for all 61 (Wang et al., 2016). A plausible implication is that the geometry of the vector set 62 determines not only repair efficiency but also a phase transition in which erasure patterns admit the coset-stability conditions required for exact 63 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 64 under exact repair, first for one erasure with two parities and then for all 65 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 GF66, 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).