Capacity and Security of Heterogeneous Distributed Storage Systems

We study the capacity of heterogeneous distributed storage systems under repair dynamics. Examples of these systems include peer-to-peer storage clouds, wireless, and Internet caching systems. Nodes in a heterogeneous system can have different storage capacities and different repair bandwidths. We give lower and upper bounds on the system capacity. These bounds depend on either the average resources per node, or on a detailed knowledge of the node characteristics. Moreover, we study the case in which nodes may be compromised by an eavesdropper, and give bounds on the system secrecy capacity. One implication of our results is that symmetric repair maximizes the capacity of a homogeneous system, which justifies the model widely used in the literature.


I. INTRODUCTION
Cloud storage has emerged in recent years as an inexpensive and scalable solution for storing large amounts of data and making it pervasively available to users. The growing success of cloud storage has been accompanied by new advances in the theory of such systems, namely the application of network coding techniques for distributed data storage and the theory of regenerating codes introduced by Dimakis et al. [1], followed by a large body of further work in the literature.
Cloud storage systems are typically built using a large number of inexpensive commodity disks that fail frequently, making failures "the norm rather then the exception" [2]. Therefore, it is a prime concern to achieve fault-tolerance in these systems and minimize the probability of losing the stored data. The recent theoretical results uncovered fundamental tradeoffs among system resources (storage capacity, repair bandwidth, etc.) that are necessary to achieve faulttolerance. They also provided novel code constructions for data redundancy schemes that can achieve these tradeoffs in certain cases; see for example [3], [4] and [5].
The majority of the results in the literature of this field focus on a homogeneous model when studying the information theoretic limits on the performance of distributed storage systems. In a homogeneous system all the nodes (hard disks or other storage devices) have the same parameters (storage capacity, repair bandwidth, etc.). This model encompasses many real-world storage systems such as clusters in a data center, and has been instrumental in forming the engineering intuition for understanding these systems. Recent development have included the emergence of heterogeneous systems that pool together nodes from different sources and with different characteristics to form one big reliable cloud storage system. Examples include peer-to-peer (p2p), or hybrid (p2p-assisted) cloud storage systems [6], [7], Internet caching systems for video-on-demand applications [8], [9], and caching systems in heterogeneous wireless networks [10]. Motivated by these applications, we study the capacity of heterogeneous distributed storage systems (DSS) here under reliability and secrecy constraints.
Contributions: The capacity of a DSS is defined as the maximum amount of information that can be delivered to any user contacting k out of n nodes in the system. Intuitively, in a heterogeneous system, this capacity should be limited by the "weakest" nodes. However, nodes can have different storage capacities and different repair bandwidths. And the tension between these two set of parameters makes it challenging to identify which nodes are the "weakest".
Our first result establishes an upper bound on the capacity of a DSS that depends on the average resources in the system (average storage capacity and average repair bandwidth per node). We use this bound to prove that symmetric repair, i.e., downloading equal amount of data from each helper node, maximizes the capacity of a homogeneous DSS. While the optimality of symmetric repair is known for the special case of MDS codes [11], our results assert that symmetric repair is always optimal for any choice of system parameters. Further, our proof avoids the combinatorial cut-based arguments typically used this context.
In addition, we give an expression for the capacity when we know the characteristics of all the nodes in the system (not just the averages). This expression may be hard to compute, but we use it to derive additional bounds that are easy to evaluate. Our techniques generalize to the scenario in which the system is compromised by an eavesdropper 1 . We give bounds on the secrecy capacity when the system is supposed to leak no information to the eavesdropper (perfect secrecy). Here too, we show that symmetric repair maximizes the secrecy capacity of a homogeneous system. Related work: Wu proved the optimality of symmetric repair in [11] for the special case of a DSS using Maximum Distance Separable (MDS) codes. Coding schemes for a nonhomogeneous storage system with one super-node that is more reliable and has more storage capacity were studied in [12]. References [13] and [14] studied the problem of storage allocations in distributed systems under a total storage budget constraint. Pawar et al. [15], [16] studied the secure capacity of distributed storage systems under eavesdropping and malicious attacks.
Organization: Our paper is organized as follows. In Section II, we describe our model for heterogeneous DSS and set up the notation. In Section III, we summarize our main results. In Section IV, we prove our bounds on the capacity of a heterogeneous DSS. In Section V, we study the secrecy capacity in the presence of an eavesdropper. We conclude in Section VI and discuss some open problems. We postpone some of the proofs to the Appendix, where we also discuss the generalizability of our results from functional to exact repair.

II. MODEL
A heterogeneous distributed storage system is formed of n storage nodes v 1 , . . . , v n with storage capacities α 1 , . . . , α n respectively. Unless stated otherwise, we assume that the nodes are indexed in increasing order of capacity, i.e., α 1 ≤ α 2 ≤ · · · ≤ α n . In a homogeneous system all nodes have the same storage capacity α, i.e., α i = α, ∀i. As a reliability requirement, a user should be able to obtain a file by contacting any k < n nodes in the DSS. The nodes forming the system are unreliable and can fail. The system is repaired from a failure by replacing the failed node with a new node. Upon joining the system, the new node downloads its data from d, k ≤ d ≤ n − 1, helper nodes in the system.
The repair process can be either exact or functional. In the case of exact repair, the new node is required to store an exact copy of the data that was stored on the failed node. Whereas in the case of functional repair, the data stored on the new node does not have to be an exact copy of the lost data, but merely "functionally equivalent" in the sense that it preserves the property that contacting any k out of n nodes is sufficient to reconstruct a stored file. We focus on functional repair in this paper, although some of our results do generalize to the exact repair model (see the discussion in Appendix A).
An important system parameter is the repair bandwidth which refers to the total amount of data downloaded by the new node. In a homogeneous system, the repair bandwidth, denoted by γ, is the same for any new node joining the system. The typical model adopted in the literature assumes symmetric repair in which the total repair bandwidth γ is divided equally among the d helpers. Thus, the new node downloads β = γ/d amount of information from each helper. In a heterogeneous system the repair bandwidth can vary depending on which node has failed and which nodes are helping in the repair process. We denote by β ijS the amount of information that a new node replacing the failed node v j is downloading from helper node v i when the other helper node belong to the index set S (i ∈ S, |S| = d). An important special case is when the repair bandwidth per helper depends only on the identity of the helper node and not on the identity of the failed node or the other helpers. In this case, we say that helper node v i has repair bandwidth β i , i.e., β ijS = β i , ∀j, S. In the case of a homogeneous system with symmetric repair, we have We focus on repair from single node failures 2 . In this case, there are n−1 d possibilities for the set of helpers S. Therefore, the average repair bandwidth γ j of node v j is We denote by γ = 1 n n j=1 γ j and α = 1 n n j=1 α j the average total repair bandwidth and average node capacity in the DSS, respectively.
We are interested in finding the capacity C of a heterogeneous system. The capacity C represents the maximum amount of information that can be downloaded by any user contacting k out of the n nodes in the system. Recall from [1], that the capacity C ho of a homogeneous system implementing symmetric repair is given by We are also interested in characterizing the secrecy capacity of the system when some nodes are compromised by an eavesdropper. We follow the model in [15] and [16] and denote by , ≤ k, the number of compromised nodes. The eavesdropper is assumed to be passive. She can read the data downloaded during repair and stored on a compromised node. We are interested here in information theoretic secrecy which characterizes the fundamental ability of the system to provide data confidentiality independently of cryptographic methods. The secrecy capacity of the system, denoted by C s , is defined as the maximum amount of information that can be delivered to a user without revealing any information to the eavesdropper (perfect secrecy). We denote by C ho s the secrecy capacity of a homogeneous system with symmetric repair. Finding C ho s is still an open problem in general. The following upper bound was shown to hold in [15] and [16]:

III. MAIN RESULTS
We start by summarizing our results. Theorem 1 gives a general upper bound on the storage capacity of a heterogeneous DSS as a function of the average resources per node. x, y x 4 , y 4 x 5 , y 5 x 6 , y 6 (b) A DSS constructed by combining together n! = 6 copies of the original heterogeneous system corresponding to all possible node permutations. The obtained DSS is homogeneous with uniform storage per node α = 10 and repair bandwidth per helper β = 10. The capacity of this system is 20 as given by (2) [1]. Any code that stores a file of size C (C = 3 here) on the original DSS can be transformed into a scheme that stores a file of size n!C = 6C in the "bigger" system. This gives the upper bound in (14) C ≤ 20/6 = 10/3.

Theorem 1:
The capacity C of a heterogeneous distributed storage system, with node average capacityᾱ and average repair bandwidthγ, is upper bounded by The right-hand side term in (14) is the capacity of a homogeneous system in (2) in which all nodes have storage α =ᾱ and total repair bandwidth γ =γ . Th. 1 states that the capacity of a DSS cannot exceed that of a homogeneous system where the total system resources are split equally among all the nodes. Moreover, Th. 1 implies that symmetric repair is optimal in homogeneous systems in the sense that it maximizes the system capacity. This justifies the repair model adopted in the literature. This result is stated formally in Cor. 2.
While the optimality of symmetric repair is known for the special case of MDS codes [11], Cor. 2 asserts that symmetric repair is always optimal for any choice of system parameters. This result follows directly from Th. 1 and avoids the combinatorial cut-based arguments that may be needed in a more direct proof.
Corollary 2: In a homogeneous DSS with node capacity α and total repair bandwidth γ, symmetric repair maximizes the system capacity.
When we know the parameters of the nodes in the system beyond the averages, we can obtain possibly tighter bounds as described in Th. 3. To simplify the notation, let us order the repair bandwidth per helper β ijS into an increasing sequence β 1 , β 2 , . . . , β m , such that β l ≤ β l+1 and where m = nd n−1 d . Also, recall that α 1 ≤ α 2 ≤ · · · ≤ α n .
Theorem 3: The capacity C of heterogeneous DSS is bounded by When the system is compromised by an eavesdropper the system secrecy capacity can be upper bounded as follows.
Theorem 4: The secrecy capacity C s of a DSS when nodes in the system are compromised by an eavesdropper is upper bounded by This theorem implies that symmetric repair also maximizes the secrecy capacity of a homogeneous DSS.

A. Example & Proof of Theorem 1
We illustrate the proof of Th. 1 through an example for the special case in which the bandwidths depend only on identity of the helper node. We compute the capacity of the DSS for this specific example, and show that it is strictly less than the upper bound of Th. 1. That is, it does not achieve the capacity of a homogenous system with the same average characteristics. More specifically, consider the heterogeneous DSS depicted in Fig. 1(a) with (n, k, d) = (3, 2, 2) formed of 3 storage nodes v 1 , v 2 and v 3 with storage capacities (α 1 , α 2 , α 3 ) = (1, 2, 2) and repair bandwidths (β 1 , β 2 , β 3 ) = (1, 2, 2). The average node capacity α = 5/3 and repair bandwidth are β = 10/3. Th. 1 gives that the capacity of this DSS C ≤ 10/3 = 3.33.
For this example, it is easy to see that the DSS capacity is C = 3 ≤ 10/3. In fact, a user contacting nodes v 1 and v 2 cannot download more information then their total storage α 1 + α 2 = 3. This upper bound is achieved by the code in Fig. 1(a). The code stores a file of 3 units (x, y, z) in the system. During repair the new node downloads the whole file and stores the lost piece of the data (note that the repair bandwidth constraints allow this trivial repair).
To obtain the upper bound in (14), we use the original heterogeneous DSS to construct a "bigger" homogeneous system. We obtain this new system by "glueing" together n! = 3! = 6 copies of the original DSS as shown in Fig. 1(b). Each copy corresponds to a different permutation of the nodes. In the figure, the i th copy stores the file (x i , y i , z i ). For example in Fig. 1(b), the first copy is the original system itself, the second corresponds to node v 1 and node v 3 switching positions, and so on.
The "bigger" system is homogeneous because all its nodes have storage α = 10 and repair bandwidth per helper β = γ/d = 10. The capacity C of this system can be computed from (2): As seen in Fig. 1, any scheme that can store a file of size C in the original DSS can be transformed into a scheme that can store a file of size n!C in the "bigger" DSS. Therefore, we get n!C ≤ C and C ≤= 10/3. This argument can be directly generalized to arbitrary heterogeneous systems. The general proof follows the same steps explained above and can be found in Appendix B.
Theorem 1 implies that symmetric repair, i.e., downloading equal numbers of bits from each of the helpers, is optimal in a homogeneous system. To see this, consider a DSS with node storage capacity α, and a total repair bandwidth budget γ. A new node joining the system has the flexibility to arbitrarily split its repair bandwidth among the d helpers as long as the total amount of downloaded information does not exceed γ. In other words, we have i∈S β ijS = γ, ∀j, S. Now, irrespective of how each new node splits its bandwidth budget, the average repair bandwidth in the system is the same, γ = γ. If we apply Th. 1, we get an upper bound that matches exactly the capacity in (2) of a homogeneous DSS with symmetric repair. Hence, we obtain the result in Cor. 2.

B. Proof of Theorem 3
To avoid heavy notation, we focus on the case in which the repair bandwidth depends only on the helper node (β ijS = β i ). We give in Th. 5 lower and upper bounds specific to this case. These bounds are similar to the ones in Th. 3, but can be tighter. The proof of Th. 3 follows the exact steps of the proof below and will be omitted here. Again, we assume that the nodes are indexed in increasing order of node capacity, α 1 ≤ α 2 ≤ · · · ≤ α n . We also order the values of the repair bandwidths β to obtain the increasing sequence β 1 ≤ β 2 ≤ · · · ≤ β n . Theorem 5: The capacity C of a heterogeneous DSS, in which the repair bandwidth depends only on the identity of the helper node, is bounded as C min ≤ C ≤ C max , where and The second expressions for C min and C max highlight the analogy with the bounds in Th. 3. Before proving Th. 5, we give a couple of illustrative examples and discuss some special cases.
The upper and lower bounds can coincide (C min = C max ) in certain cases, which gives the exact expression of the capacity. For example: 1) A homogeneous DSS, where we recover the capacity expression in (2). 2) A DSS with uniform repair bandwidth, i.e., β i = β, ∀i. The To prove the upper and lower bounds in Th. 5, we first establish the following expression of the DSS capacity.
Theorem 8: The capacity C of a heterogeneous DSS is given by where for any S ⊆ {1, . . . , n}, β S = i∈S β i .
The proof of Th. 8 is a generalization of the proof in [1] of the capacity of a homogeneous system (2). We defer this proof to Appendix C and explain here the intuition behind it. Consider the scenario depicted in Fig. 2 where nodes v f1 , . . . , v f k fail and are repaired successively such that node v fi is repaired by downloading data from the previously Fig. 2. A series of k failures and repairs in the DSS that explains the capacity expression in (9). Nodes v f 1 , . . . , v f k fail successively and are repaired as depicted above. The amount of "new" information that node v f i can give the user is the minimum between his storage capacity α f i and downloaded data β S i . repaired nodes v f1 , . . . , v fi−1 and d − (i − 1) other helper nodes in the system. Consider now a user contacting nodes v f1 , . . . , v f k .
The amount of "non-redundant" information that node v fi can give to the user is evidently limited by its storage capacity α i on one hand, and on the other hand, by the amount of information β Si downloaded from the d − i + 1 helper nodes that are not connected to the user. Minimizing over all the choices of f 1 , . . . , f k gives the expression in (9).
It is not clear whether the capacity expression in (9) can be computed efficiently. For this reason we give upper and lower bounds that are easy to compute. To get the lower bound in (7), let (f 1 , . . . , f k ) = (f * 1 , . . . , f * k ) be the minimizer of (9). We have where l * , 0 ≤ l * ≤ k is the number of those cases where α f * i is smaller or equal than the corresponding sum of β's.

A. Secrecy Capacity
We now consider the case in which nodes in the system are compromised by a passive eavesdropper who can observe their downloaded and stored data, but cannot alter it. The secrecy capacity C s of the system is the maximum amount of information that can be delivered to any user without revealing any information to the eavesdropper (perfect secrecy).
Formally, let S be the information source that represents the file that is stored on the DSS. A user contacts the nodes in any set B ⊂ {v 1 , . . . , v n } of size k and downloads their stored data denoted by C B . The user should be able to decode the file, which implies H(S|C B ) = 0. Let E be the set of the compromised nodes, and D E be the data observed by the eavesdropper. The perfect secrecy condition implies that H(S|D E ) = H(S). Following the definition in [16], we write the secrecy capacity as Finding the secrecy capacity of a DSS is a hard problem and is still open in general, even for the class of homogeneous systems. Let C ho s (α, β, ) denote the secrecy capacity of a homogeneous DSS implementing symmetric repair and having compromised nodes. Following the same steps in the proof of Th. 1, we can show that the secrecy capacity C s of a heterogeneous DSS cannot exceed that of a homogeneous DSS having the same average resources.
Theorem 9: Consider a heterogeneous DSS with average storage capacity per node α, average repair bandwidth γ, and compromised nodes. The secrecy capacity of this system is upper bounded by Equations (12) and (3) imply the following upper bound stated in Th. 4: Using Th. 9, we easily deduce that symmetric repair is also optimal in terms of maximizing the secrecy capacity of a compromised DSS.
Corollary 10: Symmetric repair maximizes the secrecy capacity of a homogeneous system with a given budget on total repair bandwidth.

VI. CONCLUSION
We have studied distributed storage systems that are heterogeneous. Nodes in these systems can have different storage capacities and different repair bandwidths. We have focused on determining the information theoretic capacity of these systems, i.e., the maximum amount of information they can store, to achieve a required level of reliability (any k out of the n nodes should be able to give a stored file to a user). We have proved an upper bound on the capacity that depends on the average resources available per node. Moreover, we have given an expression for the system capacity when we know all the nodes' parameters. This expression may be hard to compute, but we use it to derive additional upper and lower bounds that are easy to evaluate. We have also studied the case in which the system is compromised by an eavesdropper, and have provided bounds on the system secrecy capacity under a perfect secrecy constraint. Our results imply that symmetric repair maximizes the capacity of a homogeneous system, which justifies the repair model used in the literature. Problems that remain open include finding an efficient algorithm to compute the capacity of a heterogeneous distributed storage system, as well as efficient code constructions.

A. Functional vs. Exact Repair
All of our results so far assumed a functional repair model. However, Theorems 1, 4 and 9 can be directly extended to the exact repair case. For instance, Th. 1 becomes: Theorem 11: The capacity C of a heterogeneous distributed storage system under exact repair, with node average capacitȳ α and average repair bandwidthγ, is upper bounded by where C ho exact (ᾱ,γ) is the capacity of a homogeneous DSS under exact repair.
In the proofs of Theorems 1, 4 and 9 we construct a new "big" storage system using the original one as a building block. Hence, if we had exact repair in the original system to start with, we will have exact repair in the new "big" system. The results can thus be straightforwardly generalized to the case of exact repair. Moreover, under an exact repair constraint, a homogeneous DSS with symmetric repair maximizes capacity under given average node storage and repair bandwidth budgets.
The other results, namely Theorems 3, 5, and 8, are proved using the analysis of the information flow graph. Therefore, It is not clear if there is an obvious extension of these results to the case of exact repair.

B. Proof of Theorem 1
We prove Th. 1 by making formal the argument of the example in Section IV-A. We start by describing the operation of adding, or combining, together multiple storage systems having same number of nodes. Let DSS 1 , DSS 2 be two storage systems with nodes v 1 1 , . . . , v 1 n and v 2 1 , . . . , v 2 n , respectively. The new system that we refer to as DSS obtained by combining DSS 1 and DSS 2 is comprised of n nodes, say u 1 , . . . , u n . Node u i has storage capacity α i = α 1 i + α 2 i (superscript j, j = 1, 2, denotes a parameter of system S j ). Moreover, when node u j fails in DSS, the new node downloads β ijS = β 1 ijS + β 2 ijS amount of information from helper node u i (recall that S is the set of indices of the d helper nodes). We write DSS = DSS 1 + DSS 2 . Now, let DSS be the given heterogeneous system for which we wish to compute its capacity C. For each permutation σ : {1, . . . , n} → {1, . . . , n}, we denote by DSS σ the storage system with nodes v σ 1 , . . . , v σ n such that v σ i = v σ(i) . Let P n denote the set of all n! permutations on the set {1, . . . , n}. We define a new "big" system by The new system DSS b is homogeneous with symmetric repair where the storage capacity per node α b is given by and the repair bandwidth per helper β b is given by Therefore, the capacity C b of DSS b as given by (2) is Any scheme achieving the capacity C of the original system can be naturally extended to store a file of size n!C in DSS b (see Fig. 1). Therefore, C b ≥ n!C. This inequality combined with (16) gives the result of the Th. 1.

C. Proof of Theorem 8 (sketch)
We use the definition of the flow graph in [1] to represent the DSS. The flow graph is a multicast network in which the multiple destinations correspond to the users requesting files from the DSS by contacting any k out of the n nodes. Therefore, the capacity of the DSS is the capacity of this multicast network which is equal to the minimum value of the min-cuts to the users, by the fundamental theorem of network coding. Note that in the flow graph, a storage node v i is represented by two vertices x i in and x i out connected by an edge of capacity α i (see Fig. 2).
Let C be the capacity of the DSS and define F to be We want to show that C = F . Let (f 1 , . . . , f k ) be fixed and consider the successive failures and repairs of nodes v f1 , . . . , v fn as seen in Fig. 2. Suppose node v f1 is repaired by contacting the helper nodes that minimize the sum β S1 with |S 1 | = d and {f 1 } ∩ S 1 = ∅, and node v f2 is repaired by contacting node v f1 and the d − 1 helper nodes that minimize the sum β S2 with |S 2 | = d−1 and {f 1 , f 2 } ∩ S 2 = ∅. We continue in this fashion and finish with node v f k being repaired by contacting nodes v f1 , . . . , v f k−1 and the d − k + 1 helper nodes that minimize β S k with |S k | = d + 1 − k and {f 1 , . . . , f k } ∩ S k = ∅. Now consider a user contacting nodes v f1 , . . . , v fn there is a cut to the user of value F . By the max-flow min-cut theorem, we get C ≤ F .
To prove the other direction, consider a user in the system and let E denote the edges in the min-cut that separates this user from the source in the flow graph. Also, let V be the set of vertices in the flow graph that have a path to the user. Since the flow graph is acyclic, we have a topological ordering of the vertices in V , which means that they can be indexed such that an edge from v i to v j implies i < j.
Let x 1 out be the first "out-node" in V (with respect to the ordering). If x 1 in / ∈ V , then x 1 in x 1 out ∈ E. On the other hand, if x 1 in ∈ V , then the set of incoming edges S 1 , |S 1 | = d, of x 1 in must be in E. Now similarly let x 2 out be the second "out-node" in V with respect to the ordering. If x 2 in / ∈ V , then x 1 in x 2 out ∈ E. If x 2 in ∈ V , then the set S 2 , |S 2 | ≥ d − 1, of edges incoming to x 2 in , not including a possible edge from x 1 out , must be in E. All k nodes adjacent to the user must be in V so continuing in the same fashion gives that the min-cut is at least where f i = f j for i = j, |S i | = d + 1 − i, and {f 1 , . . . , f i } ∩ S i = ∅. Hence C ≥ F .