Determinant Codes with Helper-Independent Repair for Single and Multiple Failures
11 Determinant Codes with Helper-IndependentRepair for Single and Multiple Failures
Mehran Elyasi, and Soheil Mohajer,
Member, IEEE
Abstract
Determinant codes are a class of exact-repair regenerating codes for distributed storage systems with parameters ( n, k = d, d ) . These codes cover the entire trade-off between per-node storage and repair-bandwidth. In an earlierwork of the authors, the repair data of the determinant code sent by a helper node to repair a failed node dependson the identity of the other helper nodes participating in the process, which is practically undesired. In this work, anew repair mechanism is proposed for determinant codes, which relaxes this dependency, while preserving all otherproperties of the code. Moreover, it is shown that the determinant codes are capable of repairing multiple failures,with a per-node repair-bandwidth which scales sub-linearly with the number of failures. I. I
NTRODUCTION
While individual storage units in distributed storage systems (DSS) are subject to temporal or permanent failure,the entire system should be designed to avoid losing the stored data. Coding and storing redundant data is a standardapproach to guarantee durability in such systems. Moreover, these systems are equipped with a repair mechanismthat allows for a replacement of a failed node. Such replacement can be performed in the functional or exact sense.In functional repair, a failed node will be replaced by another one, so that the consequent family of nodes maintainsthe data recovery and node-repair properties. In an exact repair process, the content of a failed node will be exactlyreplicated by the helpers.Regeneration codes are introduced to manage data recovery and node repair mechanism in DSS. Formally, an ( n, k, d ) regeneration code with parameters ( α, β, F ) encodes a file comprised of F symbols (from a finite field F )into n segments (nodes) W , W , . . . , W n each of size α , such that two important properties are fulfilled: (1) theentire file can be recovered from every subset of k nodes, and (2) whenever a node fails (become inaccessible), itcan be repaired by accessing d remaining nodes and downloading β symbols from each.It turns out that there is a fundamental trade-off between the minimum required per-node storage α and therepair-bandwidth β , to store a given amount of data F in a DSS. This tradeoff is fully characterized for functionalrepair in the seminal work of Dimakis et. al [1], where it is shown to be achievable by random network coding.However, for the exact-repair problem, which is notably important from the practical perspective, characterizationof the trade-off and design of optimum codes are widely open, except for some special cases. Construction of M. Elyasi and S. Mohajer are with the Department of Electrical and Computer Engineering, University of Minnesota, Twin Cities, MN 55455,USA, (email: { melyasi, soheil } @umn.edu). a r X i v : . [ c s . I T ] M a r
10 15 20 2565707580859095100105110 7 nF Determinant Code [13]Construction of [12]Construction of [11]
Fig. 1. Comparison of storage capacity of three exact-regenerating codes for an ( n, k, k ) distributed storage system, with d = k = 6 at mode m = 3 , and code parameters ( α, β ) = (20 , . All three codes can store F = 105 units of data when DSS has only n = d + 1 = 7 nodes.However, the storage capacity decays as a function of n for codes introduced in [12] and [11], while the storage capacity is preserved for thedeterminant code. exact-repair regenerating codes for a system with arbitrary parameters ( n, k, d ) is a complex task due to severalcombinatorial constraints to be satisfied. The number of such constraints dramatically increases with n , the totalnumber of nodes in the system.There are known code constructions for the two extreme points on the tradeoff, namely, minimum bandwidthregeneration (MBR) [2] and minimum storage regeneration (MSR) [2]–[7] points.A lower bound for the trade-off of the exact-repair regenerating codes with parameters ( n, k = d, d ) is presentedindependently by [8]–[10], under the assumption that the underlying code is linear. This lower bound could beachieved for the special case of n = k + 1 (i.e., the DSS can only tolerate one failure) by code constructionsproposed in [11] and [12]. While the lower bound does not depend on n (the total number of nodes in the system),the performance (storage capacity) of both code constructions in [11] and [12] degrades as n exceeds k + 1 (seeFig. 1). A. Determinant Codes and Helper-Independent Repair
Determinant codes are a family of exact repair regenerating codes, which are introduced in [13], [14] for a DSSwith parameters ( n, k = d, d ) . The main property of these codes is to maintain a constant trade-off between α/F and β/F , regardless of the number of the nodes. In particular, these codes can achieve the lower bound [8]–[10],and hence they are optimum. The determinant codes have a linear structure and can be obtained from the innerproduct between an encoder matrix and the message matrix. Especially, product-matrix codes introduced in [2] forMBR and MSR points can be subsumed from the general construction of the determinant codes.The repair mechanism proposed for the determinant codes in the original paper [13] requires a rather heavycomputation at the helper nodes in order to prepare their repair symbols to send to the failed node. More importantly, each helper node h ∈ H needs to know the identity of all the other helper nodes participating in the repair process.The assumption of knowing the set of helpers in advance is a limitation of the determinant codes, and it is undesiredin real-world systems. In practice, it is preferable that once a request for a repair of a failed node is made, eachnode can independently decide to whether or not to participate in the repair process and generate the repair datafrom its content, regardless of the other helper nodes.On the other hand, besides the repair bandwidth, one of the crucial bottlenecks in the performance of the storagesystems is the I/O load, which refers to the amount of data to be read by a helper node to encode for a repairprocess. While the native constructions for exact repair generating code require a heavy I/O read, the repair-by-transfer (RBT) codes [15] offer an optimum I/O. In [16] an elegant modification is proposed to improve the I/Ocost of product-matrix MSR codes, by pre-processing the content of the nodes and storing the repair data on non-systematic nodes instead of the original node content. This results in a semi-RBT code: whenever such modifiednodes contribute in a repair process, they merely transfer some of their stored symbols without any computation.Such modification could not be applied on the original determinant codes since the repair symbols from a helpernode h to a failed node f could be computed only when the set of other helper nodes H is identified.In this paper, we propose a novel repair mechanism for the determinant codes introduced in [13]. In the newrepair procedure, data repair symbols from helper node h to a failed node f solely depend on the content of thehelper node and the identity of the failed node f . The failed node collects a total of dβ repair symbols from thehelper nodes and can reconstruct all of its missing symbols by simple addition and subtraction of some of thereceived symbols. This simple repair scheme further allows for modifications proposed in [16], to further improvethe I/O overhead of the code. B. Multiple Failures Repair
The second contribution of this work is the simultaneous repair for multiple failures. Although single failuresare the dominant type of failures in distributed storage systems [17], multiple simultaneous failures occur ratherfrequently and need to be handled in order to maintain the system’s reliability and fault-tolerance. The naive approachto deal with such failures is to repair each failed node individually and independently from the others. This requiresa repair bandwidth from each helper node that scales linearly with the number of failures. There are two typesof repair for multiple failures studied in the literature [18]: (i) centralized regenerating codes and (ii) cooperativeregenerating codes . In centralized regenerating codes, a single data center is responsible for the repair of all failednodes. More precisely, once a set of e nodes in the system fail, an arbitrary set of d ≤ n − e nodes are chosen, and β e repair symbols will be downloaded from each helper node. This leads to a total of d · β e symbols which will beused to repair the content of all the failed nodes. The storage-bandwidth trade-off of these codes are studied for twoextreme points, namely the minimum storage multi-node repair (MSMR) and the minimum bandwidth multi-noderepair (MBMR) points. In particular, in [4] a class of MSMR code is introduced, that are capable of repairing anynumber of failed nodes e ≤ n − k from any number of helper nodes k ≤ d ≤ n − e , using an optimal repairbandwidth. In cooperative regenerating codes upon failure of a node, the replacement node downloads repair datafrom a subset of d helper nodes. In the case of multiple failures, the replacement nodes not only download repair data from the helper nodes, but also exchange information among themselves before regenerating the lost data, andthis exchanged data between them is included in the repair bandwidth. Similar to the centralized case, the trade-offfor these codes for the two extreme points, namely the minimum bandwidth cooperative regeneration (MBCR)codes [19] and the minimum storage cooperative regenerating (MSCR) codes [20]–[22] are studied. In particular,in [22] authors introduced explicit constructions of MDS codes with optimal cooperative repair for all possibleparameters. Also, they have shown that any MDS code with optimal repair bandwidth under the cooperative modelalso has optimal bandwidth under the centralized model.In this work we show that the repair bandwidth required for multiple failures repair in determinant codes canbe reduced by exploiting two facts: (i) the overlap between the repair space (linear dependency between the repairsymbols) that each helper node sends to the set of failed nodes, and (ii) in the centralized repair, the data center(responsible for the repair process) can perform the repair of the nodes in a sequential manner, and utilize alreadyrepaired nodes as helpers for the repair of the remaining failed nodes. Interestingly, using these properties wecan limit the maximum (normalized) repair-bandwidth of the helper nodes to a certain fraction of α , regardlessof the number of failures. The structure of the code allows us to analyze this overlap, and obtain a closed-formexpression for the repair bandwidth. Our codes are not restricted only to the extreme points of the trade-off andcan operate at any intermediate point on the optimum trade-off. A similar problem is studied in [18], where a classof codes is introduced to operate at the intermediate points of the trade-off, with an improved repair bandwidthfor multiple failures. However, this improvement is obtained at the price of degradation of the system’s storagecapacity as n (the total number of nodes) increases. Consequently, the resulting codes designed for two or moresimultaneous failures are sub-optimum, and cannot achieve the optimum trade-off between the per-node capacity,repair bandwidth, and the overall storage capacity. One of the main advantages of our proposed code and repairmechanism is to offer a universal code, which provides a significant reduction in the repair bandwidth for multiplefailures, without compromising the system performance.The rest of this paper is organized as follows: For the sake of completeness, we first review the achievabletrade-off and the construction of the determinant codes [13] in Sections II and Section III. The new encoding anddecoding for the node repair are presented in Section III-B. An illustrative example is provided in Section IV, inwhich the core idea of data recovery and node repair are demonstrated. The formal proofs of the properties of theproposed code are presented in Section V. Finally, in Section VI we discuss the improved repair-bandwidth formultiple failures in a centralized repair setting. II. M AIN R ESULT
We start by introducing a few symbols and notations, which are frequently used in this paper.
Notation:
We use [ k + 1 : d ] to denote the set of integer numbers { k + 1 , . . . , d } , and [ k ] = [1 : k ] to representthe set { , , ..., k } . For a set X and a member x ∈ X , we define ind X ( x ) = |{ y ∈ X : y ≤ x }| . We use boldfacesymbols to refer to matrices, and for a matrix X , we denote its i -th row by X i . We also use the notation X : ,j torefer to the j -th column of X . Moreover, we use X [ A , B ] to denote a sub-matrix of X obtained by rows i ∈ A andcolumns j ∈ B . Accordingly, X [ A , :] denotes the sub-matrix of X by stacking rows i ∈ A . Moreover, we may use sets to label rows and/or columns of a matrix, and hence X I , J refers to an entry of matrix X at the row indexedby I and the column labeled by J . Finally, for a set I , we denote the maximum entry of I by max I .The optimum storage repair-bandwidth of the exact-repair regenerating codes for an ( n, k = d, d ) system is apiece-wise linear function [13], [14], which is fully characterized by its corner (intersection) points [8]–[10]. Thedeterminant codes provide a universal construction for all corner points on the optimum trade-off curve. We assigna mode (denoted by m ) to each corner point, which is an integer in { , , . . . , d } (from for MBR to d for MSRpoint). The main distinction between the result of this work and that of [13], [14] is the fact that the repair data sentby one helper node does not depend on the identity of all the other helper nodes participating the repair process.The following definition formalizes this distinction. Definition 1.
Consider the repair process of a failed node f using a set of helper nodes H . The repair process iscalled helper-independent if the repair data sent by each helper node h ∈ H to the failed node f only depends on f and the content of node h (but not the other helpers participating in the repair process). The following theorem formally states the trade-off achievable by determinant codes.
Theorem 1.
For an ( n, k = d, d ) distributed storage system and any mode m = 1 , , . . . , d , the triple ( α, β, F ) with (cid:16) α ( m ) , β ( m ) , F ( m ) (cid:17) = (cid:18)(cid:18) dm (cid:19) , (cid:18) d − m − (cid:19) , m (cid:18) d + 1 m + 1 (cid:19)(cid:19) (1) can be achieved under helper-independent exact repair by the code construction proposed in this paper. It is worth mentioning that this theorem and the achievable points on the trade-off curve are identical to thoseof [13]. However, the novel repair process presented here has the advantage that the repair data sent by a helpernode does not depend on the identity of other helpers participating in the repair process. Moreover, we present arepair mechanism for multiple simultaneous failures. The proposed scheme exploits the overlap between the repairdata sent for different failed nodes and offers a reduced repair-bandwidth compared to naively repairing the failednodes independent of each other.The code construction is reviewed in Section III for completeness. In order to prove Theorem 1, it suffices toshow that the proposed code satisfies the two fundamental properties, namely data recovery and exact node repair.The proof data recovery property is similar to that of [13, Proposition 1], and hence omitted here. The exact-repairproperty is formally stated in Proposition 2, and proved in Section V. Moreover, Proposition 1 shows that the repairbandwidth of the proposed code does not exceed β ( m ) . This is also proved in Section V.In Fig. 2 the linear trade-off for a system d = 4 together with achievable corner points of this paper are depicted. Remark 1.
Theorem 1 offers an achievable trade-off for the normalized parameters ( α/F, β/F ) given by (cid:18) α ( m ) F ( m ) , β ( m ) F ( m ) (cid:19) = (cid:18)(cid:18) dm (cid:19) /m (cid:18) d + 1 m + 1 (cid:19) , (cid:18) d − m − (cid:19) /m (cid:18) d + 1 m + 1 (cid:19)(cid:19) = (cid:18) m + 1 m ( d + 1) , m + 1 d ( d + 1) (cid:19) . (2) ↵/F / / / Corner points m = 1 m = 2 m = 3 m = 4 ` = 0 ` = 1 ` = 2 ` = 3 / Exact-repair tradeo↵ /F [8]–[10]
Fig. 2. The optimum linear trade-off (from [13]) between the normalized node-storage α/F and the normalized repair-bandwidth β/F for a (5 , , -DSS given in (3). The coordinates of the corner points are given by (2). It is shown in [8]–[10] that for any linear exact-repair regenerating code with parameters ( n, k = d, d ) that iscapable of storing F symbols, ( α, β ) should satisfy F ≤ d + 1 (cid:96) + 2 (cid:18) (cid:96)α + d(cid:96) + 1 β (cid:19) , (3) where (cid:96) = (cid:98) dβ/α (cid:99) takes values in { , , . . . , d } . This establishes a piece-wise linear lower bound curve, with d (normalized) corner points obtained at integer values of (cid:96) = dβ/α . For these corner points, the (normalized)operating points ( α/F, β/F ) are given (cid:18) αF , βF (cid:19) = (cid:18) (cid:96) + 1 (cid:96) ( d + 1) , (cid:96) + 1 d ( d + 1) (cid:19) . These operating points are matching with the achievable (normalized) pairs given in (2) . Therefore, determinantcodes are optimal, and together with the lower bound of [8]–[10] fully characterize the optimum trade-off forexact-repair regenerating codes with parameters ( n, k = d, d ) . The next result of this paper provides an achievable bandwidth for multiple repairs.
Theorem 2.
In an ( n, k = d, d ) determinant codes operating at mode m , the content of any set of e simultaneouslyfailed nodes can be exactly repaired by accessing an arbitrary set of d nodes and downloading β ( m ) e = (cid:18) dm (cid:19) − (cid:18) d − em (cid:19) repair symbols from each helper node. The repair mechanism for multiple failures is similar to that of single failure presented in Proposition 2. In orderto prove Theorem 2, it suffices to show that the repair bandwidth required for multiple failures does not exceed β ( m ) e . This is formally stated in Proposition 3 and proved in Section V. . . . . . . . . e β e α Naive Multiple RepairsMultiple Repairs using Theorem 2Multiple Repairs using Theorem 3Saturation of ¯ β e /α regardless of e Fig. 3. Normalized repair bandwidth (by per-node storage size) for multiple failures with e failed nodes, for an ( n, , determinant codeoperating at mode m = 3 , i.e, ( α, β, F ) = (120 , , . Remark 2.
Note that the repair bandwidth proposed for multiple repairs in Theorem 2 subsumes the one inTheorem 1 for single failure for setting e = 1 : β ( m )1 = (cid:18) dm (cid:19) − (cid:18) d − m (cid:19) = (cid:18) d − m − (cid:19) = β ( m ) . Remark 3.
It is worth mentioning that the repair-bandwidth proposed in Theorem 2 is universally and simultane-ously achievable. That is, the same determinant code can simultaneously achieve β ( m ) e for every e ∈ { , , . . . , n − d } . The next theorem shows that the repair bandwidth for multiple failures can be further reduced in the centralizedrepair setting [4], [18], by a sequential repair mechanism, and exploiting the repair symbols contributed by alreadyrepaired failed nodes which can act as helpers.
Theorem 3.
In an ( n, k = d, d ) determinant code with (up to a scalar factor) parameters α ( m ) = (cid:0) dm (cid:1) and F ( m ) = m (cid:0) d +1 m +1 (cid:1) , any set of e simultaneously failed nodes can be centrally repaired by accessing an arbitrary setof d helper nodes and downloading a total of ¯ β ( m ) e = 1 d (cid:20) m (cid:18) d + 1 m + 1 (cid:19) − m (cid:18) d − e + 1 m + 1 (cid:19)(cid:21) (4) repair symbols from each helper node. Remark 4.
It is worth noting that for e > d − m we have ¯ β ( m ) e = md (cid:0) d +1 m +1 (cid:1) = F ( m ) /d (independent of e ), and ¯ β ( m ) e α ( m ) = m ( d + 1) d ( m + 1) , which is strictly less than as shown in Fig. 3 (for all corner points except the MSR point, m = d ). The factthat ¯ β ( m ) e = F ( m ) /d implies that the helper nodes contribute just enough number of repair symbols to be able torecover the entire file, without sending any redundant data. It is clear that this repair-bandwidth is optimum for e ≥ d , since such a set of e failed nodes should be able to recover the entire file after being repaired. This theorem is built on the result of Theorem 2, by exploiting the repair data can be exchanged among thefailed nodes. Note that in the centralized repair setting, the information exchanged among the failed nodes at therepair center are not counted against the repair bandwidth. We prove this theorem in Section VI.III. C
ONSTRUCTION OF ( n, k = d, d ) DETERMINANT CODES
The code construction described in this section is identical to that of [13], except the repair process which isdifferent and simpler. However, for the sake of completeness, we start with the details of code construction.
A. Code Construction
For a distributed storage system with parameters ( n, k = d, d ) and corresponding to a mode m ∈ { , , . . . , d } , ourconstruction provides an exact-repair regenerating code with per-node storage capacity α ( m ) = (cid:0) dm (cid:1) and per-noderepair-bandwidth β ( m ) = (cid:0) d − m − (cid:1) . This code can store up to F ( m ) = m (cid:0) d +1 m +1 (cid:1) symbols.We represent the coded symbols in a matrix C n × α , in which the i -th row corresponds to the encoded data tobe stored in i -th node of DSS. The proposed code is linear , i.e., the encoded matrix C is obtained by multiplyingan encoder matrix Ψ n × d and a message matrix . All entries of the encoder matrix and the message matrix areassumed to be from a finite field F , which has at least n distinct elements. Moreover, all the arithmetic operationsare performed with respect to the underlying finite field. The structures of the encoder and message matrices aregiven below. Encoder Matrix:
The matrix Ψ n × d is a fixed matrix which is shared among all the nodes in the system. Themain property required for matrix Ψ is being Maximum-Distance-Separable (MDS), that is, any d × d sub-matrix of Ψ n × d is full-rank. Examples of MDS matrices include Vandermonde or Cauchy matrices. We can always convertan MDS matrix to a systematic MDS matrix, by multiplying it by the inverse of its top d × d sub-matrix (see theexample in Section IV). We refer to the first k nodes by systematic nodes if a systematic MDS matrix is used forencoding. Message Matrix:
The message matrix D is filled with raw (source) symbols and parity symbols. Recall that D is a d × α matrix, that has dα = d (cid:0) dm (cid:1) entries, while we wish to store only F = m (cid:0) d +1 m +1 (cid:1) source symbols. Hence,there are dα − F = (cid:0) dm +1 (cid:1) redundant entries in D , which are filled with parity symbols. More precisely, we dividethe set of F data symbols into two groups, namely, V and W , whose elements are indexed by sets as follows V = { v x, I : I ⊆ [ d ] , |I| = m, x ∈ I} , W = { w x, I : I ⊆ [ d ] , |I| = m + 1 , x ∈ I , ind I ( x ) ≤ m } . Note that each element of V is indexed by a set I ⊆ [ d ] of length |I| = m and an integer number x ∈ I . Hence, |V| = m (cid:0) dm (cid:1) . Similarly, symbols in W are indexed by a pair ( x, I ) , where I is a subset of [ d ] with m + 1 entries, The number of entries in this matrix is more than F , the size of the file to be coded. Indeed, there are some redundancies among the entriesof this matrix as will be explained later. D d × α , whose construction will be explained later In general elements of the message matrix can be chosen from a Galois field F = GF ( q s ) for some prime number q and an integer s . and x can take any value in I except the largest one. So, there are |W| = m (cid:0) dm +1 (cid:1) symbols in set W . Note that F = |V| + |W| .For the sake of completeness, we define parity symbols indexed by pairs ( x, I ) , where |I| = m + 1 and ind I ( x ) = m + 1 . Such symbols are constructed such that parity equations (cid:88) y ∈I ( − ind I ( y ) w y, I = 0 , (5)hold for any I ⊆ [ d ] with |I| = m + 1 . In other words, such missing symbols are given by ( − m +1 w max I , I = − (cid:80) y ∈I\{ max I} ( − ind I ( y ) w y, I .The rows of matrix D are labeled by numbers , , . . . , d , and the columns are labeled by subsets I of [ d ] ofsize |I| = m . The entries of matrix D are given by D x, I = v x, I if x ∈ I ,w x, I∪{ x } if x / ∈ I . (6)It is shown in [13, Proposition 1] that the entire data encoded by this code can be recovered from the content ofany k = d nodes. Next, we show the exact-repair properties for single and multiple failures. B. Single Failure Exact Repair
The second important property of the proposed code is its ability to exactly repair the content of a failed node usingthe repair data sent by the helper nodes. Let node f ∈ [ n ] fails, and a set of helper nodes H ⊆ { , , . . . , n } \ { f } with |H| = d wishes to repair node f . We first determine the repair data sent from each helper node in order torepair node f . Repair Encoder Matrix at the Helper Nodes:
For a determinant code operating in mode m and a failed node f , the repair-encoder matrix Ξ f, ( m ) is defined as a (cid:0) dm (cid:1) × (cid:0) dm − (cid:1) matrix, whose rows are labeled by m -elementsubsets of [ d ] and columns are labeled by ( m − -element subsets of [ d ] . The entry in row I and column J isgiven by Ξ f, ( m ) I , J = ( − ind I ( x ) ψ f,x if I ∪ { x } = J , otherwise , (7)where ψ f,x is the entry of the encoder matrix Ψ at position ( f, x ) . An example of the Ξ matrix is given in (19) inSection IV.In order to repair node f , each helper node h ∈ H multiplies its content Ψ h · D by the repair-encoder matrix ofnode f to obtain Ψ h · D · Ξ f, ( m ) , and sends it to node f . Note that matrix Ξ f, ( m ) has (cid:0) dm − (cid:1) columns, and hencethe length of the repair data Ψ h · D · Ξ f, ( m ) is (cid:0) dm − (cid:1) , which is greater than β = (cid:0) d − m − (cid:1) . However, the followingproposition states that out of (cid:0) dm − (cid:1) columns of matrix Ξ f, ( m ) at most β ( m ) = (cid:0) d − m − (cid:1) are linearly independent.Thus, the entire vector Ψ h · D · Ξ f, ( m ) can be sent by communicating at most β symbols (corresponding to thelinearly independent columns of Ξ f, ( m ) ) to the failed node, and other symbols can be reconstructed using the linear Note that for an underlying Galois field GF (2 s ) with characteristic , the parity equation reduces to (cid:80) y ∈I w y, I = 0 . dependencies among the repair symbols. This is formally stated in the following proposition, which is proved inSection V. Proposition 1.
The rank of matrix Ξ f, ( m ) is at most β ( m ) = (cid:0) d − m − (cid:1) . Decoding at the Failed Node:
Upon receiving d repair-data vectors (cid:8) Ψ h · D · Ξ f, ( m ) : h ∈ H (cid:9) , the failed nodestacks them to form a matrix Ψ [ H , :] · D · Ξ f, ( m ) , where Ψ [ H , :] in the sub-matrix of Ψ obtained from nodes h ∈ H .This matrix is full-rank by the definition of the Ψ matrix. Multiplying by Ψ [ H , :] − , the failed node retrieves R f, ( m ) = D · Ξ f, ( m ) . (8)This is a d × (cid:0) dm − (cid:1) matrix. These d (cid:0) dm − (cid:1) linear combinations of the data symbols span a linear subspace, whichwe refer to by repair space of node f . The following proposition shows that all of the missing symbols of node f can be recovered from its repair space. Proposition 2.
In the ( n, k = d, d ) proposed codes with parameters ( α ( m ) , β ( m ) , F ( m ) ) = (cid:16)(cid:0) dm (cid:1) , (cid:0) d − m − (cid:1) , m (cid:0) d +1 m +1 (cid:1)(cid:17) ,for every failed node f ∈ [ n ] and set of helpers H ⊆ [ n ] \ { f } with | H | = d , the content of node f can be exactlyregenerated by downloading β symbols from each of nodes in H . More precisely, the I -th entry of the node f canbe recovered using [ Ψ f · D ] I = (cid:88) x ∈I ( − ind I ( x ) (cid:104) R f, ( m ) (cid:105) x, I\{ x } . (9)The proof of this proposition is presented in Section V. Remark 1.
Note that for a code defined on the Galois field GF (2 s ) with characteristic , we have − , andhence, all the positive and negative signs disappear. In particular, the parity equation in (5) will simply reduce to (cid:80) y ∈I w y, I = 0 , the non-zero entries of the repair encoder matrix in (7) will be ψ f,x , and the repair equation in (9) will be replaced by [ Ψ f · D ] I = (cid:80) x ∈I (cid:2) R f, ( m ) (cid:3) x, I\{ x } .C. Multiple Failure Exact Repair The repair mechanism proposed for multiple failure scenario is similar to that of the single failure case. Weconsider a set of failed nodes E with e = |E| failures. Each helper node h ∈ H sends its repair data to all failednodes simultaneously. Each failed node f ∈ E can recover the repair data (cid:8) Ψ h · D · Ξ f, ( m ) : h ∈ H (cid:9) , and therepair mechanism is similar to that explained in Proposition 2.A naive approach is to simply concatenate all the required repair data (cid:8) Ψ h · D · Ξ f, ( m ) : f ∈ E (cid:9) at the helpernode h ∈ H and send it to the failed nodes. More precisely, for a set of failed nodes E = { f , f , . . . , f e } and ahelper node h ∈ H , we define its repair data as Ψ h · D · Ξ E , ( m ) , where Ξ E , ( m ) = (cid:104) Ξ f , ( m ) Ξ f , ( m ) · · · Ξ f e , ( m ) (cid:105) . (10)This is simply a concatenation of the repair data for individual repair of f ∈ E , and the content of each failed nodecan be exactly reconstructed according to Proposition 2. The repair bandwidth required for naive concatenation scheme is e × β ( m )1 = e (cid:0) d − m − (cid:1) . Instead, we show that the bandwidth can be opportunistically utilized by exploitingthe intersection between the repair space of the different failed nodes. The following proposition shows that therepair data Ψ h · D · Ξ E , ( m ) can be delivered to the failed nodes by communicating only β ( m ) e repair symbols. Proposition 3.
Assume that a family of e nodes E = { f , f , · · · , f e } are failed. Then the rank of matrix Ξ E , ( m ) defined in (10) is at most (cid:0) dm (cid:1) − (cid:0) d − em (cid:1) . IV. A N I LLUSTRATIVE E XAMPLE FOR ( n = 8 , k = 4 , d = 4) CODES
Before presenting the formal proof of the main properties of the proposed code, we show the code constructionand the repair mechanism through an example in this section. This example is similar to that of [13], and willbe helpful to understand the notation and the details of the code construction, as well as to provide an intuitivejustification for its underlying properties.Let’s consider a distributed storage system with parameters ( n, k, d ) = (8 , , and an operating mode m = 2 .The parameters of the proposed regeneration code for this point of the trade-off are given by (cid:16) α (2) , β (2) , F (2) (cid:17) = (cid:18)(cid:18) (cid:19) , (cid:18) − − (cid:19) , (cid:18) (cid:19)(cid:19) = (6 , , . (11)We first label and partition the information symbols into two groups, V and W , with |V| = m (cid:0) dm (cid:1) = 2 (cid:0) (cid:1) = 12 and |W| = m (cid:0) dm +1 (cid:1) = 2 (cid:0) (cid:1) = 8 . Note that |V| + |W| = 20 = F . V = (cid:8) v , { , } , v , { , } , v , { , } , v , { , } , v , { , } , v , { , } , v , { , } , v , { , } , v , { , } , v , { , } , v , { , } , v , { , } (cid:9) , W = (cid:8) w , { , , } , w , { , , } , w , { , , } , w , { , , } , w , { , , } , w , { , , } , w , { , , } , w , { , , } (cid:9) . Moreover, for each subset
I ⊆ [4] with |I| = m + 1 = 3 , we define parity symbols as I = { , , } : w , { , , } = w , { , , } − w , { , , } , I = { , , } : w , { , , } = w , { , , } − w , { , , } , I = { , , } : w , { , , } = w , { , , } − w , { , , } , I = { , , } : w , { , , } = w , { , , } − w , { , , } . (12)Next, the message matrix D will be formed by placing v and w symbols as specified in (6). The resulting messagematrix is given by D × = v , { , } v , { , } v , { , } w , { , , } w , { , , } w , { , , } v , { , } w , { , , } w , { , , } v , { , } v , { , } w , { , , } w , { , , } v , { , } w , { , , } v , { , } w , { , , } v , { , } w , { , , } w , { , , } v , { , } w , { , , } v , { , } v , { , } { , } { , } { , } { , } { , } { , } The next step for encoding the data is multiplying D by an encoder matrix Ψ . To this end, we choose a finitefield F (with at least n = 8 distinct non-zero entries), and pick an × Vandermonde matrix generated by i = 1 , , , , , , , . We convert this matrix to a systematic MDS matrix by multiplying it from the right by theinverse of its top × matrix. That is, Ψ × = Ψ Ψ Ψ Ψ Ψ Ψ Ψ Ψ = · − = ( mod . Note that every k = 4 rows of matrix Ψ are linearly independent, and form an invertible matrix. Then the contentof node i is formed by row i in the matrix product Ψ · D , which we denote by Ψ i · D .Data recovery from the content of any k = 4 node is immediately implied by the MDS property of the encodermatrix. For further details, we refer to Section IV in [13]. Next, we describe the repair process for single andmultiple failures. A. Single Failure Repair
First, suppose that a non-systematic node f fails, and we wish to repair it by the help of the systematic nodes H = { , , , } , by downloading β = 3 from each. The content of node f is given by Ψ f · D , which includes α = 6 symbols. Note that the content of this node is a row vector whose elements has the same labeling as thecolumns of D , i.e all m = 2 elements subsets of [ d ] = { , , , } . The symbols of this node are given by: I = { , } : ψ f, v , { , } + ψ f, v , { , } + ψ f, w , { , , } + ψ f, w , { , , } , I = { , } : ψ f, v , { , } + ψ f, w , { , , } + ψ f, v , { , } + ψ f, w , { , , } , I = { , } : ψ f, v , { , } + ψ f, w , { , , } + ψ f, w , { , , } + ψ f, v , { , } , I = { , } : ψ f, w , { , , } + ψ f, v , { , } + ψ f, v , { , } + ψ f, w , { , , } , I = { , } : ψ f, w , { , , } + ψ f, v , { , } + ψ f, w , { , , } + ψ f, v , { , } , I = { , } : ψ f, w , { , , } + ψ f, w , { , , } + ψ f, v , { , } + ψ f, v , { , } . (13)In the repair procedure using the systematic nodes as helpers, every symbol will be repaired by m nodes. Recallthat d helper nodes contribute in the repair process by sending β = (cid:0) d − m − (cid:1) symbols each, in order to repair α = (cid:0) dm (cid:1) missing symbols. Hence, the number of repair equations per missing symbol is dβ/α = m , which matches withthe proposed repair mechanism.The m = 2 helpers for each missing encoded symbol are those who have a copy of the corresponding v -symbols,e.g., for the symbol indexed by I = { , } which has v , { , } and v , { , } , the contributing helpers are nodes (who has a copy of v , { , } ) and node (who stores a copy of v , { , } ). To this end, node can send ψ f, v , { , } which node sends ψ f, v , { , } to perform the repair.It can be seen that the { , } -th missing symbols has also two other terms depending on w , { , , } and w , { , , } ,which are stored at nodes and , respectively. A naive repair mechanism requires these two nodes also to contribute in this repair procedure, which yields in a full data recovery in order to repair a failed node. Alternatively, we canreconstruct these w -symbols using the parity equations, and the content of the the first two helper nodes. Recallfrom (5) that w , { , , } = − w , { , , } + w , { , , } ,w , { , , } = − w , { , , } + w , { , , } , where w , { , , } and w , { , , } are stored in node and w , { , , } and w , { , , } are stored in node . Hence, thecontent of nodes and are sufficient to reconstruct the { , } -th symbol at the failed node f . To this end, node computes A = ψ f, v , { , } − ψ f, w , { , , } − ψ f, w , { , , } (a linear combination of its first, forth, and fifthentries), and sends A to f . Similarly, node sends B = ψ f, v , { , } + ψ f, w , { , , } + ψ f, w , { , , } (a linearcombination of its first, second, and third coded symbols). Upon receiving these symbols, the { , } -th missingsymbols of node f can be recovered from A + B = (cid:0) ψ f, v , { , } − ψ f, w , { , , } − ψ f, w , { , , } (cid:1) + (cid:0) ψ f, v , { , } + ψ f, w , { , , } + ψ f, w , { , , } (cid:1) = ψ f, v , { , } + ψ f, v , { , } + ψ f, (cid:0) w , { , , } − w , { , , } (cid:1) + ψ f, (cid:0) w , { , , } − w , { , , } (cid:1) = ψ f, v , { , } + ψ f, v , { , } + ψ f, w , { , , } + ψ f, w , { , , } . (14)In general, v symbols are repaired directly by communicating an identical copy of them, while w symbols arerepaired indirectly, using their parity equations. This is the general rule that we use for repair of all other missingsymbols of node f . It can be seen that each helper node participates in the repair of β = 3 missing symbols, bysending one repair symbol for each. For instance, node contributes in the repair of symbols indexed by { , } , { , } , and { , } . The repair equation sent by node for each these repair scenarios are listed below: repair symbols sent by node I = { , } : ψ f, v , { , } − ψ f, w , { , , } − ψ f, w , { , , } , I = { , } : ψ f, v , { , } + ψ f, w , { , , } − ψ f, w , { , , } , I = { , } : ψ f, v , { , } + ψ f, w , { , , } + ψ f, w , { , , } . (15)Similarly, the repair symbols sent from helper nodes , , and are given by repair symbols sent by node I = { , } : ψ f, v , { , } + ψ f, w , { , , } + ψ f, w , { , , } , I = { , } : ψ f, w , { , , } + ψ f, v , { , } − ψ f, w , { , , } , I = { , } : ψ f, w , { , , } + ψ f, v , { , } + ψ f, w , { , , } , (16) repair symbols sent by node I = { , } : ψ f, w , { , , } + ψ f, v , { , } + ψ f, w , { , , } , I = { , } : − ψ f, w , { , , } + ψ f, v , { , } + ψ f, w , { , , } , I = { , } : ψ f, w , { , , } + ψ f, w , { , , } + ψ f, v , { , } , (17) repair symbols sent by node I = { , } : ψ f, w , { , , } + ψ f, w , { , , } + ψ f, v , { , } , I = { , } : − ψ f, w , { , , } + ψ f, w , { , , } + ψ f, v , { , } , I = { , } : − ψ f, w , { , , } − ψ f, w , { , , } + ψ f, v , { , } . (18) The repair symbols of helper node h ∈ { , , , } in (15)-(18) could be obtain from Ψ h · D · Ξ f, (2) , which is thecontent of the helper nodes (i.e., Ψ h · D ) times the repair encoder matrix for m = 2 (i.e., Ξ f, (2) ) defined in (7): { } { } { } { }{ , } ψ f, − ψ f, { , } ψ f, − ψ f, { , } ψ f, − ψ f, { , } ψ f, − ψ f, { , } ψ f, − ψ f, { , } ψ f, − ψ f, Ξ f, (2) = . (19)Note that, even though this matrix has (cid:0) − (cid:1) = 4 columns, and hence, Ψ h · D · Ξ f, (2) is a vector of length , itsuffices to communicate only β = 3 symbols from the helper node to the failed node and the fourth symbol canbe reconstructed from the other symbols at the failed node. This is due to the fact that the rank of matrix Ξ f, (2) equals to β = 3 . More precisely, a non-zero linear combination of the columns of Ξ f, (2) is zero, that is, Ξ f, (2) · (cid:104) ψ f, ψ f, ψ f, ψ f, (cid:105) (cid:124) = . (20)Therefore, (if ψ f, (cid:54) = 0 ) the helper node h only sends the first β = 3 symbols of the vector Ψ h · D · Ξ f, (2) , namely, [ Ψ h · D · Ξ f, (2) ] , [ Ψ h · D · Ξ f, (2) ] , and [ Ψ h · D · Ξ f, (2) ] , and the forth symbol [ Ψ h · D · Ξ f, (2) ] can be appendedto it at node f from [ Ψ h · D · Ξ f, (2) ] = ψ − f, · (cid:88) i =1 ψ f,i · [ Ψ h · D · Ξ f, (2) ] i . Upon receiving the repair data from d = 4 helper nodes { , , , } , namely { Ψ · D · Ξ f, (2) , Ψ · D · Ξ f, (2) , Ψ · D · Ξ f, (2) , Ψ · D · Ξ f, (2) } , the failed can stack them to obtain a matrix Ψ · D · Ξ f, (2) Ψ · D · Ξ f, (2) Ψ · D · Ξ f, (2) Ψ · D · Ξ f, (2) = Ψ [ { , , , } , :] · D · Ξ f, (2) = D · Ξ f, (2) , (21)where the last identity is due to the fact that Ψ [ { , , , } , :] = I is the identity matrix. We refer to this matrix bythe repair space matrix of node f , and denote it by R f, (2) = D · Ξ f, (2) , as presented at the top of the next page.Using the entries of matrix R f, (2) , we can reconstruct the missing coded symbols of the failed node, as formulatedin (9). For the sake of illustration, let us focus on the symbol at the position I = { , } of node f . Recall thatrows of matrix R f, (2) are indexed by numbers in [ d ] = { , , , } and its columns are indexed by subsets of size m − of [ d ] . The I -th symbol of node f can be found from a linear combination (with +1 and − coefficients) Indeed the entire repair process can be expressed in terms of the β = 3 repair symbols sent by the helper nodes. However, the recoveryequations for the missing symbols are mathematically more symmetric and compact if we allow the fourth symbol to appear in the repairequations. { } { } v , { , } ψ f, + v , { , } ψ f, + v , { , } ψ f, − v , { , } ψ f, + w , { , , } ψ f, + w , { , , } ψ f, · · · v , { , } ψ f, + w , { , , } ψ f, + w , { , , } ψ f, − v , { , } ψ f, + v , { , } ψ f, + v , { , } ψ f, · · · w , { , , } ψ f, + v , { , } ψ f, + w , { , , } ψ f, − w , { , , } ψ f, + v , { , } ψ f, + w , { , , } ψ f, · · · w , { , , } ψ f, + w , { , , } ψ f, + v , { , } ψ f, − w , { , , } ψ f, + w , { , , } ψ f, + v , { , } ψ f, · · ·{ } { }− v , { , } ψ f, − w , { , , } ψ f, + w , { , , } ψ f, − v , { , } ψ f, − w , { , , } ψ f, − w , { , , } ψ f, − w , { , , } ψ f, − v , { , } ψ f, + w , { , , } ψ f, − w , { , , } ψ f, − v , { , } ψ f, − w , { , , } ψ f, − v , { , } ψ f, − v , { , } ψ f, + v , { , } ψ f, − w , { , , } ψ f, − w , { , , } ψ f, − v , { , } ψ f, − w , { , , } ψ f, − w , { , , } ψ f, + v , { , } ψ f, − v , { , } ψ f, − v , { , } ψ f, − v , { , } ψ f, R f, (2) = (cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12) of entries of R f, (2) positioned at row x and column I \ { x } for all x ∈ I . The coefficients used in this linearcombination is given by order of number x in set I , e.g., x = 2 is the first (smallest) element of I = { , } , hence ind { , } (2) = 1 , and the corresponding coefficient will be ( − ind { , } (2) = ( − = − . Putting things together,we obtain (cid:88) x ∈{ , } ( − ind { , } ( x ) R f, (2) x, { , }\{ x } = − R f, (2)2 , { } + R f, ( m )4 , { } = − (cid:2) − ψ f, v , { , } − ψ f, w , { , , } − ψ f, w , { , , } (cid:3) + (cid:2) ψ f, v , { , } − ψ f, w , { , , } + ψ f, w , { , , } (cid:3) = ψ f, v , { , } + ψ f, v , { , } + ψ f, (cid:0) w , { , , } − w , { , , } (cid:1) + ψ f, (cid:0) w , { , , } + w , { , , } (cid:1) = ψ f, v , { , } + ψ f, v , { , } + ψ f, w , { , , } + ψ f, w , { , , } (22) = [ Ψ · D ] { , } , where in (22) we used the parity equations defined in (12). A general repair scenario with an arbitrary (not necessarilysystematic) set of helper nodes H with |H| = d = 4 is very similar to that from the systematic nodes, explainedabove.Each helper node h ∈ H computes its repair data by multiplying its content by the repair encoder matrix offailed node f , and sends it to the failed node. The failed node collects (cid:8) Ψ h · D · Ξ f, (2) : h ∈ H (cid:9) and stacks themto form the matrix Ψ [ H , :] · D · Ξ f, (2) , where Ψ [ H , :] is the sub-matrix of Ψ obtained by stacking rows indexed by { h : h ∈ H} . The main difference compared to the systematic helpers case is that unlike in (21), Ψ [ H , :] is not anidentity matrix in general. However, since Ψ [ H , :] is an invertible matrix, we can compute R f, (2) = D · Ξ f, (2) as R f, (2) = Ψ [ H , :] − · (cid:16) Ψ [ H , :] · D · Ξ f, (2) (cid:17) = D · Ξ f, (2) . Once R f, (2) is computed at node f , the rest of the process is identical the repair from systematic helper nodes. B. Multiple Failure Repair
Now, assume two non-systematic nodes in E = { f , f } are simultaneously failed, and our goal is to reconstructthe missing data on f and f using the systematic nodes, i.e., the helper set is H = { , , , } . A naive approachis to repeat the repair scenario discussed in Section IV-A for f and f . Such a separation-based scheme requires downloading β = 6 (coded) symbols from each helper node. Alternatively, we show that the repair of nodes f and f can be performed by downloading only β = 5 symbols from each helper.We start with Ξ { f ,f } , (2) which is basically the concatenation of Ξ f , (2) and Ξ f , (2) : { } { } { } { } { } { } { } { }{ , } ψ f , − ψ f , ψ f , − ψ f , { , } ψ f , − ψ f , ψ f , − ψ f , { , } ψ f , − ψ f , ψ f , − ψ f , { , } ψ f , − ψ f , ψ f , − ψ f , { , } ψ f , − ψ f , ψ f , − ψ f , { , } ψ f , − ψ f , ψ f , − ψ f , Ξ E , (2) = (cid:104) Ξ f , (2) Ξ f , (2) (cid:105) = This is a × matrix. However, the claim of Proposition 3 implies the rank of this matrix is at most . To showthis claim, we define the non-zero vector { , } { , } { , } { , } { , } { , }{ , } − (cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12) ψ f , ψ f , ψ f , ψ f , (cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12) , (cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12) ψ f , ψ f , ψ f , ψ f , (cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12) , − (cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12) ψ f , ψ f , ψ f , ψ f , (cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12) , − (cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12) ψ f , ψ f , ψ f , ψ f , (cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12) , (cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12) ψ f , ψ f , ψ f , ψ f , (cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12) , − (cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12) ψ f , ψ f , ψ f , ψ f , (cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12) Y E , (2) = { , } { , } { , }{ , } ψ f , ψ f , − ψ f , ψ f , ψ f , ψ f , − ψ f , ψ f , ψ f , ψ f , − ψ f , ψ f , · · ·{ , } { , } { , }· · · ψ f , ψ f , − ψ f , ψ f , ψ f , ψ f , − ψ f , ψ f , ψ f , ψ f , − ψ f , ψ f , (cid:20) (cid:21) = and show that this vector is in the left null-space of Ξ { f ,f } , (2) . The general construction of the null-space ispresented in the proof of Proposition 3 in Section V.First note that Y E , (2) is not an all-zero vector, otherwise we have ψ f , ψ f , = ψ f , ψ f , = ψ f , ψ f , = ψ f , ψ f , , which implies rows Ψ f and Ψ f of the encoder matrix are linearly dependent. This is in contradiction with thefact that every d = 4 rows of Ψ are linearly independent. Hence, without loss of generality, we may assume (cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12) ψ f , ψ f , ψ f , ψ f , (cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12) (cid:54) = 0 . In order to prove Y E , (2) · Ξ E , (2) = 0 , we show that vector Y E , (2) is orthogonal to each column of Ξ E , (2) . Forinstance, consider the seventh column of Ξ E , (2) , labeled by { } in segment Ξ f , (2) . The inner product of Y E , (2) and this column is given by − ψ f , (cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12) ψ f , ψ f , ψ f , ψ f , (cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12) + ψ f , (cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12) ψ f , ψ f , ψ f , ψ f , (cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12) − ψ f , (cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12) ψ f , ψ f , ψ f , ψ f , (cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12) = − (cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12) ψ f , ψ f , ψ f , ψ f , ψ f , ψ f , ψ f , ψ f , ψ f , (cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12)(cid:12) = 0 , where the first equality follows from the Laplace expansion of the determinant with respect to the first row, and thesecond equality is due to the fact that the first and third rows of the matrix are identical, and hence it is rank-deficient.The existence of a non-zero vector in the left null-space of Ξ E , (2) implies its rank is at most β (2)2 = 5 .Now, assume h = 1 is one of the helper nodes. Without loss of generality, we may assume ψ f , (cid:54) = 0 and ψ f , (cid:54) = 0 . The repair data sent by node , i.e., Ψ · D · Ξ E , (2) , has the following symbols: Symbol ψ f , v , { , } + ψ f , v , { , } + ψ f , v , { , } , Symbol − ψ f , v , { , } + ψ f , w , { , , } + ψ f , w , { , , } , Symbol − ψ f , v , { , } − ψ f , w , { , , } + ψ f , w , { , , } , Symbol − ψ f , v , { , } − ψ f , w , { , , } − ψ f , w , { , , } Symbol ψ f , v , { , } + ψ f , v , { , } + ψ f , v , { , } , Symbol − ψ f , v , { , } + ψ f , w , { , , } + ψ f , w , { , , } , Symbol − ψ f , v , { , } − ψ f , w , { , , } + ψ f , w , { , , } , Symbol − ψ f , v , { , } − ψ f , w , { , , } − ψ f , w , { , , } , (23)However, we claim that Symbol , Symbol , and Symbol are redundant, and can be reconstructed as linearcombinations of the remaining five symbols. This can be verified by Symbol − ψ f , ψ f , × Symbol − ψ f , ψ f , × Symbol − ψ f , ψ f , × Symbol Symbol − ψ f , ψ f , × Symbol − ψ f , ψ f , × Symbol − ψ f , ψ f , × Symbol . Symbol ψ f , ( ψ f , ψ f , − ψ f , ψ f , ) ψ f , ( ψ f , ψ f , − ψ f , ψ f , ) × Symbol ψ f , ( ψ f , ψ f , − ψ f , ψ f , ) ψ f , ( ψ f , ψ f , − ψ f , ψ f , ) Symbol ψ f , ψ f , Symbol ψ f , ψ f , − ψ f , ψ f , ψ f , ψ f , − ψ f , ψ f , Symbol ψ f , ψ f , − ψ f , ψ f , ψ f , ψ f , − ψ f , ψ f , Symbol It is worth noting that the first and second equations above indicate the dependencies between symbols that aresent for the repair of f and f , respectively (similar to the (20)). The third equation, however, shows an additionaldependency across the repair symbols f and and those of f . This implies that it suffices for the helper node tosend symbols , , , , and in (23) to repair two nodes f and f , simultaneously.V. P ROOFS OF THE C ODE P ROPERTIES
In this section, we provide formal proofs for the exact-repair property of the code stated in Propositions 2. Wealso prove the bounds on the repair bandwidth for single and multiple node failures, presented in Propositions 1and Propositions 3, respectively. Proof of proposition 2.
The proof technique here is similar to that used in (22). We start with the RHS of (9), andplugin the entries of matrices R f, ( m ) , Ξ f, ( m ) and D , to expand it. Next, we split the terms in the summation into v -symbols ( D x, I with x ∈ I ) and w -symbols ( D y, I with y / ∈ I ), and then we prove the identity for v and w symbols separately. The details of proof are as follows. (cid:88) x ∈I ( − ind I ( x ) (cid:104) R f, ( m ) (cid:105) x, I\{ x } = (cid:88) x ∈I ( − ind I ( x ) (cid:104) D · Ξ f, ( m ) (cid:105) x, I\{ x } = (cid:88) x ∈I ( − ind I ( x ) (cid:88) L⊆ [ d ] |L| = m D x, L · Ξ f, ( m ) L , I\{ x } = (cid:88) x ∈I ( − ind I ( x ) (cid:88) y ∈ [ d ] \ ( I\{ x } ) D x, ( I\{ x } ) ∪{ y } · Ξ f, ( m )( I\{ x } ) ∪{ y } , I\{ x } (24) = (cid:88) x ∈I ( − ind I ( x ) D x, I Ξ f, ( m ) I , I\{ x } + (cid:88) y ∈ [ d ] \I D x, ( I\{ x } ) ∪{ y } · Ξ f, ( m )( I\{ x } ) ∪{ y } , I\{ x } (25) = (cid:88) x ∈I ( − ind I ( x ) ( − ind I ( x ) ψ f,x D x, I + (cid:88) y ∈ [ d ] \I ( − ind ( I\{ x } ) ∪{ y } ( y ) ψ f,y D x, ( I\{ x } ) ∪{ y } (26) = (cid:88) x ∈I ψ f,x D x, I + (cid:88) y ∈ [ d ] \I (cid:88) x ∈I ( − ind I ( x ) ( − ind ( I\{ x } ) ∪{ y } ( y ) ψ f,y D x, ( I\{ x } ) ∪{ y } (27) = (cid:88) x ∈I ψ f,x D x, I + (cid:88) y ∈ [ d ] \I (cid:88) x ∈I ψ f,y ( − ind I∪{ y } ( y )+1 ( − ind I∪{ y } ( x ) D x, ( I\{ x } ) ∪{ y } (28) = (cid:88) x ∈I ψ f,x D x, I + (cid:88) y ∈ [ d ] \I ( − ind I∪{ y } ( y )+1 ψ f,y (cid:88) x ∈I ( − ind I∪{ y } ( x ) w x, I∪{ y } (29) = (cid:88) x ∈I ψ f,x D x, I + (cid:88) y ∈ [ d ] \I ( − ind I∪{ y } ( y )+1 ψ f,y (cid:104) ( − ind I∪{ y } ( y )+1 w y, I∪{ y } (cid:105) (30) = (cid:88) x ∈I ψ f,x D x, I + (cid:88) y ∈ [ d ] \I ( − ind I∪{ y } ( y )+1 ψ f,y (cid:104) ( − ind I∪{ y } ( y )+1 D y, I (cid:105) (31) = (cid:88) x ∈I ψ f,x D x, I + (cid:88) y ∈ [ d ] \I ψ f,y D y, I (32) = (cid:88) x ∈ [ d ] ψ f,x D x, I = [ ψ f D ] I (33)where in above equations we used the following facts. • In (24), we used the definition of Ξ f, ( m ) in (7) which implies Ξ f, ( m ) L , I\{ x } is non-zero only if L includes I \ { x } ; • In (25), we split the summation into two cases: y = x and y (cid:54) = x ; • In (26), we replaced Ξ f, ( m ) I , I\{ x } by ( − ind I ( x ) ψ f,x from its definition in (7); • In (27), the two summations over x and y are swapped; • In (28), we used the identity ( − ind ( I\{ x } ) ∪{ y } ( y ) ( − ind I ( x ) = ( − ind I∪{ y } ( y )+1 ( − ind I∪{ y } ( x ) . In order toprove the identity, we may consider two cases: – If x < y , then ind ( I\{ x } ) ∪{ y } ( y ) = ind I∪{ y } ( y ) − , ind I ( x ) = ind I∪{ y } ( x ) . – If x > y , then ind ( I\{ x } ) ∪{ y } ( y ) = ind I∪{ y } ( y ) , ind I ( x ) = ind I∪{ y } ( x ) − . • In (29), since x / ∈ ( I \ { x } ) ∪ { y } then D x, ( I\{ x } ) ∪{ y } = w x, I∪{ y } ; • In (30), we used the parity equation (5). In particular, we have (cid:80) x ∈I∪{ y } ( − ind I∪{ y } ( x ) w x,I ∪{ y } = 0 , whichimplies (cid:80) x ∈I ( − ind I∪{ y } ( x ) w x,I ∪{ y } = − ( − ind I∪{ y } ( y ) w y,I ∪{ y } .This completes the proof. Proof of Proposition 1.
In order to show that the repair bandwidth constraint is fulfilled, we need to show that therank of matrix Ξ f, ( m ) is at most β ( m ) = (cid:0) d − m − (cid:1) . First, note that it is easy to verify the claim for m = 1 , since thematrix Ξ f, (1) has only one column labeled by ∅ and hence its rank is at most (cid:0) d − − (cid:1) . For m > , we partitionthe columns of the matrix into disjoint groups of size β ( m ) = (cid:0) d − m − (cid:1) and (cid:0) dm − (cid:1) − β ( m ) = (cid:0) d − m − (cid:1) , and showthat each column in the second group can be written as a linear combination of the columns in the first group.This implies that the rank of the matrix does not exceed the number of columns in the first group, which is exactly β ( m ) .To form the groups, we pick some x ∈ [ d ] such that ψ f,x (cid:54) = 0 . Then the first group is the set of all columnswhose label is a subset of [ d ] \ { x } . Recall that columns of Ξ f, ( m ) are labeled with ( m − -element subsets of [ d ] . Hence, the number of columns in the first group is (cid:0) d − m − (cid:1) . Then, the second group is formed by those columnsfor which x appears in their label.Without loss of generality, we may assume x = d , i.e ψ f,d (cid:54) = 0 , and hence the first group consists of columns I such that I ⊂ [ d − , and the second group includes those I ’s such that d ∈ I . For every I with d ∈ I , we claimthat Ξ f, ( m ): , I = ( − m ψ − f,d (cid:88) y ∈ [ d − \J ( − ind J∪{ y } ( y ) ψ f,y Ξ f, ( m ): , J ∪{ y } , (34)where J = I \ { d } . Note that all the columns appear in the RHS of (34) belong to the first group. Given the factsthat |I| = m − and ind I ( d ) = m − , the equation in (34) is equivalent to (cid:88) y ∈ [ d ] \J ( − ind J∪{ y } ( y ) ψ f,y Ξ f, ( m ): , J ∪{ y } = 0 . (35)Let us focus on an arbitrarily chosen row of the matrix, labeled by L , where L ⊆ [ d ] with |L| = m . The L -th entryof the column in the LHS of (35) is given by (cid:88) y ∈ [ d ] \J ( − ind J∪{ y } ( y ) ψ f,y Ξ f, ( m ): , J ∪{ y } L = (cid:88) y ∈ [ d ] \J ( − ind J∪{ y } ( y ) ψ f,y Ξ f, ( m ) L , J ∪{ y } . Note that such an x exists, otherwise the f -th row Ψ will be zero, which is in contradiction with the fact that every d rows of Ψ are linearlyindependent. First assume
J (cid:54)⊂ L . This together with the definition of Ξ f, ( m ) in (7) imply that Ξ f, ( m ) L , J ∪{ y } = 0 for any y , andhence all the terms in the LHS of (35) are zero.Next, consider an L such that J ⊆ L . Since |J | = |I \ { d } | = m − and |L| = m , we have L = J ∪ { y , y } ,where y < y are elements of [ d ] . Note that for y / ∈ { y , y } we have Ξ f, ( m ) L , J ∪{ y } = 0 , since J ∪ { y } (cid:54)⊂ L .Therefore, (35) can be simplified as (cid:34) (cid:88) y ∈ [ d ] \J ( − ind J∪{ y } ( y ) ψ f,y Ξ f, ( m ): , J ∪{ y } (cid:35) L = (cid:88) y ∈{ y ,y } ( − ind J∪{ y } ( y ) ψ f,y Ξ f, ( m ) L , J ∪{ y } (36) = ( − ind J∪{ y } ( y ) ψ f,y Ξ f, ( m ) L , J ∪{ y } + ( − ind J∪{ y } ( y ) ψ f,y Ξ f, ( m ) L , J ∪{ y } = ( − ind J∪{ y } ( y ) ψ f,y · ( − ind L ( y ) ψ f,y + ( − ind J∪{ y } ( y ) ψ f,y · ( − ind L ( y ) ψ f,y (37) = ψ f,y ψ f,y (cid:104) ( − ind L\{ y } ( y )+ ind L ( y ) + ( − ind L\{ y } ( y )+ ind L ( y ) (cid:105) = 0 , (38)where (36) and (37) is due to the definition of Ξ f, ( m ) in (7), and in (38) we used the facts that ind L\{ y } ( y ) = ind L ( y ) and ind L\{ y } ( y ) = ind L ( y ) − which holds for y , y ∈ L with y < y . This completes the proof. Proof of Proposition 3.
The claim of this proposition for e > d is equivalent to bounding the number of repairsymbols from the helper node by α = (cid:0) dm (cid:1) (because (cid:0) d − em (cid:1) = 0 ), which is clearly true since each storage node doesnot store more than α symbols. Thus, we can limit our attention to e ≤ d . In order to prove the claim, we showthat the row rank of Ξ E , ( m ) does not exceed (cid:0) dm (cid:1) − (cid:0) d − em (cid:1) . Recall that Ξ E , ( m ) is a (cid:0) dm (cid:1) × e (cid:0) dm − (cid:1) matrix, and itsuffices to identify (cid:0) d − em (cid:1) linearly independent vectors in the left null-space of Ξ E , ( m ) . To this end, we introduce afull-rank matrix Y E , ( m ) of size (cid:0) d − em (cid:1) × (cid:0) dm (cid:1) and show that Y E , ( m ) · Ξ E , ( m ) = . Step 1 (Construction of Y E , ( m ) ): Let Ψ [ E , :] be the e × d matrix obtained from the rows f , f , · · · , f e of theencoder matrix Ψ . Recall that Ψ [ E , :] is full-rank (since any d rows of Ψ are linearly independent, and e ≤ d ). Hence,there exists a subset Q with |Q| = e of the columns of Ψ [ E , :] , denoted by Ψ [ E , Q ] such that det ( Ψ [ E , Q ]) (cid:54) = 0 .The desired matrix Y E , ( m ) is of size (cid:0) d − em (cid:1) × (cid:0) dm (cid:1) . We label its rows by m -element subsets of [ d ] \ Q , and itscolumns by m -element subsets of [ d ] . Then the entry at row I and column L is defined as Y E , ( m ) I , L = ( − (cid:80) j ∈L ind I∪Q ( j ) det ( Ψ [ E , ( I ∪ Q ) \ L ]) if L ⊆ I ∪ Q , if L (cid:42) I ∪ Q . (39)Note that I ⊆ [ d ] \ Q , and hence |I ∪ Q| = m + e . Step 2 (Orthogonality of Y E , ( m ) to Ξ E , ( m ) ): We prove this claim for each segment of Ξ E , ( m ) . More precisely,for each f ∈ E , we prove Y E , ( m ) · Ξ f, ( m ) = . Consider some f ∈ E , and arbitrary indices I and J for rows and columns, respectively. We have (cid:104) Y E , ( m ) · Ξ f, ( m ) (cid:105) I , J = (cid:88) L⊆ [ d ] |L| = m Y E , ( m ) I , L · Ξ f, ( m ) L , J (40) = (cid:88) x ∈ [ d ] \J Y E , ( m ) I , J ∪{ x } · Ξ f, ( m ) J ∪{ x } , J (41) = (cid:88) x ∈ ( I∪Q ) \J Y E , ( m ) I , J ∪{ x } · Ξ f, ( m ) J ∪{ x } , J (42) = (cid:88) x ∈ ( I∪Q ) \J (cid:104) ( − (cid:80) j ∈J∪{ x } ind I∪Q ( j ) det ( Ψ [ E , ( I ∪ Q ) \ ( J ∪ { x } )]) (cid:105) (cid:104) ( − ind J∪{ x } ( x ) ψ f,x (cid:105) (43) = ( − (cid:80) j ∈J ind I∪Q ( j ) − (cid:88) x ∈ ( I∪Q ) \J ( − ind ( I∪Q ) \J ( x ) det ( Ψ [ E , ( I ∪ Q ) \ ( J ∪ { x } )]) ψ f,x (44) = ( − (cid:80) j ∈J ind I∪Q ( j ) − det Ψ [ f, ( I ∪ Q ) \ J ] Ψ [ E , ( I ∪ Q ) \ J ] (45) = 0 . (46)Note that • In (41) we have used the fact that Ξ f, ( m ) is non-zero only if L = J ∪ { x } for some x ∈ [ d ] \ J (see (7)). • The range of x is further limited in (42) due to the fact that Y E , ( m ) I , J ∪{ x } is non-zero only if J ∪ { x } ⊆ I ∪ Q (see (39)), which implies x ∈ ( I ∪ Q ) \ J . • In (43), the entries of the matrix product are replaced by their definitions from (7) and (39). • The equality in (44) is obtained by factoring ( − (cid:80) j ∈J ind I∪Q ( j ) , and using the facts that J ⊂ I ∪ Q and ind
I∪Q ( x ) + ind J ∪{ x } ( x ) ≡ ind I∪Q ( x ) − ind J ∪{ x } ( x ) ( mod |{ y ∈ I ∪ Q : y ≤ x }| − |{ y ∈ J ∪ { x } : y ≤ x }| = |{ y ∈ I ∪ Q : y ≤ x }| − |{ y ∈ J : y ≤ x }| − |{ y ∈ ( I ∪ Q ) \ J : y ≤ x }| − ind ( I∪Q ) \J ( x ) − . • The equality in (45) follows the determinant expansion of the matrix with respect to its first row. Note that | ( I ∪ Q ) \ J | = e + 1 , and hence it is a square matrix. • Finally, the determinant in (45) is zero, because f ∈ E , and hence the matrix has two identical rows. Step 3 (Full-rankness of Y E , ( m ) ): Recall that rows and columns of Y E , ( m ) are labeled by m -element subsetsof [ d ] \ Q and m -element subsets of [ d ] , respectively. Consider the sub-matrix of Y E , ( m ) , whose column labels aresubsets of [ d ] \ Q . This is (cid:0) d − em (cid:1) × (cid:0) d − em (cid:1) square sub-matrix. Note that for entry at position ( I , J ) with I (cid:54) = J ,since J ∩ Q = ∅ , we have J (cid:42) I ∪ Q , and hence (cid:2) Y E , ( m ) (cid:3) I , J = 0 (see (39)). Otherwise, if I = J we have (cid:2) Y E , ( m ) (cid:3) I , J = ( − (cid:80) i ∈I ind I∪Q ( i ) det ( Ψ [ E , Q ]) . That is (cid:104) Y E , ( m ) (cid:105) I , J = ( − (cid:80) i ∈I ind I∪Q ( i ) det ( Ψ [ E , Q ]) if I = J , if I (cid:54) = J . This implies that Y E , ( m ) has a diagonal sub-matrix, with diagonal entries ± det ( Ψ [ E , Q ]) which are non-zero (see Step 1 ), and hence Y E , ( m ) is a full-rank matrix. Therefore, the rows of Y E , ( m ) provide (cid:0) d − em (cid:1) linearly independentvectors in the left null-space of Ξ E , ( m ) , and thus the rank of Ξ E , ( m ) does not exceed β ( m ) = (cid:0) dm (cid:1) − (cid:0) d − em (cid:1) . Thiscompletes the proof. VI. I MPROVED C ENTRALIZED R EPAIR FOR M ULTIPLE F AILURES
In this section, we prove Theorem 3. As mentioned before, this result is essentially obtained from Theorem 2,by exploiting the fact that in the centralized repair setting once one failed node is repaired, it can also participatein the repair process of the remaining failed nodes.
Proof of Theorem 3.
Consider a set of e failed nodes E = { f , f , · · · , f e } , which are going to be repaired by aset of helper nodes H with |H| = d . Recall from Theorem 2 that the repair data of node h intended for a failednode f (i.e., Ψ h · D · Ξ f, ( m ) ) can be retrieved from the repair data that h sends for the repair of a set of failednodes E (i.e., Ψ h · D · Ξ E , ( m ) ) where f ∈ E . We use the following procedure in order to repair the failed nodes in E . 1) First node f is repaired using helper nodes H = { h , h , · · · , h d } .2) Having failed { f , . . . , f i } repaired, the repair process of failed node f i +1 is performed using helper nodes H i = { f , . . . , f i } ∪ { h i +1 , h i +2 , . . . , h d } . This step will be repeated for i = 2 , , . . . , e .Note that the proposed repair process introduced in this paper is helper-independent, and hence the repair datasent to a failed node f i by a helper node h does not depend on the identity of the other helper nodes.Using the procedure described above, helper node h i only participates in the repair of failed nodes { f , f , . . . , f i } ,for i = 1 , , . . . , e , while the other helper nodes (i.e., h i for i = e + 1 , . . . , d ) contribute in the repair of all the e failed nodes. Hence, the total repair data downloaded from the helper nodes in H to the central repair unit is given by e (cid:88) j =1 β ( m ) j + ( d − e ) β ( m ) e = e (cid:88) j =1 (cid:20)(cid:18) dm (cid:19) − (cid:18) d − jm (cid:19)(cid:21) + ( d − e ) (cid:20)(cid:18) dm (cid:19) − (cid:18) d − em (cid:19)(cid:21) (47) = d (cid:18) dm (cid:19) − e (cid:88) j =1 (cid:18) d − jm (cid:19) − ( d − e ) (cid:18) d − em (cid:19) (48) = d (cid:18) dm (cid:19) − (cid:20)(cid:18) dm + 1 (cid:19) − (cid:18) d − em + 1 (cid:19)(cid:21) − ( d − e ) (cid:18) d − em (cid:19) (49) = ( d + 1) (cid:18) dm (cid:19) − (cid:20)(cid:18) dm (cid:19) + (cid:18) dm + 1 (cid:19)(cid:21) − ( d − e + 1) (cid:18) d − em (cid:19) + (cid:20)(cid:18) d − em (cid:19) + (cid:18) d − em + 1 (cid:19)(cid:21) (50) = ( m + 1) (cid:18) d + 1 m + 1 (cid:19) − (cid:18) d + 1 m + 1 (cid:19) − ( m + 1) (cid:18) d − e + 1 m + 1 (cid:19) + (cid:18) d − e + 1 m + 1 (cid:19) (51) = m (cid:20)(cid:18) d + 1 m + 1 (cid:19) − (cid:18) d − e + 1 m + 1 (cid:19)(cid:21) , (52)where • in (49) we used the identity b (cid:88) j = a (cid:18) jm (cid:19) = b (cid:88) j = m (cid:18) jm (cid:19) − a − (cid:88) j = m (cid:18) ji (cid:19) = (cid:18) b + 1 m + 1 (cid:19) − (cid:18) am + 1 (cid:19) , • and the equality in (51) holds due to the Pascal identity (cid:0) am (cid:1) + (cid:0) am +1 (cid:1) = (cid:0) a +1 m +1 (cid:1) , and the fact that ( a + 1) (cid:0) am (cid:1) =( m + 1) (cid:0) a +1 m +1 (cid:1) .Hence the average (per helper node) repair bandwidth is given by ¯ β ( m ) e = 1 d (cid:20) m (cid:18) d + 1 m + 1 (cid:19) − m (cid:18) d − e + 1 m + 1 (cid:19)(cid:21) . (53)Note that the repair strategy described here is asymmetric, i.e., the repair bandwidth of helper nodes are different.However, it can be simply symmetrized by concatenating d copies of the code to form a super code C = Ψ · (cid:104) D [1] , D [2] , . . . , D [ d ] (cid:105) . In the super code, each node stores a total of d · α ( m ) symbols, including α symbols for each code segment D [ (cid:96) ] ,and the total storage capacity of the code is d · F ( m ) . In a multiple failure scenario with failed nodes E = { f , . . . , f e } and helper nodes H = { h , . . . , h d } , codeword segments will be repaired separately. The role of helper nodes inthe repair process changes in a circular manner, as shown in Fig. 4. Then, the per-node repair bandwidth of thesuper code is exactly d · ¯ β ( m ) e defined above. Note that the symmetry in the super code is obtained at the expenseof the sub-packetization, which is scaled by a factor of d . This completes the proof.R EFERENCES[1] A. G. Dimakis, P. Godfrey, Y. Wu, M. J. Wainwright, and K. Ramchandran, “Network coding for distributed storage systems,”
InformationTheory, IEEE Transactions on , vol. 56, no. 9, pp. 4539–4551, 2010.[2] K. V. Rashmi, N. B. Shah, and P. V. Kumar, “Optimal exact-regenerating codes for distributed storage at the msr and mbr points via aproduct-matrix construction,”
Information Theory, IEEE Transactions on , vol. 57, no. 8, pp. 5227–5239, 2011. f ,f f ,...,f e f ,...,f e f ,...,f e f ,...,f e f ,...,f e f ,...,f e f ,...,f e f ,...,f e f ,...,f e f f ,f f ,f ,f f ,f f ,...,f e f ,...,f e f ,...,f e f f ,...,f e f ,...,f e f ,...,f e f ,...,f e f ,...,f e f f ,...,f e f ,...,f e f ,...,f e f ,...,f e f ,...,f e f ,...,f e f ,...,f e f ,...,f e f ,...,f e f ,f f ,f ,f f ,f ,f f ,...,f f ,...,f e f ,...,f e f ,...,f e f ,...,f e f ,...,f e f ,...,f f ,...,f f ,...,f e f ,...,f e f ,...,f e f f ,...,f e f h h h h e h e h e +1 h d h d D [1] D [2] D [3] D [ d D [ d ] D [ d e +4] D [ d e +3] D [ d e +2] f ,...,f e f ,...,f e f ,...,f e f ,...,f e f ,...,f e · · · · · ·· · ·· · ·· · · · · · · · · . . . ... ... ...... ... ... ... ...... ... he l pe r node s code segments Fig. 4. The participation of the helper nodes in the multiple failure repair of the super-code. Each cell labeled by h i and D [ (cid:96) ] shows the setof failed nodes receive repair data from helper node h i to repair their codeword segment corresponding to code segment D [ (cid:96) ] .[3] S.-J. Lin, W.-H. Chung, Y. S. Han, and T. Y. Al-Naffouri, “A unified form of exact-msr codes via product-matrix frameworks,” InformationTheory, IEEE Transactions on , vol. 61, no. 2, pp. 873–886, 2015.[4] M. Ye and A. Barg, “Explicit constructions of high-rate mds array codes with optimal repair bandwidth,”
IEEE Transactions on InformationTheory , vol. 63, no. 4, pp. 2001–2014, 2017.[5] B. Sasidharan, M. Vajha, and P. V. Kumar, “An explicit, coupled-layer construction of a high-rate msr code with low sub-packetizationlevel, small field size and all-node repair,” arXiv preprint arXiv:1607.07335 , 2016.[6] C. Tian, J. Li, and X. Tang, “A generic transformation for optimal repair bandwidth and rebuilding access in mds codes,” in
InformationTheory (ISIT), 2017 IEEE International Symposium on , 2017, pp. 1623–1627.[7] M. Ye and A. Barg, “Explicit constructions of optimal-access mds codes with nearly optimal sub-packetization,”
IEEE Transactions onInformation Theory , vol. 63, no. 10, pp. 6307–6317, 2017.[8] M. Elyasi, S. Mohajer, and R. Tandon, “Linear exact repair rate region of ( k + 1 , k, k ) distributed storage systems: A new approach,” in Information Theory Proceedings (ISIT), 2015 IEEE International Symposium on . IEEE, 2015, pp. 2061–2065.[9] N. Prakash and M. N. Krishnan, “The storage-repair-bandwidth trade-off of exact repair linear regenerating codes for the case d = k = n − ,” in Information Theory Proceedings (ISIT), 2015 IEEE International Symposium on . IEEE, 2015, pp. 859 – 863.[10] I. M. Duursma, “Shortened regenerating codes,” arXiv preprint arXiv:1505.00178 , 2015.[11] C. Tian, B. Sasidharan, V. Aggarwal, V. Vaishampayan, P. V. Kumar et al. , “Layered exact-repair regenerating codes via embedded errorcorrection and block designs,”
Information Theory, IEEE Transactions on , vol. 61, no. 4, pp. 1933–1947, 2015.[12] S. Goparaju, S. E. Rouayheb, and R. Calderbank, “New codes and inner bounds for exact repair in distributed storage systems,” arXivpreprint arXiv:1402.2343 , 2014.[13] M. Elyasi and S. Mohajer, “Determinant coding: A novel framework for exact-repair regenerating codes,”
IEEE Transactions on InformationTheory , vol. 62, no. 12, pp. 6683–6697, 2016.[14] ——, “New exact-repair codes for distributed storage systems using matrix determinant,” in
Information Theory (ISIT), 2016 IEEEInternational Symposium on . IEEE, 2016, pp. 1212–1216.[15] N. B. Shah, K. V. Rashmi, P. V. Kumar, and K. Ramchandran, “Distributed storage codes with repair-by-transfer and nonachievability ofinterior points on the storage-bandwidth tradeoff,”
IEEE Transactions on Information Theory , vol. 58, no. 3, pp. 1837–1852, 2012.[16] K. Rashmi, P. Nakkiran, J. Wang, N. B. Shah, and K. Ramchandran, “Having your cake and eating it too: Jointly optimal erasure codes for i/o, storage, and network-bandwidth.” in FAST , 2015, pp. 81–94.[17] K. Rashmi, N. B. Shah, D. Gu, H. Kuang, D. Borthakur, and K. Ramchandran, “A solution to the network challenges of data recovery inerasure-coded distributed storage systems: A study on the facebook warehouse cluster.” in
HotStorage , 2013.[18] M. Zorgui and Z. Wang, “Centralized multi-node repair regenerating codes,” arXiv preprint arXiv:1706.05431 , 2017.[19] A. Wang and Z. Zhang, “Exact cooperative regenerating codes with minimum-repair-bandwidth for distributed storage,” in
INFOCOM,2013 Proceedings IEEE . IEEE, 2013, pp. 400–404.[20] K. W. Shum and Y. Hu, “Cooperative regenerating codes,”
IEEE Transactions on Information Theory , vol. 59, no. 11, pp. 7229–7258,2013.[21] J. Li and B. Li, “Cooperative repair with minimum-storage regenerating codes for distributed storage,” in
INFOCOM, 2014 ProceedingsIEEE . IEEE, 2014, pp. 316–324.[22] M. Ye and A. Barg, “Cooperative repair: Constructions of optimal mds codes for all admissible parameters,”