## Layered, Exact-Repair Regenerating Codes Via Embedded Error Correction and Block Designs

Chao Tian, Senior Member, IEEE , Birenjith Sasidharan, Vaneet Aggarwal, Member, IEEE , Vinay A. Vaishampayan, Fellow, IEEE , and P. Vijay Kumar, Fellow, IEEE

## Abstract

A new class of exact-repair regenerating codes is constructed by stitching together shorter erasure correction codes, where the stitching pattern can be viewed as block designs. The proposed codes have the 'help-by-transfer' property where the helper nodes simply transfer part of the stored data directly, without performing any computation. This embedded error correction structure makes the decoding process straightforward, and in some cases the complexity is very low. We show that this construction is able to achieve performance better than space-sharing between the minimum storage regenerating codes and the minimum repair-bandwidth regenerating codes, and it is the first class of codes to achieve this performance. In fact, it is shown that the proposed construction can achieve a non-trivial point on the optimal functional-repair tradeoff, and it is asymptotically optimal at high rate, i.e., it asymptotically approaches the minimum storage and the minimum repair-bandwidth simultaneously.

## I. INTRODUCTION

Distributed data storage systems can encode and disperse information (a message) to multiple storage nodes (or disks) such that a user can retrieve it by accessing only a subset of them. Such systems are able to provide superior reliability and availability in the event of disk corruption or network congestion. In order to reduce the amount of storage overhead required to guarantee such performance, erasure correction codes can be used instead of simple replication of the data. Given the massive amount of data that is currently being stored, even a small reduction in storage overhead can translate into huge savings. For instance, Facebook currently stores 3 copies of all data, running 3000 nodes with a total of 100 PB of storage space. A 600 -node Hadoop [1] cluster at Facebook for performing data analytics on event logs from their website stores 2 petabytes of data, and grows about 15 TB every day [2].

When the data is encoded by an erasure code, data repair ( e.g. , due to node failure) becomes more involved, because the information stored at a given node may not be directly available from any one of the remaining storage nodes, but it can nevertheless be reconstructed since it is a function of the information stored at these nodes. One key issue that affects the system performance is the total amount of information that the remaining nodes need to transmit to the new node. Consider a storage system which has n storage nodes, and the data can be reconstructed by accessing any k of them. A failed node is

This paper was presented in part at 2013 IEEE International Symposium on Information Theory, Istanbul, Turkey.

repaired by requesting any d of the remaining nodes to provide information, and then using the received information to construct a new data storage node. A naive approach is to let these helper nodes transmit sufficient data such that the underlying data can be reconstructed completely, and then the information that needs to be stored at the new node can be subsequently generated. This approach is however rather wasteful, since the data stored at the new node is only a fraction of the complete data.

Dimakis et al. in [3] proposed the regenerating code framework to investigate the tradeoff between the amount of storage at each node ( i.e., data storage) and the amount of data transfer for repair ( i.e., repair bandwidth). It was shown that for the case when the regenerated new node only needs to fulfill the role of the failed node functionally ( i.e. , functional-repair), but not to replicate exactly the original content at the failed node ( i.e. , exact-repair), the problem can be converted to a network multicast problem, and thus the celebrated network coding result [4] can be applied. By way of this equivalence, the optimal tradeoff was completely characterized in [3] for this case. The two important extreme cases, where the data storage is minimized and the repair bandwidth is minimized, are referred to as minimum storage regenerating (MSR) codes and minimum bandwidth regenerating (MBR) codes, respectively. The functional-repair problem is well understood and constructions of such codes are available (see [3], [5], [6]).

The functional-repair framework implies that the coding rule evolves over time, which incurs additional system overhead. Furthermore, functional repair does not guarantee the data to be stored in systematic form, thus cannot satisfy this important practical requirement. In contrast, exact-repair regenerating codes do not suffer from such disadvantages. Exact-repair regenerating codes were investigated in [7]-[13], all of which address either the MBR case or the MSR case. Particularly, the optimal code constructions in [7] and [9] show that the more stringent exact-repair requirement does not incur any penalty for the MBR case; the constructions in [8], [9], [11] show that this is also true asymptotically for the MSR case. These results may lead to the impression that enforcing exact-repair never incurs any penalty compared to functional repair. However, it was shown in [7] that a large portion of the optimal tradeoffs achievable by functional-repair codes cannot be strictly achieved by exact-repair codes, and it was shown more recently in [14] that there exists a non-vanishing gap between the optimal functional-repair tradeoff and the exact-repair tradeoff, and thus the loss is not asymptotically diminishing. The characterization of the optimal tradeoff for exact-repair regenerating codes under general set of parameters remains open.

Codes achieving tradeoff other than the MBR point or the MSR point may be more suitable for systems employing exact-repair regenerating codes, which may have an acceptable storage-repair-bandwidth tradeoff and lower coding complexity. However, it is unknown whether there even exist codes that can achieve a storage-bandwidth tradeoff better than simply space-sharing between an MBR code and an MSR code. In this work, we provide a code construction based on stitching together shorter erasure correction codes through combinatorial block designs, which is indeed able to achieve such tradeoff points. We show that it can achieve a non-trivial point on the optimal functional-repair tradeoff for [ n, k, d = k = n -1] , and it is also asymptotically optimal at high rate while the space-sharing approach is strictly sub-optimal; moreover, space-sharing among this non-trivial tradeoff point, the MSR point, and the MBR point achieves the complete exact-repair tradeoff for the case [ n, k, d ] = [4 3 3] , , given in [14].

The conceptually straightforward code construction we propose has the property that the helper nodes in

the repair do not need to perform any computation, but can simply transmit certain stored information for the new node to synthesize and recover the lost information. This 'help-by-transfer' property is appealing in practice, since it reduces and almost completely eliminates the computation burden at the helper nodes. This property also holds in the constructions proposed in [7] and [15]. In fact our construction was partially inspired by and may be viewed as a generalization of these codes. Another closely related work is [16], where block designs were also used, however repetition is the main tool used in that construction, in contrast to the embedded erasure correction codes in our construction. The system model in [16] is also different, where the repair only needs to guarantee the existence of one particular d -helper-node combination (fix-access repair), instead of the more stringent requirement that the repair information can come from any d -helper-node combination (random-access repair).

The results presented here are the combination of two independent and concurrent works [17] and [18]. Given the surprising similarity between the code constructions found by the two groups, we decided to merge the results in the hope that the readers may gain a more coherent understanding from this effort . 1

The rest of the paper is organized as follows. In Section II, several relevant existing results are reviewed. Section III provides the construction of the canonical codes for the case [ n, k, d = k ] , and the performance is analyzed. Section IV provides the general code constructions. Finally Section V concludes the paper.

## II. PRELIMINARIES

In this section, we review some basics on regenerating codes, maximum separable codes, rank metric codes, and combinatorial block designs. We write { 1 2 , , . . . , n } as I n for simplicity.

## A. Exact-Repair Regenerating Codes

An [ n, k, d ] exact-repair regenerating code for a storage system with a total of n storage nodes satisfies the condition that any k of them can be used to reconstruct the original message, and to repair a lost node, the new node may access data from any d of the remaining nodes. Let the total amount of raw data stored be M units and let each storage site store α units, i.e., the redundancy of the system is nα -M . To repair a node failure (regenerate a new node), each helper node transmits β units of data to the new node, which results in a total of dβ units of data transfer. It is clear that the quantities α and β scale linearly with M , and thus we shall normalize the other two quantities using M , i.e.,

$$\bar { \alpha } \stackrel { \triangle } { = } \frac { \alpha } { M }, \quad \bar { \beta } \stackrel { \triangle } { = } \frac { \beta } { M },$$

and use them as the measure of performance from here on. The problem can be more formally defined using a set of encoding and decoding functions, which we omit here for conciseness (see [14]).

Fig. 1. The cut-set bound, the space-sharing line and the tradeoffs achieved by the proposed codes for [ n, k, d ] = [9 , 7 8] , .

![image](https://ac.marcodsn.me/arxiv-markdown-images/1408.0377v1-figure-b56251a8-df5c-4af9-9ad3-669feb93b92f.jpg)

## B. Cut-Set Outer Bound, the MBR Point and the MSR Point

As mentioned earlier, a precise characterization of the optimal storage-bandwidth tradeoff under functional repair was obtained in [3], which is given by

$$\sum _ { i = 0 } ^ { k - 1 } \min ( \bar { \alpha }, ( d - i ) \bar { \beta } ) \geq 1.$$

Since exact-repair is a more stringent requirement than functional-repair, it provides an outer bound for exact-repair regenerating codes, which must also satisfy (2), possibly with strict inequality. It can be shown that the bound in (2) is equivalently to

$$p \bar { \alpha } + \sum _ { i = p } ^ { k - 1 } ( d - i ) \bar { \beta } \geq 1, \quad p = 0, 1, \dots, k - 1.$$

One extreme point of this outer bound is when the storage is minimized, i.e. , the minimum storage regenerating (MSR) point, which is

$$\bar { \alpha } = \frac { 1 } { k }, \quad \bar { \beta } = \frac { 1 } { k ( d - k + 1 ) }.$$

The other extreme case is when the repair bandwidth is minimized, i.e. , the minimum bandwidth regenerating (MBR) point, which is

$$\bar { \alpha } = \frac { 2 d } { k ( 2 d - k + 1 ) }, \quad \bar { \beta } = \frac { 2 } { k ( 2 d - k + 1 ) }.$$

Both of these extreme points (on the functional-repair tradefoff) are achievable (see [7]-[9], [11]) under

1 It should be noted that the 'layers' in [17] and [18] refer to different aspects of the construction: in the former it is used to refer the concatenation of two erasure correction coding steps, while in the latter it is used to refer to the way the component codes are arranged.

exact-repair, however the functional-repair outer bound is not tight in general (see [7] and [14]). The outer bound and the two extreme points are illustrated in Fig. 1 for [ n, k, d ] = [9 7 8] , , .

The space-sharing line between MSR and MBR points is characterized by the equation ( e.g., [7])

$$k \bar { \alpha } + k ( d - k + 1 ) \bar { \beta } \ = \ 2,$$

which when d = k , reduces to

$$k ( \bar { \alpha } + \bar { \beta } ) \ = \ 2.$$

It is sometimes convenient to view all the achievable (¯ α, β ¯ ) pairs together as a region, for which we introduce the following definition.

Definition 1: A pair (¯ α, β ¯ ) is said to be achievable for [ n, k, d ] exact-repair regenerating if there exists an exact-repair regenerating code with such a normalized storage and repair-bandwidth. The closure of the collection of all such pairs is the achievable (¯ α, β ¯ ) region, denoted as R n,k,d .

## C. Asymptotic Tradeoff Region

The proposed codes have performance better than space-sharing line in many cases, especially when k is close to n . It is insightful to consider the asymptote when k is driven to infinity while keeping n = k + τ 1 and d = k + τ 2 where τ 1 and τ 2 are fixed constant integers such that τ 1 &gt; τ 2 ≥ 0 . For this purpose, define the following region

$$\mathcal { R } _ { \infty } \stackrel { \triangle } { = } \bigcup _ { k \to \infty } k \mathcal { R } _ { ( k + \tau _ { 1 }, k, k + \tau _ { 2 } ) },$$

where τ 1 and τ 2 are fixed integers as previously stated, and we have multiplied the components of elements in R ( k + τ 1 ,k,k + τ 2 ) by k . This k -fold expansion definition is partly motivated by observing k appears for both ¯ α and ¯ β terms in (6).

It is trivial to see that an outer bound for R ∞ is given by

$$k \bar { \alpha } \geq 1, \ \ k \bar { \beta } \geq 0,$$

by taking ¯ α at the MSR point, and ¯ β at the MBR point.

Space-sharing between the MSR point and the MBR point cannot achieve this outer bound due to (6). In Section III, we show that the proposed codes can achieve the entire region R ∞ when d = k .

## D. Maximum Distance Separable Code

A linear code of lengthn and dimension k is called an [ n, k ] code. The Singleton bound (see e.g. , [19]) is a well known upper bound on the minimum distance for any [ n, k ] code, given as

$$d _ { \min } \leq n - k + 1.$$

An [ n, k ] code that satisfies the Singleton bound with equality is called a maximum distance separable (MDS) code. A key property of an MDS code is that it can correct any ( n -k ) or fewer erasures. There

TABLE I EXAMPLE STEINER SYSTEMS S (2 3 7) , , , S (2 3 9) , , AND S (2 4 13) , , .

| S (3 , 7)   | { (1 , 2 , 3) , (1 , 4 , 5) , (1 , 6 , 7) , (2 , 4 , 6) , (2 , 5 , 7) , (3 , 4 , 7) , (3 , 5 , 6) }                                                                                                                                                         |
|-------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| S (3 , 9)   | { (2 , 3 , 4) , (5 , 6 , 7) , (1 , 8 , 9) , (1 , 4 , 7) , (1 , 3 , 5) , (4 , 6 , 8) , (2 , 7 , 9) , (2 , 5 , 8) , (1 , 2 , 6) , (4 , 5 , 9) , (3 , 7 , 8) , (3 , 6 , 9) }                                                                                   |
| S (4 , 13)  | { (1 , 2 , 4 , 10) , (2 , 3 , 5 , 11) , (3 , 4 , 6 , 12) , (4 , 5 , 7 , 13) , (5 , 6 , 8 , 1) , (6 , 7 , 9 , 2) , (7 , 8 , 10 , 3) , (8 , 9 , 11 , 4) , (9 , 10 , 12 , 5) , (10 , 11 , 13 , 6) , (11 , 12 , 1 , 7) , (12 , 13 , 2 , 8) , (13 , 1 , 3 , 9) } |

exist various ways to construct MDS codes for any given [ n, k ] values, and it is known that there exists an [ n, k ] MDS code in any finite field F q where q ≥ n ; see, e.g. , [19].

In coding literature, an [ n, k ] code with minimum distance d min is sometimes also referred to as an ( n, k, d min ) code. In the context of regenerating codes, the triple [ n, k, d ] instead specifies the total number of nodes, the number of nodes that together allow reconstruction of the data, and the number of helper nodes during a repair, respectively. In order to avoid possible confusion, we do not write the minimum distance d min explicitly for a linear code, and also use brackets instead of parentheses in this work.

## E. Linearized Polynomial and Gabidulin Codes

An important component in our construction is a code based on linearized polynomials, and the following lemma is particularly relevant to us; see, e.g., [20].

Lemma 1: A linearized polynomial

$$f ( x ) \ = \ \sum _ { i = 1 } ^ { M } v _ { i } x ^ { q ^ { i - 1 } }, \ v _ { i } \in \mathbb { F } _ { q ^ { \kappa } }$$

can be uniquely identified from evaluations at any M points, for which the input values are linearly independent over F q .

Another relevant property of linear polynomials is that they satisfy the following condition

$$f ( a x + b y ) \ = \ a f ( x ) + b f ( y ), \ a, b \in \mathbb { F } _ { q }, \ x, y \in \mathbb { F } _ { q ^ { \kappa } },$$

which is the reason that they are called 'linearized'.

Gabidulin [21] proposed a class of codes based on linearized polynomials, which is maximum distance separable in terms of rank metric. This class of codes can be viewed as a generalized version of the MDS codes, and it plays an instrumental role in our construction.

## F. Block Designs

A block design is a set together with a family of subsets ( i.e. , blocks) whose members are chosen to satisfy some properties. The blocks are required to all have the same number of elements, and thus a given block design with parameters ( r, n ) , where r &lt; n , is specified by ( X, B ) where X is an n -element

TABLE II γ AND N

VALUES FOR THE TWO CLASSES OF BLOCK DESIGNS.

|      | γ                 | N                      |
|------|-------------------|------------------------|
| DCBD | ν ( n - 1 r - 1 ) | ν ( n r )              |
| BIBD | λ ( n - 1) r - 1  | λn ( n - 1) r ( r - 1) |

set and B is a collection of r -element subsets of X . The blocks are usually allowed to repeat. We use N to denote the total number of blocks in a block design when the parameters are clear from the context. Two classes of block designs are particularly relevant to us:

- · The first is a restricted class of Steiner systems known in the literature. A Steiner system S t, r, n ( ) is a block design with parameters ( r, n ) where each element of X appears exactly γ times, and each t -element subset of X appears in exactly one block; in this work we shall restrict our attention to the case t = 2 , and thus refer to it as a restricted Steiner system and write it simply as S r, n ( ) . This design can be generalized to balanced incomplete block design (BIBD), S λ ( r, n ) , where each pair of elements of X appears in exactly λ blocks, instead of a single block. A restricted Steiner system is thus a BIBD with λ = 1 .
- · We refer the second class of block designs as duplicated combination block design (DCBD). An r -combination of a set X is a subset of r distinct elements of X . A duplicated combination block design C ν ( r, n ) is a block design with parameters ( r, n ) where each r -combination appears exactly ν times, which we write as C ν ( r, n ) .

It is clear that DCBDs can be viewed as BIBDs with λ = ν ( n -2 r -2 ) . This implies that for any ( r, n ) pair, a BIBD always exists (in fact even when we limit to ν = 1 ). However, for a fixed ( λ, r ) pair, a BIBD may not exist for all values of n . For the particularly well understood Steiner triple systems ( i.e. Steiner systems when t = 2 and r = 3 ), there exists an S (3 , n ) if and only if n = 0 , or n modulo 6 is 1 or 3 [22]. Examples of S (3 7) , , S (3 , 9) are given in Table I, where a design for S (4 , 13) is also included. The parameter γ and the total number of blocks N can be calculated straightforwardly (see [22]), and are listed in Table II for convenience. Without loss of generality, we assume X = I n from here on. More details on BIBDs, Steiner systems and other block designs can be found in, e.g. , [22] and [23].

## III. CANONICAL CODES FOR [ n, k, d = k ]

In this section, we present a set of exact-repair codes, referred to as the canonical codes, for the case d = k . The overall code is formed by stitching together shorter MDS codes, and the stitching patterns follow either BIBDs or DCBDs. This set of codes can be indexed by two auxiliary parameters m and r satisfying 1 ≤ m&lt;r &lt; n , where r is the same parameter as in the block designs being used. As will be seen, the parameters d and m are related as m = n -d , and the codes for m = 1 are particularly simple which will be presented first. The qualifier 'canonical' is used to describe the case of d = k because the construction in this case can be viewed as the basic form of a subsequent construction for the general case k &lt; d .

/g1005 /g853/g1005

![image](https://ac.marcodsn.me/arxiv-markdown-images/1408.0377v1-figure-2a2c6de9-e7d8-4665-84ab-9d40cd661f31.jpg)

/g1005 /g853/g1006

/g1005 /g853/g1005

/g1005 /g853/g1006

/g1005 /g853/g1007

Fig. 2. For [ n, k, d ] = [9 8 8] , , , the parameter chosen here are m = 1 , r = 3 , and the block design is Steiner triple system shown on the second row of Table I. The data matrix is of dimension 12 × 2 , and after the first encoding step, c i = ( u i, 1 , u i, 2 , u i, 1 + u i, 2 ) are placed on the i -th column in the auxiliary matrix (the third matrix). The resulting code matrix is of dimension 9 × 4 , after the blank spaces are removed. The helper symbols to repair node1 are given in shade.

The canonical codes, together with known MSR codes and MBR codes, achieve the complete optimal tradeoff for [ n, k, d ] = [4 3 3] , , that was recently characterized in [14]. For [ n, k, d = k = n -1] , this construction is always able to achieve a non-trivial point on the cut-set bound, i.e., the optimal functionalrepair tradeoff, other than the MSR point and the MBR point. More generally, for [ n, k, d = k ] , it can achieve performance better than space-sharing between MSR and MBR in certain parameter range. For high rate regenerating codes, the canonical codes are asymptotically optimal, and essentially achieve the complete region R ∞ .

## A. Canonical Codes Using Restricted Steiner Systems and BIBDs

We use restricted Steiner Systems and BIBDs to construct canonical codes for the cases d = k = n -1 . Here the auxiliary parameter m = 1 , and it will become clear in the sequel why it is set as such. First fix a restricted Steiner system S r, n ( ) = { B , B , . . . , B 1 2 N } . The canonical code using this block design has M c = ( r -m N ) = ( r -1) N data symbols in certain finite field F q , arranged as an N × ( r -1) matrix U , whose rows are u 1 , u 2 , . . . , u N . The structure of the canonical code can be inferred from a two-step process (see Fig. 2) by which the data matrix U is encoded into an n × γ code array:

- 1) For i = 1 2 , , ..., N , the vector u i is encoded into c i = ( u i, 1 , u i, 2 , . . . , u i,r -1 , ∑ r -1 j =1 u i,j ) ;
- 2) The r symbols in c i , referred to together as a parity group, are placed in the rows specified in B i , i = 1 2 , , . . . , N , appended after any previous written symbols 2 .

After these encoding steps, each row in the resulting matrix corresponds to the symbols to be written on each node. Since the arrangement of the blocks is not unique, and the placement of the symbols in each parity group c i is also not unique, consequently the resulting code is not unique.

Since each component code c i has one parity symbol, it can withstand up to one erasure ( m = 1 ), and thus any single lost node can be repaired from the other n -1 nodes. More precisely, to repair node j , the helper node set is ∆ = I n \ { j } and the repair process has two steps (see Fig. 2):

2 All the symbols in c i together are sometimes called a parity group in the storage literature, and are referred to as a layer in [18]; we shall adopt the parity group terminology in the sequel.

- 1) Helper transmission: For i = 1 2 , , ..., N , if j ∈ B i , then the helper nodes in ∆ ∩ B i ( i.e., the helper nodes that have symbols in c i ) send the symbols in c i to the new node;
- 2) Symbol regeneration: For i = 1 2 , , ..., N , if j ∈ B i , with the r -1 symbols received from the helper nodes, the lost symbol in c i is regenerated.

Based on the construction, it can be seen that

$$M _ { c } = ( r - 1 ) N = \frac { n ( n - 1 ) } { r }, \quad \alpha = \gamma = \frac { ( n - 1 ) } { r - 1 }, \quad \beta = 1,$$

where the value of α is derived from the fact that in restricted Steiner systems each element appears in exactly γ blocks, and the value of β is derived from the fact that node j contributes one symbol to repair node i whenever ( i, j ) appears in a block in the block design, and the fact that each pair of elements appears in exactly one block. Clearly the alphabet here can be chosen as F 2 , i.e, , a binary code.

In the construction, the restricted Steiner system can be replaced with a more general BIBD without any essential change, resulting in the parameters

$$M _ { c } = ( r - 1 ) N = \frac { \lambda n ( n - 1 ) } { r }, \quad \alpha = \gamma = \frac { \lambda ( n - 1 ) } { r - 1 }, \quad \beta = \lambda.$$

## B. Canonical Codes Using DCBDs

As a natural generalization from the previous case, for d = k ≤ n -1 we set the auxiliary parameter m = n -d . Intuitively m is again the number of erasures that the component codes c i can withstand, and since having d = n -m helper nodes can be equivalently viewed as erasing the other m nodes, any lost symbols can be regenerated using only d = n -m helper nodes. For the repetition factor ν , let us for now choose ν = d = n -m , and we will revisit it later to discuss possibly reducing its value.

Fix a C ν ( r, n ) = { B , B , . . . , B 1 2 N } . We encode an N × ( r -m ) matrix into an n × γ code array in two steps (see Fig. 3):

- 1) For i = 1 2 , , ..., N , the vector u i is encoded using an [ r, r -m ] MDS code to yield c i

$$u _ { i } \in \mathbb { F } _ { q } ^ { r - m } \ \Rightarrow \ c _ { i } \in \mathbb { F } _ { q } ^ { r }.$$

- 2) The r symbols in c i are placed in the rows specified in B i ∈ C ν ( r, n ) , appended after any previous written symbols.

The only difference from the previous case is that the encoding from u i into c i now utilizes a general MDS code, instead of the single parity code (also an MDS code). The alphabet here can be chosen to be any F q where q ≥ r , in order for the component MDS code to exist. To repair node j , the helper node set is denoted as ∆ = { δ , δ 1 2 , . . . , δ d } , and the repair process is as follows (Fig. 3):

- 1) Helper transmission: For i = 1 2 , , ..., N , if j ∈ B i , some ( r -m ) helper nodes in the set ∆ ∩ B i send the symbols in c i to the new node;
- 2) Symbol regeneration: For i = 1 2 , , ..., N , if j ∈ B i , with the ( r -m ) symbols received from the helper nodes, the lost symbol in c i is regenerated.

The choice of m = n -d guarantees that the condition | ∆ ∩ B i | ≥ r -m holds as long as | ∆ = | d ≥ r -m , thus the repair will always succeed. However, it may occur that | ∆ ∩ B i | &gt; r -m for some

/g1005

![image](https://ac.marcodsn.me/arxiv-markdown-images/1408.0377v1-figure-dd010353-a343-4bb7-bcb3-7a68319556cd.jpg)

/g1005 /g853/g1005

/g1007 /g853/g1005

/g1008 /g853/g1005

/g1009 /g853/g1005

/g1005 /g1005 /g853/g1005

/g1005 /g1007 /g853/g1005

/g1005 /g1008 /g853/g1005

/g1005 /g1009 /g853/g1005

/g1010 /g853/g1005

/g1012 /g853/g1005

/g1013 /g853/g1005

/g1005 /g1004 /g853/g1005

Fig. 3. For [ n, k, d ] = [5 3 3] , , , the parameter is chosen as m = n -d = 2 , r = 4 , and the block design is 3 -DCBD with parameters (4 5) , , which duplicate the following blocks three times: { (1 2 3 4) (2 3 4 5) (1 3 4 5) (1 2 4 5) (1 2 3 5) , , , , , , , , , , , , , , , , , , , } . Only the auxiliary form in encoding step (2) is shown here. The data matrix is of size 15 × 2 and the resulting code matrix is of 5 × 12 (after removing the blank spaces). The helper symbols to repair node1 are highlighted.

cases, i.e., there may be more than one arrangement as to which ( r -m ) helper nodes should transmit the symbols to regenerate the lost symbol in c i ( e.g., in the first column of Fig. 3 we can also choose c 1 2 , and c 1 4 , to repair c 1 1 , ). Some combinations of the arrangements may result in transmissions being non-uniform among the helper nodes during repair. If we were to choose ν = 1 , the resulting code can still repair a lost node however with non-uniform repair transmissions from the d helper nodes, resulting in repair transmissions in the amounts of β = ( β , β 1 2 , . . . , β d ) ; it is clear that by using ν = d = n -m , the code symbols in the duplicate portions can be repaired with transmission amounts which are circularly shifted versions of β , and thus the total repair transmission amounts are uniform (see Fig. 3). In fact, the value of ν may be further reduced in some cases, as given in the following proposition whose proof can be found in the appendix.

Proposition 1: For every integer p , 1 ≤ p ≤ m&lt;r , define

$$\theta _ { p } = ( d, r - p ) _ { g c d }, \quad \zeta _ { p } = \text{lcm} \left \{ \frac { \left ( \frac { \theta _ { p } } { s } \right ) } { \left ( \left ( \frac { \theta _ { p } } { s } \right ), r - m \right ) _ { g c d } } \, \colon s \, | \, \theta _ { p } \right \}, \quad \eta _ { p } = \frac { \zeta _ { p } } { ( \zeta _ { p }, \binom { m - 1 } { p - 1 } ) _ { g c d } },$$

where ( a, b ) gcd is the greatest common divisor of positive integers a and b , and a | b means a is divides b . Then, ν can be set as

$$\nu \ = \ \text{lcm} \{ \eta _ { p } \ | \ 1 \leq p \leq m \},$$

and there exists a repair pattern such that the transmissions are uniform among all the d helpers.

Note that ν is always a factor of d . Whenever d is a prime with r ≤ d , it can be checked that ν = 1 . Even when it is not, ν can become 1 in many cases. For example, when d = 8 , r = 6 , m = 2 , it can be checked that ν = 1 .

It is clear from the above discussion that

$$M _ { c } = ( r - m ) N = ( r - m ) \nu \binom { n } { r }, \quad \alpha = \gamma = \nu \binom { n - 1 } { r - 1 }, \quad \beta = \frac { ( r - m ) \alpha } { n - m } = \frac { ( r - m ) \nu } { n - m } \binom { n - 1 } { r - 1 },$$

where β is derived from the total amount of repair transmission and the fact it can be distributed uniformly among the d helper nodes.

For the case d = k = n -1 , DCBDs with parameters ( r, n ) can also be used to construct canonical codes even when restricted Steiner systems S r, n ( ) (or BIBDs S λ ( r, n ) ) indeed exist; it can be verified that such constructions in fact does not change the resultant (¯ α, β ¯ ) . The advantage of using restricted Steiner systems and BIBDs is that the codes have smaller α and β values, and thus practically more versatile. For example, the code in Fig. 2 has α = 4 and β = 1 ; on the other hand, the corresponding code using DCBDs in the same alphabet has α = 28 and β = 7 .

It should also be noted that for the case d &lt; n -1 , we can utilize general Steiner systems ( i.e., when t &gt; 2 ) or a more general class of block designs called t -designs, to construct canonical codes. However, the problem of non-uniform repair transmissions becomes rather intractable. Moreover, it was shown in [17] that the non-canonical codes based on such constructions may induce loss of performance in terms of the normalized storage-repair-bandwidth tradeoff, when compared to that based on DCBDs unless certain additional conditions are met (more precisely, the uniform-rank-accumulation property given in Section III-D). We thus do not pursue this route further.

## C. Performance Assessment of Canonical Codes

We next state several results pertaining to the performance of the canonical code. The first result characterizes the range of the auxiliary parameters ( r, m ) for which canonical codes outperform spacesharing between MSR and MBR points. Then we show that the canonical construction yields optimal codes operating on the functional-repair tradeoff when d = k = n -1 . The third result is regarding the asymptotic optimality of the canonical codes at high rates.

For canonical codes using DCBDs, the normalized storage and repair bandwidth (¯ α, β ¯ ) pair is

$$( \bar { \alpha }, \bar { \beta } ) = \left ( \frac { r } { n ( r - m ) }, \frac { r } { n ( n - m ) } \right ),$$

and it can be verified that taking m = 1 reduces (14) to that induced by codes based on BIBDs.

Proposition 2: The [ n, k, d = k ] -canonical code operates at an (¯ α, β ¯ ) -point that lies in between the MSR and MBR points, and improves upon space-sharing between the MSR and MBR points, whenever m&lt;r -m&lt;k .

Proof: Substituting (14) into the left hand side of (7), the performance is better than space-sharing as long as

$$\left ( \frac { k r } { n ( r - m ) } + \frac { r } { n } \right ) < 2,$$

which is equivalent to r &gt; 2 m and n &gt; r , and further equivalent to k &gt; r -m &gt; m , under which the performance of the canonical codes is strictly superior to space-sharing between MSR and MBR points.

Whenever n &lt; 2 k -1 , there exists an ( r, m ) choice to satisfy the condition given above, consequently an [ n, k, d = k ] -canonical code that performs better than space-sharing between MSR and MBR points. Conversely, when n ≥ 2 k -1 , such choice of ( r, m ) does not exist, and thus the canonical codes do not provide any gain over the space-sharing approach.

β

0.34

0.32

0.3

0.28

0.26

¯

0.24

0.22

0.2

0.18

0.16

¯

![image](https://ac.marcodsn.me/arxiv-markdown-images/1408.0377v1-figure-ec6cbb56-b7d6-445f-9f44-62fae4b32544.jpg)

0.35

0.4

0.45

0.5

α

Fig. 4. The tradeoff points of the canonical codes for [ n, k, d ] = [4 , 3 3] , and [ n, k, d ] = [8 , 7 7] , that are on the cut-set bound.

Proposition 3: The [ n, k, d = k = n -1] -canonical code can achieve (¯ α, β ¯ ) = ( n -1 n n ( -2) , 1 n ) , which is on the functional-repair tradeoff but not the MSR point or the MBR point.

Proof: Choose m = 1 and r = n -1 in (14) gives the normalized (¯ α, β ¯ ) pair specified above. Setting p = k -1 in the left hand side of (3), and substituting the above (¯ α, β ¯ ) pair, we have,

$$( k - 1 ) \bar { \alpha } + \bar { \beta } = ( k -$$

i.e., it lies on the cut-set bound, however it is not the MSR or the MBR points.

In Fig. 4, two example cases of the tradeoff points achieved in Proposition 2 are given. For the particular case of [ n, k, d ] = [4 3 3] , , , space-sharing between the MSR point, the point achieved by the canonical code, and the MBR point characterizes the optimal exact-repair tradeoff, which was dervied in [14]. The non-achievability result established in [7] does not apply to a narrow line-segment close to the MSR point, and the point given the above lemma indeed lies in this region.

Proposition 4: The region R ∞ is given by the set of pairs satisfying (9), and it can be achieved using the canonical codes when d = k .

Proof: We show that the canonical codes can achieve asymptotically

$$k \bar { \alpha } \to 1, \ \ k \bar { \beta } \to$$

which is the only non-trivial corner point of the the outer bound region given in (9). √

Notice that by choosing r = k and m = n -d = τ 1 -τ 2 = τ 1 in this case, we have

$$\mathfrak { z } \cos \cos \mathfrak { z } - \mathf$$

and

$$\lim _ { k \to \infty } k \frac { r } { n ( n -$$

The proof is thus complete.

(n,k,d)=(4,3,3)

cut-set bound optimal exact-repair tradeoff

Fig. 5. The asymptotic tradeoff R ∞ .

![image](https://ac.marcodsn.me/arxiv-markdown-images/1408.0377v1-figure-aa2ef4e8-9192-4f79-bb59-986e318189f2.jpg)

In Fig. 5 we plot the trivial outer bound for R ∞ , the MBR point cloud as k →∞ , the space-sharing line, and the tradeoff points achieved by the canonical codes using the parameters given in the proof above as k → ∞ . It should be noted that taking any sequence of r ∼ O k ( δ ) will result in the same asymptote given above, as long as δ ∈ (0 , 1) . This asymptote only captures the first order behavior, and the result implies that for this case, there is in fact no asymptotic difference between functional-repair and exact-repair.

## D. Property of Uniform Rank Accumulation

Thus far, we have described the canonical code in terms of the structure of the codeword. We now turn to a generator matrix viewpoint of the code, as the code is linear. To obtain a generator matrix, one needs to vectorize the code array, thus replace it with a vector of size nα = rN . The generator matrix then describes the linear relation between the M c = ( r -m N ) input symbols of the canonical code C can and the nα output symbols. Thus the generator matrix is of size ( M c × nα ) .

The ordering of columns within the generator matrix is clearly dependent upon the manner in which vectorization of the code matrix takes place. We will present two vectorizations and hence, two generator matrices:

- 1) From the distributed storage network point of view, each row of the ( n × α ) code matrix corresponds to a node in distributed storage network. Thus a natural vectorization is one in which the nα code symbols are ordered such that the first α symbols correspond to the elements of the first row vector (in left-to-right order), of the code matrix, the second α symbols correspond in order, to the elements of the second row vector, etc.. Thus, under this vectorization, the first α columns of the generator matrix correspond to the first row vector of the code array and so on. We will refer to this as the node-wise vectorization of the code. We will use G to denote the generator matrix of the canonical code C can under this vectorization. Each set of columns of G corresponding to a

node of the codeword array, will be referred to as a thick column . In other words, the code symbols associated to the i -th thick column of the generator matrix are the code symbols stored in the i -th storage node. In this context, we will refer to a single column of G as a thin column .

- 2) The code symbols in the code array of the canonical code C can can be vectorized in a second manner such that the resultant code vector is the serial concatenation of the N MDS codewords { c i } , each associated with a distinct message vector u i . We will refer to this as the parity-groupwise vectorization of the code. Let G b-d denote the associated generator matrix of C can . Clearly, G b-d has a block-diagonal structure:

$$\begin{array} {$$

Here G MDS denotes the generator matrix of the [ r, r -m ] -MDS code denoted by C MDS . It follows that the columns of G b-d associated with code symbols belonging to distinct parity groups span subspaces that are linearly independent. Also, any collection of ( r -m ) columns of G b-d associated with the same parity group are linearly independent.

We will now establish that the matrix G has the following t -uniform rank-accumulation property ( t URA) : if one selects a set T of t thick columns drawn from amongst the n thick columns of G , then the rank of the submatrix G | T of G is independent of the choice of T ; we call a code satisfying this property a t -URA code. Hence the rank of G | T may be denoted as ρ t , indicating that it does not depend on the specific choice of T of cardinality t . If a code is t -URA for all t = 1 2 , , . . . , n , then we say the code satisfies the universal-URA property, or that it is a universal-URA code.

The value of ρ t can be determined from how the collection of thin columns in T intersect with the blocks of G b-d . More specifically, due to the linear independence structure of columns of G b-d , we only need to count the total number of linear independent columns in G b-d that correspond to the thin columns of G | T . The values of ρ t for DCBDs and BIBDs can be derived as follows:

- · For the codes based on DCBDs, within each parity group, the number of columns chosen can range from 0 to r . If the intersection is of size p , the rank accumulated is min { p, r -m } , and thus it follows that

$$\rho _ { t } \ = \nu \sum _ { \substack { p = \max \{ 1, \\ r - ( n - t ) \} } } ^ { \min \{ t, r \} } \binom { t } { p } \binom { n - t } { r - p } \min \{ p, r - m \}.$$

These codes satisfy the universal-URA property, and it can be verified that ρ t = N r ( -m ) = M c for t ≥ k .

- · For the canonical codes based on restricted Steiner systems and BIBDs, the t -URA property holds

when t = n , n -1 or n -2 , but in general not for other values. It is straightforward to verify that

$$\rho _ { n } = \rho _ { n - 1 } = N ( r - 1 ) = \frac { \lambda n ( n - 1 ) } { r },$$

and

$$\rho _ { n - 2 } = N ( m - 1 ) - \lambda = \frac { \lambda n ( n - 1 ) } { r } - \lambda,$$

because the pair of indices of the lost nodes appears in exactly λ blocks in S λ ( r, n ) , and for each of the involved parity group, we only collect ( r -2) columns in G b-d , instead of ( r -1) .

## IV. CODE CONSTRUCTIONS FOR d &gt; k

In this section, we first describe an explicit code construction for [ n, n -2 , n -1] code based on restricted Steiner systems S r, n ( ) . This construction however only applies to the case when a restricted Steiner system exists for such n , and as aforementioned, Steiner systems may not exist for all ( r, n ) pairs. Then construction using DCBDs for general values [ n, k, d ] are presented based on linearized polynomials. The alphabet size of the second class of codes can be quite large, and we show that it can be reduced significantly. The performance of the code is then discussed.

## A. Constructions Based on Restricted Steiner Systems and BIBDs for [ n, k = n -2 , d = n -1]

Given a restricted Steiner system S r, n ( ) , a canonical code can be constructed with [ n, k, d = k = n -1] as shown in the previous section. Next we construct a code with [ n, k = n -2 , d = n -1] by using an additional encoding step. The alphabet can be chosen to be F q , where q ≥ r , and the number of data symbols is M = N r ( -1) -1 . Let the data symbols be written in an ( r -1) × N matrix except the bottom-right entry u N,r -1 , which is parity symbol given the following value

$$u _ { N, r - 1 } = \sum _ { j = 1 } ^ { r - 2 } \phi _ { j } \sum _ { i = 1 } ^ { N } u _ { i, j } + \phi _ { r - 1 } \sum _ { i = 1 } ^ { N - 1 } u _ { i, r - 1 },$$

glyph[negationslash]

where φ j 's are distinct non-zero values in F q , and additionally φ j +1 = 0 for 1 ≤ j ≤ r -2 . With this new U data matrix, we then apply the canonical code encoding procedure to produce the n × γ code array. The repair procedure with d = n -1 helper nodes is precisely the same as in the previous section, and thus for this code

$$\alpha = \frac { n - 1 } { r - 1 }, \quad \beta = 1, \quad M = ( r - 1 ) N - 1 = \frac { n ( n - 1 ) } { r } - 1.$$

Note that these parameters are all integers for a valid Steiner system. Next we show that this code indeed can recover all the data symbols using any k = n -2 nodes. Recall that for a restricted Steiner system, any pair of nodes appears only once in the block design, and thus only a single parity group loses two symbols when any two nodes have failed. For parity groups losing only one symbol or less, all the symbols within them can be recovered, and thus only the parity group that loses exactly two symbols need to be considered. Taking this fact into consideration, the following cases need to be considered:

/g1005

Fig. 6. The (9 7 8) , , code based using the canonical code in Fig. 1. When node1 and node2 have failed, except parity group 9 , all other parity groups at least have two symbols remaining and thus can be completely recovered. To recover the symbols c 9 1 , and c 9 2 , , the parity symbols c 9 3 , and c 12 2 , provide sufficient information.

![image](https://ac.marcodsn.me/arxiv-markdown-images/1408.0377v1-figure-2864cd49-56f4-483b-9b12-c3f138e61f87.jpg)

- 1) The i -th parity group c i , i &lt; N , loses two symbols, one is a data symbol u i,j where j &lt; r , and the other is the parity symbol c i,r . The only missing data symbol u i,j can be obtained by eliminating in (24) all the other data symbols.

glyph[negationslash]

- 2) The i -th parity c i , i &lt; N , loses two symbols, which are both data symbols u i,j 1 and u i,j 2 , where j 1 &lt; j 2 &lt; r . Since u N,r -1 is available, by eliminating all other other data symbols, we obtain the value of φ j 1 u i,j 1 + φ j 2 u i,j 2 . Next by eliminating all other data symbols in c i,r = ∑ r -1 j =1 u i,j , we obtain the value of u i,j 1 + u i,j 2 . Since φ j 1 = φ j 2 and they are both non-zero, u i,j 1 and u i,j 2 can be solved using these two equations.
- 3) Parity group c N loses two symbols, which are u N,r -1 and c N,r . This case is trivial since all data symbols have been directly recovered.
- 4) Parity group c N loses two symbols, which are the parity symbols c N,r and a data symbol u N,j , 1 ≤ j ≤ r -2 . By eliminating the other data symbols in u N,r -1 using (24), we obtain u N,j .
- 5) Parity group c N loses two symbols, which are u N,r -1 and data symbol u N,j , 1 ≤ j ≤ r -2 . Note that

$$c _ { N, r } = \sum _ { j = 1 } ^ { r - 1 } u _ { N, j } = \sum _ { j = 1 } ^ { r - 2 } \phi _ { j } \sum _ { i = 1 } ^ { N } u _ { i, j } + \phi _ { r - 1 } \sum _ { i = 1 } ^ { N - 1 } u _ { i, r - 1 } + \sum _ { j = 1 } ^ { r - 2 } u _ { N, j }.$$

glyph[negationslash]

By eliminating all the other data symbols from c N,r , we obtain the value of ( φ j +1) u N.j . Since φ j +1 = 0 for 1 ≤ j ≤ r -2 , the only missing data symbol u N,i can be obtained.

There are essentially two MDS codes in this construction: the first code (referred to as the long MDS code) in the construction is an [ M +1 , M ] systematic MDS code whose parity symbol is specified by (24), and the component code (referred to as the short code) is an [ r, r -1] systematic MDS code. The key is to jointly design the two codes, and thus they are useful together. In the above construction, this is accomplished through the coefficients of the parity symbols. It should be noted that the coefficients in forming the parity symbols are not unique, and we have only given a convenient choice here.

There is an inherent connection between the construction given above and the URA property of the canonical codes. Let us denote the generator matrix of the long MDS code as G L , which is of size M × ( M +1) , and the generator matrix G of the canonical code in its node-wise vectorization form is

of size ( M +1) × nα . Because of the encoding procedure, the code we eventually obtain has generator matrix G L · G which is of size M × nα . To guarantee all data symbols recoverable from any n -2 nodes, we need the submatrix of G L · G formed by collecting any ( n -2) thick columns to have rank at least M , which is equivalent to having G L · G | T to have rank at least M , for any T ⊂ I n and | T | = n -2 . The ( n -2) -URA property of the canonical codes implies that that G | T has rank ρ n -2 , and thus ρ n -2 is an upper bound on M ; our code construction above is indeed able to achieve M = ρ n -2 .

To generalize the above construction and allow canonical codes based on BIBDs, we need to carefully choose the coding coefficients in the long MDS code such that the upper bound M ≤ ρ n -2 can be achieved with equality. In the following, an explicit construction based on rank-metric code is provided in the context of canonical codes using DCBDs, which can also be used with canonical codes based on BIBDs, and it leads to

$$\alpha = \frac { \lambda ( n - 1 ) } { r - 1 }, \quad \beta = \lambda, \quad M = ( r - 1 ) N - \lambda = \frac { \lambda n ( n - 1 ) } { r } - \lambda.$$

## B. A Construction Based on DCBDs for General [ n, k, d ]

For the more general settings of [ n, k, d ] that are not limited to [ n, k = n -2 , d = n -1] (or when the corresponding restricted Steiner system does not exist), the coding coefficients in the long MDS code need to chosen carefully such that the upper bound M ≤ ρ k of the canonical codes can be achieved with equality. The construction presented next utilizes Gabidulin codes to achieve this goal.

Let r -m ≤ k , and choose m = n -d . Fix a C ν ( r, n ) and the corresponding canonical code in F q , the number of data symbols M in this new code is chosen to be equal to the upper bound ρ k in the canonical code. The M message symbols { v i } M i =1 , v i ∈ F q κ are first used to construct a linearized polynomial

$$f ( x ) \ = \ \sum _ { i = 1 } ^ { M } v _ { i } x ^ { q ^ { i - 1 } },$$

where κ is any sufficiently large positive integer, and we shall provide a lower bound for its value in the sequel. The linearized polynomial is then evaluated at M c = ( r -m N ) elements { θ i,j } of F q κ , i = 1 2 , , . . . , N , j = 1 2 , , . . . , r , which when viewed as vectors over F q , are linearly independent. This coding step is not systematic, however a systematic version of the code can be obtained straightforwardly by equating the data symbols as the first ρ k outputs ( f ( θ 1 ) , f ( θ 2 ) , . . . , f ( θ ρ k )) , and then identifying the proper coefficients v i 's; from here on we do not distinguish these two cases.

We wish to feed these M c evaluations { f ( θ i,j ) } into an encoder for the afore-chosen canonical code by setting the elements of the input data matrix U ,

$$u _ { i, j } \ = \ f ( \theta _ { i, j } ), \quad 1 \leq i \leq N, \ \ 1 \leq j \leq r.$$

However, notice that in the original canonical code, the elements in the data matrix input u i,j ∈ F q , and the evaluations of the linearized polynomial f ( θ i,j ) ∈ F q κ . This discrepancy can be resolved by taking the standard convention of viewing { f ( θ i,j ) } as vectors over F q , and apply the canonical code encoder

over each of their components ; we use the same convention on the outputs, and thus obtain a code array 3 of n × α over F q κ through the canonical code encoding process.

It is clear that the repair procedure is precisely the same as the underlying canonical code, and thus we only need to show that it is possible to recover the message symbols { v i } M i =1 by connecting to an arbitrary set of k nodes.

Proposition 5: By connecting to an arbitrary set of k nodes, a data collector will be able to recover the message symbols { v i } M i =1 in the above code.

Proof: Let G denote the generator matrix of the canonical code when node-wise vectorization is employed. Observe that the entries in G belong to F q .

Let ( c 1 , c 2 , · · · , c nα ) denote the node-wise vectorized codeword of C . Then we have

$$( c _ { 1 }, c _ { 2 }, \cdots, c _ { n \alpha } ) \ = \ [ f ( \theta _ { 1 } ) \ f ( \theta _ { 2 } ) \ \cdots f ( \theta _ { M _ { c } } ) ] \cdot G.$$

Using linearity of f ( ) · , we can write this as

$$( c _ { 1 }, c _ { 2 }, \cdots, c _ { n \alpha } ) \ & = \ \ f ( [ \underbrace { \theta _ { 1 } \ \theta _ { 2 } \ \cdots \theta _ { M _ { c } } } ] \cdot G ] ) \\ & = \ \ f ( \underbrace { [ x _ { 1 } \ x _ { 2 } \cdots x _ { M _ { c } } ] } _ { ( N \times M _ { c } ) } \cdot G ] ),$$

in which x i ∈ F κ q is the vector representation of the element θ i ∈ F q M , with respect to some basis of F q κ over F q . Set

$$X \ = \ [ x _ { 1 } \ x _ { 2 } \cdots x _ { M _ { c } } ].$$

Now let A be the set of k thick columns of G , corresponding to the set of nodes to which the data collector is connecting to. Since { x i } M c i =1 are linearly independent over F q , it follows that

$$\text{Rank} \left ( X \cdot G | _ { A } \right ) & \ = \ \text{Rank} \left ( G | _ { A } \right ) \\ & \ = \ \rho _ { k } \ = \ M$$

Hence there are at least M linearly independent columns in the matrix product X G · | A . These columns correspond to linearly independent points of F q κ over F q . Thus f ( X G · | A ) yields the evaluations of f ( ) · at at least M linearly independent points of F q κ . By Lemma 1, f and thereby its coefficients can be uniquely identified from these M evaluations.

3 Equivalently, this is the field operation in F q κ when the canonical code coefficients are viewed as in the corresponding base field F q elements correctly embedded in the extended field.

It is clear that the performance of the code is given by

$$\dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \ delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \dta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \Delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta
\dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \ dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \delta delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \digma \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \ Delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta\delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \digma \delta
\dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \\ \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \ delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \delta \ delta
 \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \dots \end{matrix} \min \{ k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k, r \choose k,$$

It should be noted that if we choose r = 2 , m = 1 , the construction reduces to the repair-by-transfer MBR code given in [7]. It is thus not surprising that the construction given here has the help-by-transfer property, since it includes the repair-by-transfer code as a special case.

Since the canonical code exists when q ≥ r , and F q κ must have at least M c = ν · ( n r ) ( r -m ) linearly independent elements over F q , we require κ ≥ M c . Hence a finite field of size r M c is sufficient in the above construction (exponential in r ). We show in the next subsection that there exist constructions of significantly lower field size (linear in r ).

For the case [ n, k = n -2 , d = n -1] , DCBD-based canonical codes can also be used even when the corresponding restricted Steiner systems exist. The advantages of the construction given in the previous subsection are that: firstly it induces smaller α and β values, secondly, the required alphabet size is smaller than the one specified above (and the one shown to exist in the sequel), and lastly the coding coefficients are more explicitly specified.

## C. Existence of Codes with Lower Field Size

As aforementioned in Section IV-A, the code for the general parameters has a generator matrix in the form G L · G , where G L is from the long MDS code, and G is from the canonical code (short MDS code), which is the node-wise vectorization version. We can alternatively consider the parity-group-wise vectorization version, which is G L · G b-d . Clearly the code corresponding to G L · G b-d is a subspace of the rowspace C of G b-d . In other words, the dual code of G L · G b-d is a superspace of the dual C ⊥ of C . Suppose

$$H _ { \text{b-d} } = \left [ \begin{array} { c c c c } H _ { \text{MD5} } & & & \\ & H _ { \text{MD5} } & & \\ & & \ddots & \\ & & & H _ { \text{MD5} } \end{array} \right ].$$

is a parity-check matrix of C . Here H MDS denotes the parity-check matrix of the [ r, r -m ] -MDS code C MDS . We need to enlarge the rowspace of H b-d by adding more rows to it in order to make it a paritycheck matrix of the code with generator matrix G L · G b-d . Let

$$H \ = \ \left [ \begin{array} { c } H _ { b - d } \\ H _ { 1 } \end{array} \right ]$$

be the resultant parity-check matrix. Conversely, any matrix H 1 essentially specifies a subspace of the canonical code that is the rowspace of G b-d . For any such subspace, there always exists a matrix G L such

that the rows of G L · G b-d span the chosen subspace. Hence specifying G L is equivalent to specifying H 1 . We denote the elements of H 1 as h i,j , which are to be determined; fix an [ r, r -m ] MDS code in the canonical code construction, which thus implies that the matrix H b-d is fixed.

For any set T ⊂ I n of nodes, where | T | = k , there are k thick columns in G L · G b-d corresponding to these nodes. If and only if the submatrix formed by collecting these k thick columns in G L · G has rank M = ρ k , can we recover all the M data symbols from these k nodes. Let us consider a submatrix G L · G ′ | T , where G ′ | T is formed by the following procedure: for each parity group c i , i = 1 2 , , . . . , N ,

- · When there are more than ( r -m ) thin columns corresponding to the same parity group c i in the k thick columns, then collecting any ( r -m ) of them;
- · Otherwise, collect all the thin columns corresponding to the remaining code symbols in this parity group.

It is clear that this results in ρ k columns. Let S T ⊂ I nα denote the indices of these ρ k thin columns. If this ρ k × ρ k matrix G L · G ′ | T has full rank, then all the M data symbols can be recovered from the k nodes. This is equivalent to having ( nα -ρ k ) × ( nα -ρ k ) submatrix H | T of H restricted to those thin columns indexed by I nα \ S T to have full rank. This requires the determinant of H | T be not zero, and we write the determinant as a polynomial f T ( { h i,j | i ∈ I nα -ρ k -Nm , j ∈ I nα } ) . Now, define

$$p ( \{ h _ { i, j } \} ) \ = \ \prod _ { T \subset I _ { n } ; | T | = k } f _ { T } ( \{ h _ { i, j } \ | \ i \in I _ { n \alpha - \rho _ { k } - N m }, j \in I _ { n \alpha } \} ).$$

If there exists an assignment for { h i,j } such that the polynomial p ( ) · evaluates to a non-zero value, then such an assignment will yield a G L that ensures the required data-collection property. We make use of the following lemma from [24] at this point.

glyph[negationslash]

Lemma 2: [24] ( Combinatorial Nullstellansatz ) Let F be a field, and let f = f ( x , 1 · · · , x n ) be a polynomial in F [ x , 1 · · · , x n ] . Suppose the degree deg ( f ) of f is expressible in the form ∑ n i =1 t i , where each t i is a non-negative integer and suppose that the coefficient of the monomial term ∏ n i =1 x t i i is nonzero. Then if S , . . . , S 1 n are subsets of F with sizes | S i | satisfying | S i | &gt; t i , then there exist elements s 1 ∈ S , s 1 2 ∈ S . . . , s 2 n ∈ S n such that f ( s , s 1 2 , · · · , s n ) = 0 .

The condition that coefficient of the monomial term ∏ n i =1 x t i i is nonzero is equivalent to requiring f = f ( x , 1 · · · , x n ) is not identically zero. We note that f T ( { h i,j | i ∈ I nα -ρ k -Nm , j ∈ I nα } ) is indeed not identically zero, because the code construction given in the previous subsection essentially provides a non-zero assignment.

Since the degree of any indeterminate in each of f T ( { h i,j | i ∈ I nα -ρ k -Nm , j ∈ I nα } ) is 1 , the maximum among the degrees of a single indeterminate in p . ( ) is upper bounded by ( n k ) . Hence by Lemma 2, it is possible to find a suitable assignment for { h ij } , if the entries are picked from a finite field of size ≥ ( n k ) . Thus we have proved the following proposition.

Proposition 6: An [ n, k, d &gt; k ] non-canonical regenerating code exists over F q with q ≥ ( n k ) .

It should be noted that to find such a code in the given alphabet is not trivial, and a possible approach is to randomly assign the coefficients and then check whether all the full rank conditions are satisfied.

Fig. 7. ¯ β vs ¯ α for different ( k, d ) parameters when n = 24 . The dashed blue lines are the cut-set bounds, the dotted black lines are the space-sharing lines, and the red solid lines are the tradeoff achieved by the proposed codes.

![image](https://ac.marcodsn.me/arxiv-markdown-images/1408.0377v1-figure-4ac5d694-4bca-4bcc-80af-38b5df509a88.jpg)

## D. Performance Assessment of the General Codes

There does not seem to be any simplification of (29) for specific [ n, k, d ] parameters. We provide a few examples to illustrate the performance of the codes. In Fig. 1, we have plotted the performance of the proposed codes for the case of [ n, k, d ] = [9 7 8] , , , together with the cut-set bound and space-sharing line. There are two values for parameter r = 3 or r = 4 that yield tradeoffs below the space-sharing line; the proposed code also achieves the MBR point. Here the code for r = 3 is based on Steiner systems, while for r ≥ 4 , the DCBD based design is used. The operating point (¯ α, β ¯ ) ≈ (0 15 . , 0 075) . is also worth noting, because although it is not as good as the MSR point, and in fact it is worse than the space-sharing line, the penalty is surprisingly small. This suggests that the proposed codes may even be a good albeit not optimal choice to replace an MSR code.

In Fig. 7 we plot the performance of codes for different parameters ( k, d ) when n = 24 . It can be seen that when d = n -1 = 23 , the performance is the most competitive, and often superior to the space-sharing line. As d value decreases, the method become less effective in terms of its (¯ α, β ¯ ) , and becomes worse than the space-sharing line. For the same d value, the code is most effective when k is

large, and becomes less so as k value decreases.

We can also consider the asymptotic performance of the code, however the derivation and result are almost identical to the canonical codes in the asymptotic regime we are considering ( i.e., asymptotically optimal in the sense that it achieves the complete R ∞ ), and thus we leave this simple exercise to interested readers. Another important asymptote is to keep the ratio of k and n constant, and letting n →∞ . However, in this case, the proposed codes are not optimal asymptotically, and such an analysis does not yield further useful insight beyond the example cases shown above.

## V. CONCLUSION

A new construction for [ n, k, d ] exact-repair regenerating codes is proposed by combining embedded error correction and block designs. The resultant codes have the desirable 'help-by-transfer' property where the nodes participating in the repair simply send certain stored data without performing any computation. We show that the proposed code is able to achieve performance better than the spacesharing between an MSR code and an MBR code for some parameters, and furthermore, the proposed construction can achieve a non-trivial tradeoff point on the functional repair tradeoff, and is in fact asymptotically optimal while the space-sharing scheme is suboptimal. For the case of d = n -1 and k = n -2 , an explicit construction is given in a finite field F q where q is greater or equal to the block size in the combinatorial block designs. For more general ( d, k ) parameters, a construction based on linearized polynomial is given, and it is further shown that there exist codes with significantly smaller alphabet sizes.

APPENDIX PROOF OF PROPOSITION 1

-

![image](https://ac.marcodsn.me/arxiv-markdown-images/1408.0377v1-figure-e7a5a5fc-b427-4579-ac38-c07a30ecc584.jpg)

-

-

-

-

Fig. 8. A repair situation associated to a given parameter p .

Without loss of generality, we assume that the first node has failed (see Fig. 8) and that nodes 2 through ( d +1) are the helper nodes. Let us focus on those blocks that contain the integer 1 as an element. The number of elements within such a block, that are contained amongst the helper nodes can range from ( r -m ) to ( r -1) . We further focus on the blocks for which the number of elements contained amongst the helper nodes equals ( r -p ) , for a fixed value of p , where 1 ≤ p ≤ m . Denote the collection of such blocks as L , p 1 ≤ p ≤ m . The size of L p is given by

$$| L _ { p } | \ = \ \nu \binom { d } { r - p } \binom { m - 1 } { p - 1 }.$$

For each block in L p , consider its intersection with the helper node set I d +1 \ { 1 } , and denote the collection of all distinct such sub-blocks as J p , 1 ≤ p ≤ m . The cardinality of J p is given by,

$$| J _ { p } | \ = \ \binom { d } { r - p }.$$

A block in J p can equivalently be viewed as a binary vector of length d and Hamming weight ( r -p ) where the ( r -p ) locations of the 1 s correspond to these elements in the block. Thus the set J p can equivalently be mapped into a ( ( d r -p ) × d ) -binary array P , with each of its row vector mapping to an element in J p . Let M, i 1 ≤ i ≤ ( d r -p ) be the support of the i -th row of P . In any given repair strategy, each block will require to communicate ( r -m ) symbols to the failed node, to enable repair of the failed node. Thus a repair strategy within J p can be described by allocating

$$R _ { i } \subseteq M _ { i }, \ | R _ { i } | = ( r - m )$$

for every 1 ≤ i ≤ ( d r -p ) . If the number of elements in a column of P , that belong to R i for some i is equal to the same value irrespective of the choice of the column, then we refer to such a pattern of allocation for P a uniform allocation pattern . Clearly a uniform allocation pattern ensures uniform download from every helper node while repairing the failed node. Let Q be a binary matrix formed by stacking P vertically µ times. Here µ is referred to as the repetition number. Let M , ′ i 1 ≤ i ≤ µ ( d r -p ) be the support of the i -th row of Q . Suppose we can identify

$$R ^ { \prime } _ { i } \subseteq M ^ { \prime } _ { i }, \ | R ^ { \prime } _ { i } | = ( r - m )$$

such that the number of elements in a column of Q , that belong to R ′ i for some i is equal to the same value irrespective of the choice of the column. Then we say that the repetition number µ allows a uniform allocation pattern for P .

In what follows, we will identify a repetition number µ p for P that allows uniform allocation. We will verify that µ p | ν ( m -1 p -1 ) . Then it is clear that a repair strategy permitting uniform download from every helper node exists within the blocks of L p . Since this holds true for an arbitrary value of p , it follows that there exists a repair strategy ensuring uniform download from each of the helper nodes.

We consider allocation for P in two cases.

$$C a s e \, I \colon \theta _ { p } = 1$$

For any row vector v of P , let us call the set of all vectors that can be obtained through cyclic shifts of v , the orbit of v . The set J p can be partitioned into such orbits. When θ p = 1 , it can be shown that all orbits are of size d . Consider one such orbit, and let the ( d × d ) submatrix P 1 of P be the matrix formed of the vectors in the orbit arranged in such a way that the i -th row of P 1 , 0 ≤ i ≤ ( d -1) is the i -th periodic shift of the first row. For each i, 0 ≤ i ≤ ( d -1) , we proceed to identify a subset R 1 i of the support of the i -th row of P 1 . Let M 1 ⊂ [ d ] be the support of the first row of P 1 , and let R 10 ⊆ M 1 be such that | R 10 | = ( r -m ) . Let us define R , 1 i 0 ≤ i ≤ ( d -1) as the i -th periodic shift of R 10 . It is straightforward to see that the above choice of { R 1 i } results in an uniform allocation pattern for P 1 . The same strategy can be adopted for every orbit in J p . Thus in this case of θ p = 1 , the repetition factor

µ = 1 is sufficient.

glyph[negationslash]

$$\mu _ { p } = 1 \text{ is sufficient.} \\ C a s e \text{ } 2 \colon \theta _ { p } \neq 1$$

In this case also, J p can be partitioned into orbits. Let us focus our attention to a submatrix P 1 of P formed of the vectors in a fixed orbit. Unlike the previous case, the chosen orbit need not be of size d . However it can be shown that it will be of size

$$\left ( \frac { d } { \theta _ { p } } \right ) s \ = \colon \ \omega _ { p s }$$

for some s such that s | θ p . Thus P 1 is a ( ω ps × d ) binary matrix such that the i -th row of P 1 , 0 ≤ i ≤ ( ω ps -1) is the i -th periodic shift of the first row. Let

$$\lambda _ { p s } \ \coloneqq \ \frac { d } { \omega _ { p s } \left ( \frac { d } { \omega _ { p s } }, r - m \right ) _ { \gcd } } \ = \ \frac { \left ( \frac { \theta _ { p } } { s } \right ) } { \left ( \frac { \theta _ { p } } { s }, r - m \right ) _ { \gcd } }.$$

The integer λ ps is chosen as the smallest number such that d λ ps ω ps | ( r -m ) . Next, consider the ( ω ps λ ps × d ) -matrix Q formed by stacking P 1 vertically λ ps times. It shall be noted that the matrix Q has the property that its i -th row 0 ≤ i ≤ ω ps λ ps -1 is the i -th periodic shift of its first row. The matrix Q can be written as

$$Q \ = \ [ Q _ { 1 } \, | \, Q _ { 2 } \, | \, \dots \, | \, Q _ { ( \frac { d } { \omega _ { p s } \lambda _ { p s } } ) } ],$$

where Q , j 1 ≤ j ≤ d ω ps λ ps is a square matrix of dimension ω ps λ ps . It can be seen that each of { Q j } satisfies the following properties:

- · The Hamming weight of every row equals ( r -p ω ) ps λ ps d ;
- · The i -th row, 0 ≤ i ≤ ω ps λ ps -1 is the i -th periodic shift of the first row.

Let us now focus our attention on Q 1 , and we will describe a uniform allocation pattern for Q 1 . For each i, 0 ≤ i ≤ ( ω ps λ ps -1) , we proceed to identify a subset R 1 i of the support of the i -th row of Q 1 . Let M 1 ⊂ [ ω ps λ ps ] be the support of the first row of Q 1 , and let R 10 ⊆ M 1 be such that | R 10 | = ( r -m ω ) ps λ ps d . Let us define R , 1 i 0 ≤ i ≤ ( ω ps λ ps -1) as the i -th periodic shift of R 10 . It is not hard to see that the above choice of { R 1 i } results in a uniform allocation pattern for Q 1 . The same strategy can be adopted for Q , j 2 ≤ j ≤ ( d ω ps λ ps ) , permitting a uniform allocation for P 1 . Thus the repetition number of λ ps ensures uniform allocation for P 1 , an orbit within J p .

It still remains to determine a repetition number that will ensure uniform allocation for P . It can be shown that for every s | θ p , J p contains an orbit of size

$$\left ( \frac { d } { \theta _ { p } } \right ) s \ = \colon \ \omega _ { p s }.$$

For every such orbit, we have already shown that a repetiton factor of

$$\frac { \left ( \frac { \theta _ { p } } { s } \right ) } { \left ( \frac { \theta _ { p } } { s }, r - m \right ) _ { \gcd } }$$

will ensure uniform allocation within the orbit. Hence

$$\mu _ { p } \ = \ \zeta _ { p }$$

allows a uniform allocation for the entire matrix P .

Next, we observe that ν is chosen as the smallest number such that

$$\zeta _ { p } \, | \, \nu \binom { m - 1 } { p - 1 }$$

for every 1 ≤ p ≤ m . It follows that there exists a repair strategy ensuring uniform download from each of d helper nodes. This completes the proof.

We provide two examples to illustrate the design of matrix P as specified in the proof above.

Example 1: Suppose d = 7 , r -p = 5 , r -m = 3 . Then the binary matrix corresponding to an orbit is shown below. The bold one 1 represents the allocation of symbols to be transmitted for repair.

.

![image](https://ac.marcodsn.me/arxiv-markdown-images/1408.0377v1-figure-5d0ecf33-d925-4edc-89ad-ccc39f549c14.jpg)

Example 2: Suppose d = 6 , r -p = 4 , r -m = 2 . Then the binary matrix corresponding to an orbit is shown below. The size of the orbit ω ps = 3 . Here we obtain λ ps = 1 . The bold one 1 represents the allocation of symbols to be transmitted for repair.

.

REFERENCES

![image](https://ac.marcodsn.me/arxiv-markdown-images/1408.0377v1-figure-1d09be16-72c2-485a-bd09-1417ac530eda.jpg)

- [1] 'Hadoop,' http://hadoop.apache.org.
- [2] M. Zaharia, D. Borthakur, J. Sen Sarma, K. Elmeleegy, S. Shenker, and I. Stoica, 'Delay scheduling: a simple technique for achieving locality and fairness in cluster scheduling,' in ACM Eurosys , 2010, pp. 265-278.
- [3] A. G. Dimakis, P. B. Godfrey, Y. Wu, M. Wainwright and K. Ramchandran, 'Network coding for distributed storage systems,' IEEE Trans. Information Theory , vol. 56, no. 9, pp. 4539-4551, Sep. 2010.
- [4] R. Ahlswede, Ning Cai, S.-Y.R. Li, and R. W. Yeung, 'Network information flow,' IEEE Trans. Information Theory , vol. 46, no. 4, pp. 1204-1216, Jul. 2000.
- [5] Y. Wu, 'Existence and construction of capacity-achieving network codes for distributed storage,' IEEE Journal on Selected Areas in Communications , vol. 28, no. 2, pp. 277-288, Feb. 2010.
- [6] A. G. Dimakis, K. Ramchandran, Y. Wu, C. Suh, 'A survey on network codes for distributed storage,' Proceedings of the IEEE , vol. 99, no. 3, pp. 476-489, Mar. 2011.

- [7] N. B. Shah, K. V. Rashmi, P. V. Kumar and K. Ramchandran, 'Distributed storage codes with repair-by-transfer and nonachievability of interior points on the storage-bandwidth tradeoff,' IEEE Transactions on Information Theory , vol. 58, no. 3, pp. 1837-1852, Mar. 2012.
- [8] N. B. Shah, K. V. Rashmi, P. V. Kumar and K. Ramchandran, 'Interference alignment in regenerating codes for distributed storage: necessity and code constructions,' IEEE Transactions on Information Theory , vol. 58, no. 4, pp. 2134-2158, Apr. 2012.
- [9] K. V. Rashmi, N. B. Shah, and P. V. Kumar, 'Optimal exact-regenerating codes for distributed storage at the MSR and MBR points via a product-matrix construction,' IEEE Transactions on Information Theory , vol. 57, no. 8, pp. 5227-5239, Aug. 2011.
- [10] I. Tamo, Z. Wang, and J. Bruck, 'Zigzag Codes: MDS array codes with optimal rebuilding,' IEEE Transactions on Information Theory , vol. 59, no. 3, pp. 1597-1616, Mar. 2013.
- [11] V. Cadambe, S. Jafar, H. Maleki, K. Ramchandran and C. Suh, 'Asymptotic interference alignment for optimal repair of MDS codes in distributed storage,' IEEE Transactions on Information Theory , vol. 59, no. 5, pp. 2974-2987, May 2013.
- [12] D. S. Papailiopoulos, A. G. Dimakis, and V. Cadambe, 'Repair optimal erasure codes through Hadamard designs,' IEEE Transactions on Information Theory , vol. 59, no. 5, pp. 3021-3037, May 2013.
- [13] V. R. Cadambe, C. Huang, S. A. Jafar, and J. Li, 'Optimal repair of MDS codes in distributed storage via subspace interference alignment,' arXiv:1106.1250.
- [14] C. Tian, 'Characterizing the rate region of the (4 3 3) , , exact-repair regenerating codes,' IEEE Journal on Selected Areas in Communications , vol. 32, no. 5, pp. 967-975, May 2014.
- [15] D. S. Papailiopoulos, J. Luo, A. G. Dimakis, C. Huang, and J. Li, 'Simple regenerating codes: network coding for cloud storage,' in Proceedings 2012 IEEE INFOCOM , Orlando FL, Mar. 2012, pp. 2801-2805.
- [16] S. El Rouayheb and K. Ramchandran, 'Fractional repetition codes for repair in distributed storage systems,' in Proceedings 48th Annual Allerton Conference on Communication, Control and Computation , Monticello, Sep. 2010.
- [17] C. Tian, V. Aggarwal and V. Vaishampayan, 'Exact-repair regenerating codes via layered erasure correction and block designs,' in Proceedings 2013 IEEE International Symposium on Information Theory , Istanbul, Turkey, Jul. 2013, pp. 14311435; also Arxiv: 1302.4670.
- [18] B. Sasidharan, P. V. Kumar, 'High-rate regenerating codes through layering,' in Proceedings 2013 IEEE International Symposium on Information Theory , Istanbul, Turkey, Jul. 2013, pp. 1611-1615; also Arxiv: 1301.6157.
- [19] S. Wicker, Error control systems for digital communication and storage , Prentice Hall, 1995.
- [20] R. Lidl and H. Niederreiter, Finite Fields (Encyclopedia of Mathematics and its Applications) . Cambridge University Press, 1997.
- [21] E. M. Gabidulin, 'Theory of codes with maximum rank distance,' Probl. Peredachi Inf. , vol. 21, no. 1, pp. 3-16, 1985.
- [22] C. J. Colbourn and J. H. Dinitz, Handbook of Combinatorial Designs, Second Edition (Discrete Mathematics and Its Applications) , Chapman and Hall/CRC, Nov. 2006.
- [23] R. C. Bose, 'On the construction of balanced incomplete block designs,' Annals of Eugenics , vol. 9, no. 4, Dec. 1939, pp. 353-399.
- [24] N. Alon, 'Combinatorial Nullstellensatz,' Combinatorics, Probability and Computing , 1999.
Chao Tian Birenjith Sasidharan Vaneet Aggarwal Vinay A. Vaishampayan P. Vijay Kumar
Layered, Exact-Repair Regenerating Codes Via Embedded Error Correction and Block Designs
A new class of exact-repair regenerating codes is constructed by stitching
together shorter erasure correction codes, where the stitching pattern can be
viewed as block designs. The proposed codes have the "help-by-transfer"
property where the helper nodes simply transfer part of the stored data
directly, without performing any computation. This embedded error correction
structure makes the decoding process straightforward, and in some cases the
complexity is very low. We show that this construction is able to achieve
performance better than space-sharing between the minimum storage regenerating
codes and the minimum repair-bandwidth regenerating codes, and it is the first
class of codes to achieve this performance. In fact, it is shown that the
proposed construction can achieve a non-trivial point on the optimal
functional-repair tradeoff, and it is asymptotically optimal at high rate,
i.e., it asymptotically approaches the minimum storage and the minimum
repair-bandwidth simultaneously.