Regenerating Codes over a Binary Cyclic Code
Kenneth W. Shum
‡
, Hanxu Hou
§†
, Minghua Chen
§
, Huanle Xu
§
, and Hui Li
†∗
‡
Institute of Network Coding, the Chinese University of Hong Kong
§
Department of Information Engineering, the Chinese University of Hong Kong
†
Shenzhen Eng. Lab of Converged Networks Tech., Shenzhen Key Lab of Cloud Computing Tech. and App.,
Peking University Shenzhen Graduate School
Abstract— We present a design framework of regenerating
codes for distributed storage systems which employ binary
additions and bit-wise cyclic shifts as the basic operations. The
proposed coding method can be regarded as a concatenation
coding scheme with the outer code being a binary cyclic code,
and the inner code a regenerating code utilizing the binary cyclic
code as the alphabet set. The advantage of this approach is
that encoding and repair of failed node can be done with low
computational complexity. It is proved that the proposed coding
method can achieve the fundamental tradeoff curve between the
storage and repair bandwidth asymptotically when the size of
the data file is large.
I. INTRODUCTION
Regenerating codes is a class of erasure-correcting codes
introduced by Dimakis et al. in [1], with the aim of efficient
repair of storage nodes. A data file is encoded and distributed
to n storage nodes, such that the file can be decoded from any
k of them. Furthermore, upon the failure of a storage node,
we want to repair the failed node by downloading some data
from any d surviving nodes, with the amount of data sent to
the new node as little as possible. The number of data packets
sent to the new node during the repair process is an important
metric in measuring efficiency of node repair, and is coined
the repair bandwidth in [1].
We differentiate two modes of repair. The first one is called
exact repair and the second one functional repair. In exact
repair, the content of the new node is required to be the same as
in the failed node. In functional repair, the content of the new
node need not be the same as in the failed one, but the property
that any k nodes are sufficient in decoding the original file
should be maintained. It is shown in [1] that, the minimization
of repair bandwidth for functional repair is closely related
to the single-source multi-cast problem in network coding
theory. After formulating the problem using an information
flow graph, a fundamental tradeoff between the amount of
storage per node and the repair bandwidth is established. For
exact repair, some recent result on the fundamental limit on
repair bandwidth can be found in [2]. In the remaining of this
paper, we focus on functional repair.
This work was partially supported by the National Basic Research Pro-
gram of China (No.2012CB315904), NSFC61179028, by a grant from Uni-
versity Grants Committee of Hong Kong Special Administrative Region,
China (Project No. AoE/E-02/08), and by the Shenzhen Key Laboratory
of Network Coding Key Technology and Application, Shenzhen, China
(ZSDY20120619151314964).
* Corresponding author.
In [3], existence of linear network codes achieving all points
on the fundamental tradeoff curve for functional-repair regen-
erating codes is shown. The construction relies on arithmetic
of finite field, and as in application of linear network code
to single-source multi-cast problem in general, the underlying
finite field must be sufficiently large. However, multiplication
and division in finite field are costly to implement in software
or hardware. In the literature of coding for disk arrays, the
computational complexity is reduced by replacing arithmetic
finite field by simple bit-wise operations. For example, in [4],
maximal-distance separable (MDS) code with a convolutional
code as alphabet set is introduced by Piret and Krol. In [5],
Blaum and Roth proposed a construction of array codes based
on the ring of polynomials with binary coefficients modulo
1 + x + · · · + x
p−1
for some prime number p. Similar
approach was considered by Xiao et al. in [6]. Motivated
by these constructions of low-complexity array codes, a class
of regenerating codes utilizing the XOR operations and bit-
wise shifts are proposed recently in [7]. The objective of this
paper is to introduce another class of regenerating codes which
enables repair by XOR and bit-wise cyclic shifts.
After reviewing some preliminaries on binary cyclic codes
in Section III, we we show that we can operate arbitrarily close
to the fundamental tradeoff curve between storage and repair
bandwidth by this family of regenerating codes in Section IV.
In Section V, we compare the computational complexity with
functional-repair regenerating codes over finite field.
II. A MOTIVATING EXAMPLE
The following example of storage code illustrates the basic
ideas. Suppose that we want to store some information bits to
four storage nodes, such that we can recover the information
bits from any two nodes. Nodes 1 and 2 store the information
bits in uncoded format, and nodes 3 and 4 store some parity-
check bits. The information bits are divided into groups of
2(m − 1) bits, for some positive and odd integer m. Each
group of 2(m − 1) bits is called a data chunk. As the data
chunks are processed in the same manner, we focus on one
data chunk. We divide the 2(m − 1) information bits into two
equal parts, each consisting of m − 1 bits. Let the bits in the
first part be b(1, 0), b(1, 1), . . . , b(1, m−2), and the bits in the
second part be b(2, 0), b(2, 1), . . . , b(2, m − 2). For i = 1, 2,
let
b(i, m − 1) :=
m−2
X
j=0
b(i, j)
2014 IEEE International Symposium on Information Theory
978-1-4799-5186-4/14/$31.00 ©2014 IEEE 1046