On Weak Dress Codes for Cloud Storage
In a distributed storage network, reliability and bandwidth optimization can be provided by regenerating codes. Recently table based regenerating codes viz. DRESS (Distributed Replication-based Exact Simple Storage) codes has been proposed which also optimizes the disk I/O. Dress codes consists of an outer MDS code with an inner fractional repetition (FR) code with replication degree . Several constructions of FR codes based on regular graphs, resolvable designs and bipartite graphs are known. This paper presents a simple modular construction of FR codes. We also generalize the concept of FR codes to weak fractional repetition (WFR) codes where each node has different number of packets. We present a construction of WFR codes based on partial regular graph. Finally we present a simple generalized ring construction of both strong and weak fractional repetition codes.
Cloud computing has emerged as a fascinating area of computing providing various services such as on demand videos, music, computing etc. to end users from any computing device. Usually data of the user is stored on different data centers in a distributed fashion. Many such commercial cloud services are available from Amazon, Google and Apple etc. [1, 2, 3]. To provide seamless end user experience for different applications such as Gmail etc. one has to optimize various parameters of the storage system such as reliability, scalability, storage, bandwidth, disk I/O, etc. In such a (DSS) data is stored on a set of nodes in cloud network, which are not reliable independently. Redundancy is added in network to increase the reliability of the system. Google File System (GFS) is one such system which uses replication of data into various chunk servers (large data chunk files) together with replication of logs and master index for reliability . Although this scheme is simple but inefficient in terms of utilizaion of various storage system parameters like bandwidth. One can provide reliability to such systems using erasure coding which uses an MDS (Maximum Distance Separable) code  however these codes fails to optimize bandwidth, complexity and disk I/O. To optimize these parameters recently regenerating codes were introduced and studied in detail by many researchers [6, 7, 8, 9, 10, 11].
Consider a distributed storage system (DSS) consisting of nodes, where each node can store symbols from (finite field with number of elements). A file size of symbols can be stored in such a DSS either using simply a replication (as it is done currently in many cloud storage system) of packets or by using an MDS code such that the file can be retrieved using erasure codes by contacting any nodes out of those nodes in network () . When a node fails, a new code can be generated (known as repair of a failed node). In a simple replication system one can download it from any other node having a copy of the data. This is good bandwidth wise and disk I/O wise but it can tolerates only few errors as compare to an erasure code system (where a replacement node can contact to nodes and extract the data of that failed node) which can tolerates more failures of nodes but it is inefficient for bandwidth and disk I/O. To minimize the bandwidth, the concept of regenerating code was introduced by Dimakis et al. . In regenerating codes instead of downloading whole file (by contacting all nodes), a node can be repaired by contacting nodes ( is known as the repair degree) and downloading packets from each of them out of packets which are stored on each node. This new generated data is functionally equivalent to lost data. Thus repair bandwidth becomes . Regenerating codes over are characterized by parameters: . Bandwidth can be reduced further if each node is willing to store more . Thus there is a tradeoff between storage () and repair bandwidth (). For internet applications one can search for minimum bandwidth repair (MBR) regenerating codes and for archival applications one can search for minimum storage repair (MSR) codes. These are two extremal points on the storage-repair bandwidth tradeoff curve [13, 7]. For regenerating codes it is well known that
Cut-set bound of network coding gives the following  relation between the parameters of regenerating codes.
Clearly we want to minimize both as well as since minimizing leads to minimum storage solution and minimizing leads to a solution which minimizes repair bandwidth. There is a trade off between choices of and as shown in . For regenerating codes to be optimal, equality holds in (2) and for the MBR (Minimum Bandwidth Regeneration) point, the parameter of the code must satisfy (3) (see ).
For , the storage capacity (the limit on the maximum file size that can be delivered to any user contacting any out of nodes) in a DSS is given by 
Constructions of regenerating codes for achieving storage capacity (4) are of special interest. The problem of regeneration becomes harder if one wants to have an exact repair of the failed node. Rashmi et al. presented an explicit construction of exact-Minimum Bandwidth Repair (MBR) codes for the parameter set by fully connected graph . An explicit MBR code is also given for all feasible values of the system parameters and MSR codes for all based on a common product matrix framework . El Rouayheb et al.  has shown the construction of optimal regenerating codes (called Fractional Repetition Codes) by using table-based repair model, which is basically a generalization of the codes given in . El Rouayheb et al. constructed the regenerating codes for single node failure based on regular graph and multiple node failure based on Steiner systems. These codes are fast and low-complexity repair codes. It simply reads only one of its stored packet and forward it to the replacement node with no additional processing. This property is referred as uncoded repair. By combining Fractional Repetition code with an MDS code a concept of DRESS (Distributed Replication-based Exact Simple Storage) codes has been introduced in . It was an open problem to construct FR codes (and hence dress codes) beyond Steiner systems. Several constructions of Fractional Repetition Codes (and hence dress codes) are known based on bipartite graph , resolvable designs  and regular graphs [12, 18]. In this paper, we present the extension of the table based method presented in  for single node failure. We call it weak fractional repetition codes (and hence weak dress codes). The construction in this paper gives the regenerating code for the values of and for which regular graph does not exist. We also present some general constructions of weak dress codes.
The rest of the paper is organized as follows. In Section we summarize popular FR code generation given by El Rouayheb et al.  for single node failure. In Section we provide a simple construction of FR code for and . A construction of weak fractional repetition code from partial regular graph is given in Section . A ring construction is given in Section which provides both weak and strong fractional repetition codes. Finally Section concludes with general remarks.
Ii Previous Work
El Rouayheb et al.  presented the table based regenerating codes to reduce complexity. This construction consists of containing an outer MDS code with an inner fractional repetition code with repetition degree that can tolerate up to nodes failing together. In this section, we summarize the results of  required for our purpose and also give an example of FR code based on regular graph.
(Fractional Repetition Code) : A Fractional Repetition (FR) code with repetition degree , for an DSS, is a collection ℂ of subsets of a set , each having size , i.e, , satisfying the condition that each element of belongs to exactly sets in the collection.
As MDS code exists for any parameters, the challenging part is to get an FR code. In , FR codes of repetition degree are designed with an uncoded repair based on regular graph which can tolerate at most one node failure. For all feasible values of and , these codes achieves the capacity . Either of and must be even to get these codes. In fact this is the necessary and sufficient condition for constructing codes from this method .
The parameter in Def. 1 of an FR code of degree for an DSS is given by,
A projective plane of order gives dress codes with and by taking points as packets and lines as storage nodes.
A Steiner system gives dress codes with parameters and using lines as storage nodes and points as packets.
In order to understand our work we now describe briefly the construction of FR codes based on regular graph .
(Regular Graph) : A regular graph is a graph where each vertex has the same number of neighbors; i.e. every vertex has the same degree. A -regular graph of vertices is the regular graph where all vertices have the same degree . Thus graph has vertices.
Consider a DSS whose storage capacity is according to (4). Let be the finite field of size . File has packets, which we want to store on the system. Figure 1 shows a regenerating code which can save the file of packets. Regenerating code in Figure 1 is made of two components- an outer MDS code and a repetition code based on a regular graph shown in Figure 2. When we give file as a input to the outer MDS code, we will get as output, where are same as and is the parity packet. The coded data packets will be saved on different nodes available in the system, according to inner repetition codes of Figure 1, i.e. node stores , stores , stores , stores , stores and stores . The whole file can be retrieved by recovering just distinct packets out of these , due to the property of outer MDS code. As distinct packets can be recovered by contacting to any nodes out of these nodes so whole file can be retrieved by contacting to any nodes. In case of failure of a single node, its data can be recovered by contacting exactly nodes and downloading packets from each of these nodes. For instance, when node fails, it contacts node to get the packets respectively. This example is similar to the example in .
Iii Modular construction of fractional repetition codes for and
In , El Rouayheb et al. have shown the construction of FR codes for repetition degree or more based on Stainer system. In this section we give a different approach to get the fractional repetition code for and .
Let and be a positive integers. For , let , where is a positive integer such that . Then and is a FRC over with and .
By the construction of it is clear that each such set will have size and since , the necessary and sufficient condition for FRC (equation (5)) is satisfied. ∎
Iv Construction of Weak Fractional Repetition Codes for
(Weak Fractional Repetition Code) : A Weak Fractional Repetition (WFR) code ℂ for a DSS, with repetition degree for every packet, is a collection of subsets of a set such that , where is the order of weakness of node and , where is defined as total order of weakness of ℂ.
WFR code with weakness order gives fractional repetition codes of Def. 1.
Clearly, for WFR Codes,
FR codes for (WFR code with weakness order 0) has been constructed using regular graph by Ramachandran et al.. Regular graph does not exist for cases where and both are odd. Motivated by this we define a Partial Regular Graph.
(Partial Regular Graph) : A graph with total vertices such that the degree of some vertices is and one vertex has degree We call these graphs as Partial Regular Graph denoted by .
With the abuse of notations, we will use the same symbols for graph and it’s adjacency matrix.
Iv-a Properties of Partial Regular Graph
Let a partial regular graph be denoted by . The rows of its matrix are denoted by and columns are denoted by where such that degree of every vertex is except one vertex for some which has degree . This adjacency matrix of has the following properties.
is a partial regular graph iff both and are odd.
for all such that except for and .
for all such that except for and .
So the total degree of the graph becomes even. In fact it is the necessary condition for the existence of an undirected graph.
Iv-B Construction of the Partial Regular Graph from a Circulant Regular Graph
(Circulant Graph) : A graph is called as a circulant graph of degree if it’s adjacency matrix is a circulant. i.e. () = () for (subscripts of adjacency matrix are taken modulo ), and weight of each row is .
Circulant matrix is characterized by it’s row. If the first row of the circulant matrix is one can form a polynomial The algebra of circulant matrix has one-to-one correspondance with polynomial algebra in .
Each circulant graph is a regular graph.
Let be the permutation function on symbols then the corresponding permutation matrix is the matrix whose entries are all except that in row , the entry equals We know from elementary algebra that to get a permutation matrix from a permutation , one can apply permutation function on the identity matrix . Algorithm constructs a Partial Regular Graph from a circulant graph whose row is defined by the polynomial , where weight of .
Pick a circulant matrix whose first row is defined by .
Get a permutation matrix whose permutation function on symbols is given by
Expand matrix to make it matrix by adding at row and column such that , where .
Add above matrix to to get the final matrix .
Iv-C Construction of the WFR Code
WFR code from the partial regular graph can be constructed in the same way as in the previous case of regular graph. Algorithm 2 can be used to construct a a partial regular graph which can be used together with Algorithm 3, to construct a WFR code.
To generate the Weak Fractional Repetition Code for and , note that and hence
For the permutation function
the permutation matrix is given by
Thus by step 3 of Algorithm 2, is given by
Using step of Algorithm 2 one gets the following adjacency matrix for partial regular graph with and .
Adjacency matrix will give us a graph shown in Figure 4. It is a partial regular graph which satisfies the properties given in subsection This graph will give us the Weak Fractional Repetition Code as shown in the Figure 5.
In this example, suppose we want to store a file on a DSS . There is no regular graph which can give us appropriate fractional repetition codes. However Figure 4 shows a partial regular graph which gives us weak fractional repetition codes to save the file of packets on DSS . Here regenerating code is made of two components - an outer MDS code and a weak fractional repetition code based on partial regular graph shown in Figure 4. By taking file as a input to the outer MDS code we will get as output where and is the parity packet. The coded packets will be saved on different nodes in the system according to partial regular graph shown in Figure 4. The whole file can be retrieved by recovering just distinct packets out of these , due to the property of outer MDS code. As distinct packets can be recovered by contacting to any nodes out of these nodes so whole file can be retrieved by contacting to any nodes. In case of failure of a single node, its data can be recovered by contacting exactly nodes and downloading packets from each of these nodes, except in case of node which has to contact only nodes in case of failure. For instance, when node fails, it contacts node to get the packets respectively. Node saves only data packets. So we put a default null packet as the packet. To recover this node on failure, user needs to contact only other nodes.
V Construction of Generalized Ring Code with
The construction of Section IV can be generalized to give rise both strong and weak fractional repetition codes. Suppose we have packets from set to be stored on nodes such that . We first place nodes on a circle (See Figure 6 for and packets) and then starting from first node start placing the packets between successive nodes until all packets are exhausted. For and this gives the WFR code as shown in Figure 7. Here every packet has . Since this simple construction gives FR code for and WFR code for . This simple construction can be modified in different ways to obtained a general class of generalized ring codes. This will be included in the extended version of the paper. I
Motivated by the emergence of fractional repetition codes which were based on regular graphs, we presented weak fractional repetition codes which are based on partial regular graph. WFR code gives regenerating codes for system parameters for which regular graphs does not exist. In this process, we constructed WFR codes of repetition degree . As FR code exists where and we presented WFR codes for , by combining these two, we get regenerating codes for single node failure for all feasible values of system parameters for any DSS. However WFR codes of higher repetition degree can be used for multiple node failure i.e. as it gives more flexibility to a DSS. In future, weak fractional repetition codes could be constructed by Steiner system but distribution of default null packets remains an open problem. We also presented a simple modular construction of fractional repetition codes for and and a generalized ring construction that gives both strong and weak fractional repetition codes. It would be an interesting future task to generalize some of these constructions for . WFR codes could be useful for heterogeneous distributed storage systems .
The authors would like to thank Suman Mitra for useful discussions and Ashish Jain, Jay Bhornia and Srijan Anil for drawing some figures.
-  Amazon. (2013, Jan.) Amazon elastic compute cloud (Amazon EC2). [Online]. Available: http://aws.amazon.com/ec2/
-  Apple. (2013, Jan.) iCloud. [Online]. Available: https://www.icloud.com/
-  Microsoft. (2013, Jan.) SkyDrive Live. [Online]. Available: https://skydrive.live.com/
-  S. Ghemawat, H. Gobioff, and S.-T. Leung, “The google file system,” in Proceedings of the nineteenth ACM symposium on Operating systems principles, ser. SOSP ’03. New York, NY, USA: ACM, 2003, pp. 29–43. [Online]. Available: http://doi.acm.org/10.1145/945445.945450
-  D. A. Patterson, G. Gibson, and R. H. Katz, “A case for redundant arrays of inexpensive disks (RAID),” in Proceedings of the 1988 ACM SIGMOD International Conference on Management of Data, ser. SIGMOD ’88. New York, NY, USA: ACM, 1988, pp. 109–116. [Online]. Available: http://doi.acm.org/10.1145/50202.50214
-  A. Dimakis, P. Godfrey, M. Wainwright, and K. Ramchandran, “Network coding for distributed storage systems,” in INFOCOM 2007. 26th IEEE International Conference on Computer Communications. IEEE, May 2007, pp. 2000 –2008.
-  A. Dimakis, K. Ramchandran, Y. Wu, and C. Suh, “A survey on network codes for distributed storage,” Proceedings of the IEEE, vol. 99, no. 3, pp. 476 –489, march 2011.
-  S. Pawar, N. Noorshams, S. El Rouayheb, and K. Ramchandran, “Dress codes for the storage cloud: Simple randomized constructions,” in Information Theory Proceedings (ISIT), 2011 IEEE International Symposium on, 31 2011-aug. 5 2011, pp. 2338 –2342.
-  G. M. Kamath, N. Prakash, V. Lalitha, and P. V. Kumar, “Codes with local regeneration,” CoRR, vol. abs/1211.1932, 2012.
-  G. M. Kamath, N. Prakash, V. Lalitha, P. Vijay Kumar, N. Silberstein, A. S. Rawat, O. Ozan Koyluoglu, and S. Vishwanath, “Explicit MBR All-Symbol Locality Codes,” ArXiv e-prints, Feb. 2013.
-  M. Sathiamoorthy, M. Asteris, D. Papailiopoulos, A. G. Dimakis, R. Vadali, S. Chen, and D. Borthakur, “Xoring elephants: Novel erasure codes for big data,” Proceedings of the VLDB Endowment (to appear), 2013.
-  S. El Rouayheb and K. Ramchandran, “Fractional repetition codes for repair in distributed storage systems,” in Communication, Control, and Computing (Allerton), 2010 48th Annual Allerton Conference on, Oct. 2010, pp. 1510 –1517.
-  K. Rashmi, N. Shah, and P. Kumar, “Optimal exact-regenerating codes for distributed storage at the MSR and MBR points via a product-matrix construction,” Information Theory, IEEE Transactions on, vol. 57, no. 8, pp. 5227 –5239, aug. 2011.
-  N. Shah, K. Rashmi, P. Vijay Kumar, and K. Ramchandran, “Distributed storage codes with repair-by-transfer and nonachievability of interior points on the storage-bandwidth tradeoff,” Information Theory, IEEE Transactions on, vol. 58, no. 3, pp. 1837–1852, 2012.
-  K. Rashmi, N. Shah, P. Kumar, and K. Ramchandran, “Explicit construction of optimal exact regenerating codes for distributed storage,” in Communication, Control, and Computing, 2009. Allerton 2009. 47th Annual Allerton Conference on, Oct. 2009, pp. 1243 –1249.
-  J. C. Koo and J. T. G. III, “Scalable constructions of fractional repetition codes in distributed storage systems,” CoRR, vol. abs/1102.3493, 2011.
-  O. Olmez and A. Ramamoorthy, “Repairable replication-based storage systems using resolvable designs,” CoRR, vol. abs/1210.2110, 2012.
-  Y. Wang and X. Wang, “A fast repair code based on regular graphs for distributed storage systems,” in Parallel and Distributed Processing Symposium Workshops PhD Forum (IPDPSW), 2012 IEEE 26th International, may 2012, pp. 2486 –2489.
-  T. Ernvall, “The existence of fractional repetition codes,” CoRR, vol. abs/1201.3547, 2012.
-  T. Ernvall, S. E. Rouayheb, C. Hollanti, and H. V. Poor, “Capacity and security of heterogeneous distributed storage systems,” CoRR, vol. abs/1211.0415, 2012.