On Low Repair Complexity Storage Codes via Group ... - IEEE Xplore

2 downloads 0 Views 147KB Size Report
Shenzhen Eng. Lab of Converged Networks Technology, Shenzhen Graduate School, Peking ... storage codes that provide efficient node repair at the minimum.
On Low Repair Complexity Storage Codes via Group Divisible Designs Bing Zhu† , Kenneth W. Shum‡ , Member, IEEE, Hui Li† , and Shuo-Yen Robert Li‡ § , Fellow, IEEE Eng. Lab of Converged Networks Technology, Shenzhen Graduate School, Peking University ‡ Institute of Network Coding, The Chinese University of Hong Kong § Department of Information Engineering, The Chinese University of Hong Kong E-mail: [email protected], [email protected], [email protected], [email protected]

† Shenzhen

Abstract—Fractional repetition (FR) codes are a family of storage codes that provide efficient node repair at the minimum bandwidth regenerating point. Specifically, the repair process is exact and uncoded, but table-based. Existing constructions of FR codes are primarily based on combinatorial designs such as Steiner systems, resolvable designs, etc. In this paper, we present a new explicit construction of FR codes, which adopts the theory of uniform group divisible designs, termed GDDFR codes. Our codes achieve the storage capacity of random access and are available for a wide range of parameters. In addition, our techniques allow for constructing FR codes with parameters that are not covered by Steiner systems, which answers an open question put forward in prior work. Index Terms—Distributed storage systems, fractional repetition codes, combinatorial designs, group divisible designs.

I. I NTRODUCTION A popular trend in storage is to spread data across a large number of distinct nodes such that a user can retrieve the data even in the presence of node failures. This distributed storage manner has been widely adopted in practical systems such as Google File System (GFS) [1], Hadoop Distributed File System (HDFS) [2], etc. However, the nodes in practical storage systems have reached such a large scale that failures are the norm rather than exception. In order to provide reliable storage over unreliable nodes, redundancy should be introduced to distributed storage systems. Replication has long been used in the systems such as GFS, wherein data is available as long as one of the three copies remains intact. For the same level of redundancy, coding techniques can significantly improve the data reliability when compared to replication [3]. In particular, a file of size B is divided into k fragments, encoded to n blocks and stored on n different nodes in a distributed fashion. A data collector (DC) can recover the original file by attaching to any k out of the n storage nodes. We refer to this property as the maximum distance separable (MDS) property. ReedSolomon (RS) code, a classical kind of MDS codes, has been implemented atop the HDFS [4]. Upon failure of a node, one has to reconstruct the entire source file, re-encode and deliver This work is supported by the National Basic Research Program of China (973 Program under Grant No. 2012CB315904), National Natural Science Foundation of China under Grant No. 61179028, Natural Science Foundation of Guangdong under Grant No. S2013020012822 and a grant from University Grants Committee of the Hong Kong Special Administrative Region, China (Project No. AoE/E-02/08).

the encoded block to a replacement node. This process, termed node repair, results in large bandwidth overheads since a small fraction of the downloaded data is stored eventually. Regenerating codes [5] are a class of erasure codes with the capability to minimize the amount of data stored per node as well as the bandwidth consumption during the repair process. When a node fails, it can be regenerated by contacting any subset of d surviving nodes and downloading β packets from each node. A host of subsequent works mainly concentrated on the minimum storage regenerating (MSR) codes and minimum bandwidth regenerating (MBR) codes. We refer readers to [6] and the references therein for explicit code constructions and performance evaluations of regenerating codes. A. Related Work Although regenerating codes can reduce the repair overhead, they suffer from the drawback that the repair process is of high complexity that each contacted node has to read all the data it stored in order to transfer a linear combination to the replacement node. Motivated by this, a simplified repair scheme at the MBR point was first introduced in [7] and later extended to a new class of codes, termed fractional repetition codes [8]. A typical FR code consists of two components: an outer MDS code and an inner fractional repetition code with repetition degree ρ, where the storage system can tolerate up to ρ − 1 concurrent node failures. More specifically, data regeneration is processed with the uncoded repair property: a survivor node reads and delivers the exact amount of data to the replacement node without any additional operations. Further, an explicit code construction based on regular graphs is presented in [8] for single node failure, and Steiner systems are adopted in the scenario of multiple failures. Later in their work, a simple and flexible randomized scheme is introduced, termed DRESS codes [9], where storage nodes can be efficiently repaired and grown. Subsequently, Koo and Gill [10] investigated the systems in which node sizes can potentially be orders of magnitude larger than replication degrees. Finite projective planes are adopted in the scalable construction of FR codes. Olmez et al. proposed in [11] constructions using resolvable designs, where repetition degree can be varied over a large range in a simple manner. In [12], Anil et al. considered the usage of incidence matrix, and

enumerated several FR codes up to a given number of nodes. Furthermore, optimal FR codes that attain the bounds on the fractional repetition capacity are presented in [13], which are primarily based on the graph theory. In our recent work, we explored the application of FR codes in heterogeneous storage environments by considering heterogeneous repetition degrees [14] and node capacities [15], respectively. B. Main Contributions In this work, we consider the same repair model as depicted in [8], that the replacement node downloads exact one packet (i.e., β = 1) from each of the surviving nodes that are contacted. We propose Group Divisible Designs-based Fractional Repetition codes, termed GDDFR codes. Our work makes the following contributions. • A new construction of FR codes is presented, which is based on the combinatorial structure known as uniform group divisible designs (GDDs). • GDDFR codes achieve the storage capacity of random access. Moreover, a user can flexibly choose the repetition degrees if the uniform GDDs applied are resolvable. • Our constructions answer the open question posed in [8], that the existence of FR codes beyond the Steiner systems is not clear. We demonstrate that the parameters of our codes are not covered by their constructions. The rest of this paper is organized as follows. We provide some necessary backgrounds and notations in the next section. Section III illustrates how the uniform group divisible designs work in the construction of FR codes. The properties of our designs are discussed in Section IV and we also compare the proposed construction with prior works. Finally, we conclude the paper in Section V and discuss some related problems. II. P RELIMINARIES A. Distributed Storage System Consider a distributed storage system (DSS) with parameters (n, k, d), where n is the total number of storage nodes in the system, k is the number of nodes that are needed to recover the source file, and d is the repair degree that indicates the specific number of nodes a replacement node has to contact during the repair process. In normal cases, a system designer should choose the parameters that satisfy k ≤ d ≤ n − 1. With respect to the asymmetrical cost of storage and bandwidth, we focus on the MBR regime with exact repair where the regenerated packets are identical to the lost data. During the repair process, a replacement node downloads and stores one packet each from the d nodes it contacts, which implies that the storage capacity is d for every node in the system. Under this model, the storage capacity CM BR of the DSS, is defined as the maximum file size that can be delivered by contacting any k out of the n nodes in the minimum-bandwidth regime. In particular, for the case that β = 1, as shown in [5], the storage capacity is ( ) k CM BR (n, k, d) = kd − . (1) 2

It is noteworthy that the above expression is derived from the functional repair model, where the replacement node can be different from the failed node, provided that the functionality of the failed node is retained after repair. Nevertheless, Rashmi et al. showed in [7] that MBR codes with exact repair can still achieve the capacity CM BR of (1). B. Fractional Repetition Codes Recall that FR codes consist of an outer MDS code followed by an inner fractional repetition code. The theory of MDS codes is highly mature and there are many constructions of MDS codes in the literature. Therefore, the main challenge lies in the design of the inner fractional repetition codes. More specifically, an FR code is an explicit arrangement of θ symbols (each of repetition degree ρ) on n nodes, where each node contains d symbols. Let [n] denote the set {1, 2, . . . , n}. The formal definition of FR codes is presented as follows. Definition 1. A Fractional Repetition code C for an (n, k, d) DSS with repetition degree ρ, is a collection C of n subsets {Ψ1 , Ψ2 , . . . , Ψn } of a symbol set Ω = [θ], which satisfies the following conditions: 1) The cardinality of each Ψi is d, for i = 1, . . . , n. 2) Each symbol of Ω belongs to exactly ρ sets in the collection. In the definition, an FR code with repetition degree ρ contains ρθ symbols in total and an (n, k, d) DSS stores nd packets, where packets and symbols are interchangeable. Thus, we can obtain the following equation. ρθ = nd.

(2)

Definition 2. Given a DSS with parameters (n, k, d), the rate RC (k) of an FR code C = {Ψ1 , Ψ2 , . . . , Ψn } is defined as ∪i∈K Ψi . RC (k) , min K⊂[n],|K|=k

It can be observed that rate RC (k) denotes the number of guaranteed distinct packets of an FR code when contacting any k nodes. Thus, it indicates the maximum file size that can be decoded using the MDS property. We note that an FR code C is said to be universally good [8], if RC (k) ≥ CM BR (n, k, d), for k = 1, 2, . . . , d. As will be evident, all the constructions in this paper are universally good. III. GDDFR C ODES FROM G ROUP D IVISIBLE D ESIGNS In this section, we present an explicit construction of FR codes from uniform group divisible designs. Our codes are constructed in a simple manner and are available for a large set of parameters. We first provide a brief definition of group divisible designs [16]. A. Group Divisible Designs Definition 3. Let H and G be sets of positive integers and let λ be a positive integer. A group divisible design of index λ and order v (denoted by (H, λ)-GDD) is a triple (V, G, B), where V is a finite set of cardinality v, G is a partition of V

into parts (groups) whose sizes lie in G, and B is a family of subsets (blocks) of V that satisfy: 1) If B ∈ B, then |B| ∈ H. 2) More than one group exists in G, i.e., |G| > 1. 3) Every pair of distinct elements of V occurs in exactly λ blocks or one group, but not both. If H contains one unique element (e.g., H = {h}), the (H, λ)GDD is an (h, λ)-GDD. If λ = 1, the GDD is denoted by H-GDD and an ({h}, 1)-GDD is abbreviated as h-GDD. If v = a1 g1 + a2 g2 + . . . + as gs , and if there are ai groups of size gi (i = 1, 2, . . . , s), then the (H, λ)-GDD is said to be of type g1a1 g2a2 . . . gsas . Moreover, a GDD is called uniform if all groups have the same size, that is, if it is of type g u for some positive integer u. For simplicity, we will use the exponential notation of GDDs in the rest of this paper. Given a uniform (h, λ)-GDD, it can be verified that every element in V belongs to the same number of blocks, denoted by r. We refer to the total number of blocks in B as b, which is similar to that of [8]. In this sense, b and r can be determined by the following proposition. Proposition 4. For an (h, λ)-GDD of type g u , the cardinality is hence v = gu. The values of b and r are given by: r(h − 1) = λ(v − g),

(3)

bh(h − 1) = λv(v − g).

(4)

Let us consider a uniform 3-GDD of type 23 , where V = {1, . . . , 6}. If the groups are taken as {1, 2}, {3, 4}, {5, 6}, we can obtain four blocks: {1, 3, 5}, {2, 3, 6}, {1, 4, 6}, {2, 4, 5}. Besides, each element belongs to exactly two distinct blocks, that is, r = 2, b = 4. Note that if every block meets every group in exactly one element, the GDD is called a transversal design. A transversal design with λ = 1 is equivalent to mutually orthogonal Latin squares (MOLS). For the case that every group contains one element (i.e., G = {1}), the h-GDD is a Steiner system [17]. In addition, there may exist some isomorphic designs for a given GDD and we will only consider one specific design in this paper. It can be seen that our construction can be extended to all the other isomorphic designs. B. Codes Construction Before introducing the codes construction, we give a simple example with parameters from the above uniform 3-GDD. Example 5. Consider a (4, 2, 3) DSS with storage capacity 5 according to (1). A file (X1 , X2 , . . . , X5 ) ∈ Fq5 has 5 packets that needs to be stored on the system, where Fq is the finite field of size q. After a (6, 5) MDS code, a total of 6∑packets 5 are generated as Yi = Xi , i = 1, . . . , 5 and Y6 = i=1 Xi . By applying the above uniform 3-GDD of type 23 and taking each block as a storage node, we obtain a distributed storage system with n = 4 nodes as shown in Fig. 1. Each node stores a subset of the packets {Y1 , . . . , Y6 }. For instance, node V1 contains three packets Y1 , Y3 , Y5 . Any user can retrieve the file while contacting arbitrary k = 2 nodes. If a node fails, data



Figure 1. A (4, 2, 3) DSS with an FR code constructed from uniform 3GDD of type 23 . The points in the block show the indices of the packets that are stored on the node. Each packet is repeated twice, i.e., ρ = 2.

regeneration can be done by downloading one packet from each of the three surviving nodes, i.e., d = 3. Example 5 suggests the direct construction of FR codes from uniform group divisible designs. Note that the nodes in the system, which correspond to the blocks, are of identical storage capacity. Thus, we focus on the GDDs with the same block size. Furthermore, in order to achieve the system storage capacity expressed in (1), We are interested in the GDDs with λ = 1. Heading towards this direction, we present now the formal codes construction. Construction: Given a uniform h-GDD of type g u with blocks B1 , B2 , . . . , Bb , an FR code can be generated by taking C = {B1 , B2 , . . . , Bb }. The parameters of the obtained FR code are given by θ = v = gu, and v−g . (5) h−1 Besides, the corresponding distributed storage system is determined with node capacity d = h, and node size ρ=r=

n=b=

v(v − g) . h(h − 1)

(6)

Equations (5) and (6) can be derived from equations (3) and (4) respectively, where λ = 1. The code construction can be illustrated by Example 5, where an FR code with ρ = 2 is obtained from the 3-GDD of type 23 . In addition, the system can tolerate a single failure. For the case of multiple failures (i.e., ρ > 2), we give the following example. Example 6. We now consider a uniform 3-GDD of type 24 , and {1, 2}, {3, 4}, {5, 6}, {7, 8} are taken as the groups. The corresponding blocks are listed below: {1, 3, 5}, {2, 4, 6}, {1, 4, 7}, {2, 3, 8}, {1, 6, 8}, {2, 5, 7}, {3, 6, 7}, {4, 5, 8}. Specifically, a file is equally split into six packets, denoted by X1 , X2 , . . . , X6 . After an (8, 6) MDS code, we obtain eight coded packets as Y1 , Y2 , . . . , Y8 . Based on the 3-GDD above, our construction gives an FR code with ρ = 3 for a (8, 3, 3) DSS, as depicted in Fig. 2. This system can tolerate any two node failures from the fact that each packet has three copies stored on distinct nodes. We note that the repair process of our construction is table-based as in [8], which implies that a specific set of nodes need to be contacted, depending on which



A. Universally Good Codes The specific constructions of GDDFR codes are shown to be universally good, which are by no means accidental. We generalize these findings and obtain the following theorem. Theorem 8. GDDFR codes with repetition degree ρ ≥ 2 are universally good.

Figure 2. An FR code with ρ = 3 is designed for a (8, 3, 3) DSS. The original file can be reconstructed by downloading data from any 3 out of the 8 nodes. When a node fails, regeneration can be done by contacting 3 specific surviving nodes and downloading one packet from each node.

node has failed. For instance, when node V8 fails, regeneration can be proceeded by contacting three nodes {V2 , V4 , V6 }, but not {V1 , V2 , V3 }. It can be seen that anyone who contacts 3 different nodes can obtain at least 6 distinct packets, which are eligible for the data reconstruction from the MDS property. In this case, RC (3) = 6. Moreover, the storage capacity of the DSS is equal to 6 packets according to (1). Therefore, the FR code designed above is universally good. Remark 7. A GDD is resolvable if all the blocks of the design can be partitioned into several parallel classes. In the work of [11], the authors show that an FR code with repetition degree ρ ≤ γ can be obtained by choosing ρ distinct parallel classes, where γ is the total number of parallel classes. Specifically, each parallel class contains one copy of all coded packets. It is clear that upon ρ − 1 failures, the failed nodes can be regenerated since there is at least one parallel class that remains intact. Therefore, if the uniform GDD applied in the code construction is resolvable, we can flexibly choose the repetition degree and the number of blocks (i.e., the node size of the system). For example, consider a resolvable 4-GDD of type 44 , and G = {{1, 2, 3, 4}, . . . , {13, 14, 15, 16}}. The parallel classes are listed row-wise: {1, 5, 9, 13}, {2, 6, 10, 14}, {3, 7, 11, 15}, {4, 8, 12, 16}; {1, 6, 11, 16}, {2, 5, 12, 15}, {3, 8, 9, 14}, {4, 7, 10, 13}; {1, 7, 12, 14}, {2, 8, 11, 13}, {3, 5, 10, 16}, {4, 6, 9, 15}; {1, 8, 10, 15}, {2, 7, 9, 16}, {3, 6, 12, 13}, {4, 5, 11, 14}. In this case, we can simply generate an FR code with ρ = 2 for a (8, 3, 4) DSS, and an FR code with ρ = 3 for a (12, 4, 4) DSS respectively. This resilience in repetition degree and node size provides many conveniences for the system designers.

Proof: It can be observed that for a uniform h-GDD of type g u , any pair of distinct elements from different groups is contained in exactly one block. That is, any two blocks can (not) share more than one element. Therefore, there are at most k2 repeated packets when contacting any k nodes of the system. This implies that GDDFR codes obtained by our construction can achieve the storage capacity CM BR . Note that the FR code rate can exceed the system capacity (i.e., RC (k) > CM BR ) due to the table-based repair regime, which differs from the random access model in the literature. For instance, consider the resolvable 4-GDD in section III. If we take any two parallel classes, we can obtain an FR code with repetition degree ρ = 2 for a (8, 3, 4) DSS. Anyone who contacts any 3 nodes can get at least 10 distinct packets, while the system capacity is equal to 9 packets by (1). Moreover, it can be shown that this FR code is optimal by comparing with the upper bound on the file size derived in [8]. B. Codes Existence Our design of FR codes is based on the existence of uniform GDDs, which has been historically well-studied. In particular, the necessary conditions for the existence of a uniform GDD are given in [18], as stated in the following lemma. Lemma 9. The necessary conditions for the existence of a uniform (h, λ)-GDD of type g u are 1) u ≥ h; 2) λ(u − 1)g ≡ 0 mod h − 1; 3) λu(u − 1)g 2 ≡ 0 mod h(h − 1). It is necessary that the number of groups should be no less than the block size. If this condition is not satisfied, there will not exist h distinct points from different groups that can form a block. Furthermore, the conditions (2) and (3) ensure that the parameters r and b are both integers. The existence of uniform GDDs with h = 3 and 4 has been solved in the literature. Specifically, Hanani proved in [19] that the necessary conditions in Lemma 9 are sufficient for uniform 3-GDDs. As shown in [20], the necessary conditions are also sufficient for uniform 4-GDDs, with the definite exception of 4-GDDs of types 24 and 64 . Further, many researchers have been involved in exploring the existence of uniform GDDs with h ≥ 5 [21]. These results in conjunction with our codes construction give an infinite family of FR codes.

IV. D ISCUSSION

Theorem 10. A GDDFR code of repetition degree ρ = (u−1)g h−1 for a DSS exists if and only if the three conditions in Lemma 9 are satisfied with λ = 1.

In the previous sections, we present the explicit construction of FR codes using uniform GDDs. We will discuss the properties of the designed GDDFR codes and make comparisons with other existing construction techniques.

Table I summarizes some existence of uniform 3-GDDs and 4-GDDs of small order. Notably, we also list the possible code constructions with small repetition degrees (i.e., ρ = 3, 4, 5) that correspond to the specific designs. In addition to the above

Table I E XAMPLES OF FR C ODES CONSTRUCTED FROM U NIFORM GDD S v=θ

Group Type

h=d

r=ρ

b=n

9

33 26 43 34 27 53 35 44 54

3 3 3 4 4 3 4 4 4

3 5 4 3 4 5 4 4 5

9 20 16 9 14 25 15 16 25

12 14 15 16 20

examples, we emphasize that we can generate GDDFR codes with a wide range of parameters. C. Comparison The existing constructions of FR codes are primarily based on combinatorial designs. In particular, regular graphs are suitable in the case that ρ = 2, and code constructions widely exist whenever nd is even. Steiner systems can be adopted in the code construction for multiple node failures, wherein any pair of distinct packets is stored on exactly one node. We note that our design allows for constructing FR codes with parameters that are not covered by Steiner systems. In a Steiner system S(t, α, v), a necessary condition is that any subset of t points is contained in exactly one block, for 2 ≤ t ≤ α (where α is the size of a block). However, in a uniform h-GDD of type g u , any point in the same group can not be in the same block by definition. Therefore, if g > 1, the necessary condition of Steiner systems does not hold in our construction. We demonstrate that FR codes with repetition degree ρ > 2 widely exist despite that the parameters are not covered by Steiner systems [8]. If the node size in the system is much larger than repetition degree, projective geometries can provide such scalable constructions of FR codes. Moreover, we can flexibly choose the repetition degree of FR codes if the designs adopted are resolvable. In terms of the various construction techniques and application scenarios, we emphasize that GDDFR codes take an advantage of an intuitive nature, and are easy to implement in practical storage systems. There is no much additional work in the generation of specific graphs or geometries, which undoubtedly contributes to the complexity of code construction. If the groups are identified and there exists a uniform GDD of such a group type, we can figure out the blocks and generate the corresponding FR code in a simple manner. V. C ONCLUSION In this paper, we propose a new construction of FR codes based on the uniform group divisible designs, termed GDDFR codes. A large set of parameters are available for our construction. We show that all the GDDFR codes constructed in this paper are universally good, that is, RC (k) ≥ CM BR (n, k, d) for all k = 1, 2, . . . , d. In addition, we emphasize that FR codes with repetition degree ρ > 2 generally exist despite that the system parameters are not covered by Steiner systems,

which resolves the open question posed in [8]. We also make some comparisons with other construction technologies. It can be seen that our design is particularly simple to implement in practical storage systems. Future work would include constructions of other classes of combinatorial structures. It would also be an interesting task to achieve FR codes in practical systems and make some comparisons with other codes in the literature. R EFERENCES [1] S. Ghemawat, H. Gobioff, and S.-T. Leung, “The Google file system,” in Proc. 19th ACM Symposium on Operating Systems Principles (SOSP), pp. 29–43, Oct. 2003. [2] K. Shvachko, H. Kuang, S. Radia, and R. Chansler, “The Hadoop Distributed File System,” in Proc. Int. Conf. on Massive Storage Systems and Technology (MSST), pp. 1–10, May 2010. [3] H. Weatherspoon and J. D. Kubiatowicz, “Erasure coding vs. replication: A quantitative comparison,” in Proc. Int. Workshop Peer-to-Peer Syst., pp. 328–338, Mar. 2002. [4] A. Thusoo, Z. Shao, S. Anthony, D. Borthakur, N. Jain, J. Sen Sarma, R. Murthy, and H. Liu, “Data Warehousing and Analytics Infrastructure at Facebook,” in Proc. of the ACM SIGMOD Int. Conf. on Management of data, ser. SIGMOD ’10, pp. 1013–1020, Jun. 2010. [5] A. G. Dimakis, P. B. Godfrey, Y. Wu, M. Wainwright, and K. Ramchandran, “Network Coding for Distributed Storage Systems,” IEEE Trans. on Inf. Theory, vol. 56, no. 9, pp. 4539–4551, Sept. 2010. [6] A. G. 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, Mar. 2011. [7] K. V. Rashmi, N. B. Shah, P. V. Kumar, and K. Ramchandran, “Explicit Construction of Optimal Exact Regenerating Codes for Distributed Storage,” in Proc. 47th Allerton Conference on Communication, Control, and Computing, pp. 1243–1249, Sept. 2009. [8] S. El Rouayheb and K. Ramchandran, “Fractional repetition codes for repair in distributed storage systems,” in Proc. 48th Allerton Conference on Communication, Control, and Computing, pp. 1510–1517, Oct. 2010. [9] S. Pawar, N. Noorshams, S. El Rouayheb, and K. Ramchandran, “Dress codes for the storage cloud: Simple randomized constructions,” in Proc. IEEE International Symposium on Information Theory (ISIT), pp. 2338–2342, Aug. 2011. [10] J. Koo and J. Gill, “Scalable constructions of fractional repetition codes in distributed storage systems,” in Proc. 49th Allerton Conference on Communication, Control, and Computing, pp. 1366–1373, Sept. 2011. [11] O. Olmez and A. Ramamoorthy, “Repairable replication-based storage systems using resolvable designs,” in Proc. 50th Allerton Conference on Communication, Control, and Computing, pp. 1174–1181, Oct. 2012. [12] S. Anil, M. K. Gupta and T. A. Gulliver, “Enumerating Some Fractional Repetition Codes,” in arXiv:1303.6801v1 [cs.IT], Mar. 2013. [13] N. Silberstein and T. Etzion, “Optimal Fractional Repetition Codes,” in arXiv:1401.4734v1 [cs.IT], Jan. 2014. [14] B. Zhu, H. Li, H. Hou and K. W. Shum, "Replication-based Distributed Storage Systems with Variable Repetition Degrees," in Proc. of the 20th National Conference on Communications (NCC), Mar. 2014. [15] B. Zhu, K. W. Shum, H. Li and H. Hou, “General Fractional Repetition Codes for Distributed Storage Systems,” IEEE Communications Letters, vol. 18, no. 4, pp. 660–663, Apr. 2014. [16] C. J. Colbourn and J. H. Dinitz, Handbook of Combinatorial Designs, Second Edition. Chapman and Hall/CRC, 2006. [17] T. Beth, D. Jungnickel, and H. Lenz, Design Theory, Second Edition, Cambridge University Press, 1999. [18] L. Zhu, “Some recent developments on BIBDs and related designs,” Discrete Math, vol. 123, no. 1–3, pp. 189–214, 1993. [19] H. Hanani, “Balanced incomplete block designs and related designs,” Discrete Math, vol. 11, no. 3, pp. 255–369, 1975. [20] A. E. Brouwer, A. Schrijver, and H. Hanani, “Group divisible designs with block size 4,” Discrete Math, vol. 20, pp. 1–10, 1977. [21] G. Ge and A. C. H. Ling, “Asymptotic results on the existence of 4RGDDs and uniform 5-GDDs,” Journal of Combinatorial Designs, vol. 13, no. 3, pp. 222–237, 2005.