6.5 Placement, Storage Efficiency, and Reliability
6.5.2 Double Parity Codes
Double parity (l, m)-MDS codes correspond to the case where m − l = 2.
When l = 1, this corresponds to three-way replication. For higher values of l, this corresponds to RAID-6 [27]. Plugging l = m − 2 in (6.67) and (6.114), we obtain the MTTDL values for double parity codes for clustered and declustered placement schemes, respectively: From (6.122) and (6.123), it is observed that the MTTDL of double parity codes under both placement schemes are directly proportional to the cube of the mean time to node failure, 1/λ, and inversely proportional to the square of the mean time to read all contents of a node during rebuild, 1/µ. In contrast to single parity codes, it is seen that the MTTDL depends on the rebuild distribution. For deterministic rebuild times, the ratios M12(Gµ)/M2(Gµ) and M12
become one. However, for random rebuild times, these ratios are upper-bounded by one by Jensen’s inequality. As an example, if the rebuild time distribution was exponential, these ratios are equal to 1/2
100 101 102 106
107 108
Number of nodes
MTTDL (in days)
(2, 4)-MDS code 1/λ = 30000 h 1/µ = 30 h
clustered, deterministic rebuild declustered, deterministic rebuild clustered, exponential rebuild declustered, exponential rebuild
Figure 6.4: MTTDL of a (2, 4)-MDS code vs. the number of nodes for mean time to node failure 1/λ = 30000 h and mean time to read all contents of a node during rebuild 1/µ = 30 h.
and therefore
MTTDLclus.≈ µ2 nλ3
1
(m − 1)(m − 2) for m = 3, · · · , n
(double parity codes, exponential rebuild times). (6.124)
MTTDLdeclus. ≈ (n − 1)µ2 nλ3
1
(m − 1)3 for m = 3, · · · , n
(double parity codes, exponential rebuild times). (6.125) The result (6.124) for clustered placement is well known in the context of RAID-6 systems [27]. The MTTDL of a system using a (2, 4)-MDS code is plotted against the number of nodes in the system for clustered and declus-tered placements, as well as for deterministic and exponential rebuild times, in Figure 6.4. It is observed that the rebuild time distribution scales down the MTTDL, but leaves the behavior with respect to the number of nodes, n, unaffected. This has also been verified by means of simulation in Chapter 7.
In contrast to single parity codes, the difference in MTTDL between the two schemes can be significant, depending on the number of nodes, n, in
100 101 102 104
105 106 107 108 109
Number of nodes
MTTDL (in days)
Double Parity Codes 1/λ = 30000 h
1/µ = 30 h
(1,3)−MDS, clustered (1,3)−MDS, declustered (4,6)−MDS, clustered (4,6)−MDS, declustered (10,12)−MDS, clustered (10,12)−MDS, declustered (22,24)−MDS, clustered (22,24)−MDS, declustered
Figure 6.5: MTTDL of double parity codes vs. the number of nodes for mean time to node failure 1/λ = 30000 h and mean time to read all contents of a node during rebuild 1/µ = 30 h.
the system. This is because, as seen from (6.122) and (6.123), the MTTDL of clustered placement is inversely proportional to n, whereas the MTTDL of declustered placement is roughly invariant with respect to n. This is illustrated in Figure 6.5 in which MTTDL of double parity codes is plotted against the number of nodes, n, in a log-log scale. The lines corresponding to clustered placement have a slope of −1 indicating that the MTTDL is inversely propor-tional to n, whereas the lines corresponding to declustered placement have a slope of roughly 0 indicating that the MTTDL is invariant with respect to n. It is also observed from Figure 6.5 that longer codes, which are more desirable as they have higher storage efficiency, can have better MTTDL with declustered placement than shorter codes with clustered placement for large systems. This is seen, for example, by observing the lines corresponding to (4, 6)-MDS code with declustered placement and (1, 3)-MDS code with clustered placement, for n > 100. Just like in the case of single parity codes, the difference in MTTDL between clustered and declustered is observed to be smaller for larger values of the codeword length, m.
For a symmetric placement scheme with spread factor k > m, the MTTDL
3 6 9 12 15 18 21 24 27 30 3
6 9
12 15 1.0e+005
1.0e+006 1.0e+007 1.0e+008 1.0e+009
Spread Factor Codeword Length
MTTDL (in days)
Double Parity Codes 1/λ = 30000 h 1/µ = 30 h n = 30 nodes
Figure 6.6: MTTDL of double parity codes as a function of codeword length m and spread factor k for a system with number of nodes n = 20.
of double parity codes follows from (6.116) by substituting l = m − 2:
MTTDL(k) ≈ (k − 1)µ2 nλ3
2 (m − 1)3
M12 Gk−1
m−1µ
M2
Gk−1
m−1µ
for k = m + 1, · · · , n,
and m = 3, · · · , n (double parity codes). (6.126)
Spread factor k = m corresponds to clustered placement scheme, and so its MTTDL is given by (6.122):
MTTDLclus. ≈ µ2 nλ3
2
(m − 1)(m − 2)
M12(Gµ)
M2(Gµ) for m = 3, · · · , n
(double parity codes). (6.127) It is observed from (6.126) that, in contrast to single parity codes, increasing the spread factor k improves the MTTDL proportional to k. This is because, due to the spreading of codewords over more number of nodes, the amount of most-exposed data at each successive exposure level decreases rapidly, thereby reducing the chances of data loss. It is due to the fact that the amount of most-exposed data decreases at each exposure level, and not necessarily because
3 6 9 12 15 18 21 24 27 30 0.33
0.67 0.78
0.83 0.87 1.0e+005
1.0e+006 1.0e+007
Spread Factor Storage Efficiency
MTTDL (in days)
Double Parity Codes 1/λ = 30000 h 1/µ = 30 h n = 30 nodes
Figure 6.7: MTTDL of double parity codes as a function of storage efficiency (m − 2)/m and spread factor k for a system with number of nodes n = 20.
the rebuild times are much faster, that the MTTDL values increase with the spread factor k. Figure 6.6 shows how the MTTDL varies as a function of both the codeword length m and the spread factor k for double parity codes, for a given number of nodes, n. In Figure 6.6, three-way replicated systems correspond to the case where the codeword length is 3, clustered placement corresponds to the cases where the spread factor is equal to the codeword length, and declustered placement corresponds to the case where the spread factor is equal to the number of nodes. It is observed that increasing the spread factor increases the MTTDL, and that increasing the codeword length decreases the MTTDL.
The storage efficiency of a system using a double parity code with code-word length m is equal to (m − 2)/m, as each set of m − 2 user data blocks requires storing m codeword blocks in the system. Therefore, Figure 6.6 is eas-ily transformed into Figure 6.7 to show the MTTDL as a function of storage efficiency, (m − 2)/m, and spread factor, k.