CROSSMBCR : Exact Minimum Bandwidth Coordinated Regenerating Codes
Abstract
We study the exact and optimal repair of multiple failures in codes for distributed storage. More particularly, we provide an explicit construction of exact minimum bandwidth coordinated regenerating codes (MBCR) for . Our construction differs from existing constructions by allowing both (i.e., repair of multiple failures) and (i.e., contacting more than devices during repair).
I Introduction
Codes are useful for tolerating failures in distributed storage systems. Yet, erasure correcting codes suffer from huge repair costs after failures. Recently, regenerating codes [1] have relied on network coding to achieve the optimal tradeoff between storage cost and bandwidth (repair cost). Such codes have latter been extended to support multiple failures (i.e., coordinated or cooperative regenerating codes) [2, 3, 4]. These studies identify two main types of regenerating codes: (i) Minimum Storage (MSR/MSCR) regenerating codes which minimize storage costs in priority and (ii) Minimum Bandwidth (MBR/MBCR) which minimize bandiwdth costs in priority. Codes achieving these optimal tradeoffs can be built using random linear network codes. Yet, such nondeterministic schemes are not desirable for they require complex integrity checking scheme, and cannot be turned into systematic codes.
Hence, regenerating codes have been studied with the additional constraint of repairing exactly what is lost, in order to build deterministic coding schemes.The problem of repairing exactly a single failure has been well studied both at the MBR point[5] and MSR [6, 7, 5, 8, 9] point. However, the exact repair of multiple failures remains an open question since it has been studied only for the very specific setting at both the MSCR point [4] and the MBCR point [10].
We focus on this problem and propose an explicit code construction for the case of thus relaxing the constraint present in previous constructions [10]. In the following, we will present our code construction, the repair algorithm and the decoding algorithm.
Ii CROSSMBCR Codes
Minimum Bandwidth Coordinated Regenerating Codes [2] guarantee that a file of original blocks encoded to blocks stored uniformly on devices can be recovered from any devices, and that if devices fail the optimal repair procedure consist in downloading blocks from nonfailed devices and blocks from the other devices being repaired. If we set ,
CROSSMBCR codes are built upon two encoding matrices:

, which is the generator matrix of MDS code (e.g., Cauchy or Vandermonde matrices),

, which is the generator of an MDS code, such that is also the generator of a systematic MDS code (e.g., Vandermonde or Cauchy matrices).
They support any , any , any and only require that (i.e., all devices participate to the repair either as a device providing data or as a device being repaired). In the rest of this section, we will describe the encoding procedure, the repair procedure and the decoding procedure, thus defining completely the code and showing that it satisfy all needed properties.
Iia Encoding
The encoding procedure is shown on Figure (a)a. Given the condition , the file size can be rewritten as . The file is divided in sequences and sequences such that
Step 1
The sequence is written on the first positions of the device . Each sequence is encoded using the generator , and the resulting block is stored at the position of device . Let us name the sequence of blocks stored on the first positions of device , where is the ( x ) matrix with as column vectors. These blocks are designated as primary data blocks.
Step 2
The primary data blocks stored on device are encoded using and the resulting blocks are stored on all other devices. Each device stores a total of blocks
IiB Repairing
The repair procedure is illustrated on Figure 2.
Step 1
Each device being repaired fetches the secondary data blocks still available from live devices. Since is the encoding matrix of an MDS code, the device being repaired can decode and recover the primary data blocks .
Step 2
The missing secondary data blocks, initially stored on failed devices, are regenerated from primary data blocks as done in the second step of the encoding.
IiC Decoding
The decoding procedure is shown on Figure (b)b and use both the primary data and the secondary data.
Step 1
The primary data is retrieved from the contacted devices. The encoded part is decoded using since is the generator matrix of an MDS code. A total of original blocks are recovered during this step.
Step 2
The part decoded during step 1 is encoded again using to recreate the encoded part of the primary data blocks stored on the non contacted devices.
Step 3
The secondary data blocks retrieved from the contacted devices and the encoded primary data blocks recreated at step 2 are processed together and decoded using to recover the remaining original blocks. This is possible since is the generator matrix of an systematic MDS code. As a consequence, the file can be fully recovered from any devices.
Iii Conclusion
In this paper, we define an explicit exact MBCR codes construction, thus showing that it is possible to build exact minimum bandwidth coordinated regenerating codes for a wide set of parameters (). It is interesting to notice that if , the sequences encoded using disappear, and the whole scheme degenerates into the same coding scheme as initially proposed for by Shum et al. [4]. As a consequence, our scheme encompass the single previous exact MBCR codes construction as a special case.
References
 [1] A. G. Dimakis, P. B. Godfrey, Y. Wu, M. O. Wainwright, and K. Ramchandran, “Network Coding for Distributed Storage Systems,” IEEE Transactions On Information Theory, vol. 56, pp. 4539–4551, 2010.
 [2] A. Kermarrec, N. Le Scouarnec, and G. Straub, “Repairing Multiple Failures with Coordinated and Adaptive Regenerating Codes,” in NetCod, July 2011.
 [3] Y. Hu, Y. Xu, X. Wang, C. Zhan, and P. Li, “Cooperative Recovery of Distributed Storage Systems from Multiple Losses with Network Coding,” IEEE Journal on Selected Areas in Communications, vol. 28, pp. 268–276, 2010.
 [4] K. W. Shum, “Cooperative Regenerating Codes for Distributed Storage Systems,” in ICC, 2011.
 [5] K. V. Rashmi, N. B. Shah, and P. V. Kumar, “Optimal ExactRegenerating Codes for Distributed Storage at the MSR and MBR Points via a ProductMatrix Construction,” IEEE Transaction on Information Theory, vol. 57, pp. 5227–5239, 2011.
 [6] N. B. Shah, K. Rashmi, P. V. Kumar, and K. Ramchandran, “Explicit Codes Minimizing Repair Bandwidth for Distributed Storage,” in ITW, 2010.
 [7] ——, “Interference Alignement in Regenerating Codes for Distributed Storage: Necessity and Code Constructions,” Transaction on Information Theory, vol. 58, pp. 2134–2158, 2012.
 [8] C. Suh and K. Ramchandran, “ExactRepair MDS code construction using interference alignment,” IEEE Transactions On Information Theory, vol. 57, pp. 1425–1442, 2011.
 [9] N. B. Shah, K. Rashmi, P. V. Kumar, and K. Ramchandran, “Distributed Storage Codes with RepairbyTransfer and Nonachievability of Interior Points on the StorageBandwidth Tradeoff,” Transaction on Information Theory, vol. 58, pp. 1837–1852, 2012.
 [10] K. W. Shum and Y. Hu, “Exact MinimumRepairBandwidth Cooperative Regenerating Codes for Distributed Storage Systems,” in ISIT, 2011.
See figs/poster.pdf