The concatenated codes described in Section 5 enable (r,ℓ)cooperative locality with better rate and minimum distance as compared to those of partition codes. However, the improvements obtained by concatenated code approach are small and limited to the bounded values of the parameter r. In this section, we present various graphbased codes that improve upon the previously described approaches for a large range of system parameters.
6.1 Bipartite graphs with large girth
The girth of a graph is the number of vertices in the shortest cycle of the graph. In this section, we explore a particular class of codes based on bipartite graphs with high girth. In this construction, the code symbols are associated with the edges of a bipartite graph and both the left and right vertices in the the bipartite graph enforces the constraints on the code symbols associated with the edges incident on these vertices. The analysis of the cooperative locality of the codes obtained in this manner is based on the fact that the underlying bipartite graph has high girth.
Let \({\mathcal G} = ({\mathcal U} \cup {\mathcal V}, {\mathcal E})\) be a bipartite graph where \({\mathcal U}\) and \({\mathcal V}\) denote the set of left and right vertices, respectively. In particular, we work with the bipartite graphs that are biregular, i.e., all the vertices from one part have the same degree. If all the left vertices and right vertices have degrees Δ
_{1} and Δ
_{2}, respectively, then we refer to such a bipartite graph as a (Δ
_{1},Δ
_{2})regular bipartite graph. In the case, where we have Δ
_{1}=Δ
_{2}=Δ, we simply call the bipartite graph as Δregular bipartite graph. Given the bipartite graph \({\mathcal G}\), we obtain a code \({\mathcal C}\) (over \(\mathbb {F}_{q}\)) in the following manner:

We assign each edge in the bipartite graph \(\mathcal {G}(\mathcal {V},\mathcal {E})\) with a code symbol in the codewords of \({\mathcal C}\). That is, \(\mathcal {C} \subseteq \mathbb {F}_{q}^{\mathcal {E}}\).

For every (left or right) vertex in the bipartite graph, all the code symbols associated with the edges incident on the vertex satisfy a linear constraint (over \(\mathbb {F}_{q}\)).
Before stating our general result on the cooperative locality of the codes obtained in this manner, we consider small values of ℓ. Note that any two edges in \({\mathcal G}\) (code symbols in a codeword of \({\mathcal C}\)) share at most one vertex (appear together in at most one local constraint). Thus, for ℓ=2 code symbols in erasure, it is possible to find two local constraints that contain exactly one of the two erased symbols. This allows for the repair of both the erased symbols by utilizing these two local constraints. In other words, the code \({\mathcal C}\) has (2(Δ
_{max}−1),2)cooperative locality, where Δ
_{max} denotes the maximum degree of the underlying bipartite graph \({\mathcal G}\). Similarly, even in the presence of ℓ=3 erasures, one can find at least two local constraints such that there is only one erasure among the code symbols participating in each of these constraints. Figure 2
a, b illustrates this fact by considering two possible patterns of ℓ=3 erasures. Now, using these two constraints, one can repair two erasures, which leaves only one erased symbol which can then be recovered with the help of any of the two local constraints it appears in. The repair of ℓ=3 erasures involves at most 3(Δ
_{max}−1) other code symbols; hence, the code \({\mathcal C}\) has (3(Δ
_{max}−1),3)cooperative locality. In order to cooperatively repair ℓ>3 erasures in \({\mathcal C}\), we utilize the fact that the underlying bipartite graph \({\mathcal G}\) has high girth.
Theorem
2.
Let \({\mathcal G}\) be a Δregular bipartite graph with girth g, then the code \({\mathcal C}\) obtained from the construction described above has ((g−1)(Δ−1),g−1)cooperative locality.
Proof.
A bipartite graph can only have cycles of even length (number of vertices or edges). Note that as we explain this before stating this theorem, the code \({\mathcal C}\) can correct up to three erasures without any assumption on the girth of the bipartite graph \({\mathcal G}\). Therefore, without loss of generality, we can assume that the girth of the bipartite graph \({\mathcal G}\) is at least six^{3}, i.e., g≥6. We use induction over the number of erasures to prove the claim. For the base case, we consider the case of ℓ=3 erasures. As described in the paragraph preceding the statement of this theorem, the code \({\mathcal C}\) can recover from three erasures in a cooperative manner.
Now as an inductive hypothesis, we assume that the code \({\mathcal C}\) can repair at most ℓ≤g−2 erasures in a cooperative manner and show that it is also possible to repair ℓ+1≤g−1 erasures. Towards this, we show that given ℓ+1 erasures, it is possible to obtain a local constraint which has a single erasure among the code symbols appearing in the constraint. Finding such a constraint allow for the recovery of one erasure leaving ℓ erasures. In order to show a contradiction, we assume that no such local constraint exists. We start with a vertex say \(u_{1} \in {\mathcal U}\) with at least two of the code symbols associated with the edges incident on it in erasure. We then traverse along one of the edges out of the vertex u
_{1} which have their corresponding code symbols in erasure. (Note that there are at least two of such edges.) Let \(v_{1} \in {\mathcal V}\) denote the vertex that we arrive at after traversing the edge. Since v
_{1} has at least two code symbols associated with its edges in erasure, we can now pick an edge associated with one of the erased symbol to reach another vertex \(u_{2} \in {\mathcal U}\) which is different from u
_{1}. We continue this process until we cannot traverse to an unexplored vertex through an edge with its associated symbol in erasure. Note that this process is bound to end in at most ℓ+1 steps as there are only ℓ+1 erasures. This process can end with two possibilities: (1) we have traversed through all edges associated with erased symbols or (2) all the unexplored edges from the last vertex leads to previously visited vertices. The first possibility is not feasible under our assumption as it implies that the last vertex has only single erasure associated with the edges incident on it. The second possibility leads to the existence of cycle of length at most ℓ+1 which is infeasible as ℓ+1≤g−1. This leads to a contradiction. Thus, it is possible to obtain a local constraint which has a single erasure among the code symbols appearing in the constraint. Now that we are remained with ℓ erasures, we can employ the inductive hypothesis to complete the proof.
As for the total number of intact code symbols contacted during the repair process, in the worst case, we may need to utilize g−1 different local constraints to recover from g−1 erasures. This amounts to contacting (g−1)(Δ−1) intact code symbols.
Remark
8.
(Construction of regular bipartite graphs with large girth) The problem of constructing regular bipartite graphs with large girth has received significant attention in the past. Here, we like to point out the work presented in [15, 25] and references therein. For an odd integer k≥1 and prime power q, Lazebnik et al. present explicit construction for qregular bipartite graphs with girth at least k+5 and number of edges q
^{k−1} [15]. Therefore, for any ℓ, one can design a code using a regular bipartite graph from [15] which ensures cooperative local repair of any ℓ erasures.
6.1.1 Rate and distance of \({\mathcal C}\) obtained from a regular bipartite graph
When \({\mathcal G}\) is a regular bipartite graph of degree Δ, the number of independent linear constrains on the codewords is at most \(\frac {2\mathcal {E}}{\Delta }\). Hence, the rate of the code is
$$\text{rate}({\mathcal C}) \geq \frac{{\mathcal E}  2{\mathcal E}/\Delta}{{\mathcal E}} = \frac{\Delta2}{\Delta}. $$
Note that Theorem 2 establish that the code \({\mathcal C}\) obtained using a Δregular graph with girth g has ((g−1)(Δ−1),g−1)cooperative locality. If we set (g−1)(Δ−1)=r and g−1=ℓ, then the following holds for the code \({\mathcal C}\) with (r,ℓ)cooperative locality.
$$\begin{array}{*{20}l} \text{rate}({\mathcal C}) \geq \frac{\frac{r}{\ell}  1}{\frac{r}{\ell} + 1} = \frac{r  \ell}{r + \ell}. \end{array} $$
((18))
As far as the minimum distance \(d_{\min }({\mathcal C})\) of a code \({\mathcal C}\) based on a Δregular bipartite graph \({\mathcal G}\) with girth g is concerned, we have the following trivial bound from Theorem 2.
$$\begin{array}{*{20}l} d_{\min}({\mathcal C}) \geq g. \end{array} $$
((19))
One can construct a Tanner graph \({\mathcal H}\) corresponding to the graph \({\mathcal G}\). The left vertices and right vertices in this Tanner graph correspond to the edges in the graph \({\mathcal G}\) and the vertices in the graph \({\mathcal G}\), respectively. The Tanner graph \({\mathcal H}\) is a biregular bipartite graph with left degree 2 and right degree Δ. Moreover, the girth of \({\mathcal H}\) is 2g. We can now use ([26] Theorem 2) to conclude that
$$\begin{array}{*{20}l} d_{\min}({\mathcal C}) \geq \tilde{d}_{\min}\frac{(\tilde{d}_{\min}1)^{g/2}  1}{\tilde{d}_{\min}  2}, \end{array} $$
((20))
where \(\tilde {d}_{\min }\) is the minimum distance of the smaller code associated with each vertex in the graph \({\mathcal G}\). For our case of \(\tilde {d}_{\min } = 2\), (20) does not give us anything better than (19).
Remark
9.
The relationship between stopping number, the smallest number of erasures that cannot be corrected under iterative decoding, and the girth of the Tanner graph associated with a code have been previously explored in the literature [27]. As described above, we can obtain a Tanner graph \({\mathcal H}\) corresponding to the graph \({\mathcal G}\). This allows us to draw the connections between Theorem 2 and the literature on stopping number.
Remark
10.
Compared to (7), this achievability result has a loss of at most \(\frac {\ell }{r+\ell }\) from the optimal possible rate.
6.1.2 Comparison with the work in [24]
Recently, Prakash et al. study codes which allow for local repair of two erasures [24]. In their model, they perform the repair of the two erasures in a successive manner, where a parity constraint of weight at most \(\tilde {r} + 1\) is used to repair each of the two erasures. In [24], Prakash et al. show that such codes have their rates upper bounded by \(\frac {\tilde {r}}{\tilde {r} + 2}\).
Note that their model can be generalized to ℓ≥2 erasures, and one can consider codes that enable successive local repairs from ℓ erasures by contacting ℓ parity constraints of weight at most \(\tilde {r} + 1\). The codes based on bipartite graphs with high girth, as proposed in this section, fall under this setting. Taking \(\tilde {r} = \frac {r}{\ell }\), their rate (cf. (18)) is at least \(\frac {\tilde {r}  1}{\tilde {r} + 1}\). Since the upper bound \(\frac {\tilde {r}}{\tilde {r} + 2}\) from [24] still applies to these codes, they exhibit almost optimal rate.
6.2 Expander graphs
The above analysis of the construction based on bipartite graphs fails to show a high minimum distance on top of the local repair property. However, with the graphical construction, it is also possible to have high distance, and hence protection against catastrophic failures. Next, we show how the expansion property of graphs leads to such conclusion.
6.2.1 Unbalanced bipartite expanders
Let \({\mathcal G} = ({\mathcal U} \cup {\mathcal V}, {\mathcal E})\) be an unbalanced left regular bipartite graph with \({\mathcal U} = n \geq {\mathcal V} = m\) and left degree h. We assume that the graph \({\mathcal G}\) is an expander graph where expansion happens from left nodes to right nodes. In particular, we assume that for all \({\mathcal S} \subseteq {\mathcal U}\) such that \({\mathcal S} \leq \ell \), we have
$$\begin{array}{*{20}l} \Gamma({\mathcal S}) \geq (1  \epsilon)h{\mathcal S}. \end{array} $$
((21))
Here, \(\Gamma ({\mathcal S}) \subseteq {\mathcal V}\) denotes the set of right nodes that constitute the neighborhood of the nodes in the set \({\mathcal S}\).
We now associate a code symbol with each of the left nodes in the bipartite graph \({\mathcal G}\). For \(v \in {\mathcal V}\), let \(\Gamma (v) \subseteq {\mathcal U}\) denote the neighborhood of the node v. Consider a code \({\mathcal C}\) such that for each \(v \in {\mathcal V}\), the code symbols associated with Γ(v) constitute a codeword in a shorter MDS code \(\mathcal {C}_{0}\) with length Δ=Γ(v) and minimum distance at least t+1. Note that this approach of constructing codes from unbalanced expander graphs is proposed in [26, 28] and references therein.
Next, we argue that for small enough ε (cf. (21)), the code \({\mathcal C}\) should be able to correct any set of at most ℓ erasures. Note that the locality parameter r is dictated by the degrees of the right nodes in the graph \({\mathcal G}\).
Theorem
3.
Let \({\mathcal G}\) be an unbalanced (left) expander bipartite graph as defined in (21). If we have \(\epsilon < 1  \frac {1}{t+1}\), then the code \({\mathcal C}\) can be locally repaired from any ℓ or less number of erasures by contacting at most \( \ell \Delta \cdot \text {rate}({\mathcal C}_{0})\) code symbols.
Proof.
We prove the claim using induction on ℓ. Note that a single erasure can be repaired by using one of the local constraints the erased code symbol participates in. Now assume that at most ℓ−1 erasures can be repaired by using local constraints defined by the graph \({\mathcal G}\). We now show that any set of ℓ erasures can also be repaired using local constraints.
Let \({\mathcal S} \subseteq {\mathcal U}\) with \({\mathcal S} \leq \ell \) denote the set of ℓ erased code symbols. In order to repair these ℓ erasures, we start with a right node which has at most t of the code symbols associated with its neighborhood in erasure. These t erasures can be corrected under the local constraints satisfied by the code \({\mathcal C}\). We can then utilize the inductive hypothesis to complete the proof.
Note that what remains to be shown is that the desirable right node with at most t associated erasures exists. Towards this, we assume that there is no such right node. In other words, this implies that the induced subgraph \(\widehat {{\mathcal G}}\) defined by the nodes \({\mathcal S} \cup \Gamma ({\mathcal S})\) has at least t+1 edges incident on every node in \(\Gamma ({\mathcal S})\) from the nodes in \({\mathcal S}\). Therefore, we have
$$\begin{array}{*{20}l} (t+1)\Gamma({\mathcal S}) &\leq \text{number of edges in} \, \widehat{\mathcal{G}} = h{\mathcal S} \\ \Rightarrow \Gamma({\mathcal S}) &\leq \frac{h{\mathcal S}}{t + 1}. \end{array} $$
((22))
However, for \(\epsilon < 1  \frac {1}{t+1}\), it follows from (21) that
$$\Gamma({\mathcal S}) > \frac{h{\mathcal S}}{t+1}. $$
This along with (22) leads to a contradiction. Hence, in the presence of at most ℓ erasures, it is possible to find the desirable right node (with at most t erasures among the code symbols associated with its neighborhood).
Now the claim that \(r \leq \ell \Delta \cdot \text {rate}({\mathcal C}_{0})\) follows from the fact that correcting each erasure requires contacting at least \(\Delta \cdot \text {rate}({\mathcal C}_{0})\) code symbols from a codeword of the shorter code \({\mathcal C}_{0}\).
Let α
n be such that the graph \({\mathcal G}\) allows for expansion of all sets \({\mathcal S} \subseteq {\mathcal U}\) of size at most α
n by a factor of at least (1−ε)h, i.e.^{4},
$$\Gamma({\mathcal S}) \geq (1  \epsilon)h{\mathcal S}~~\text{for all}~{\mathcal S} \subseteq {\mathcal U}~\text{with}~{\mathcal S} \leq \alpha n. $$
Proposition
1.
For the code \({\mathcal C}\)based on the bipartite graph \({\mathcal G}\)above and local codes of minimum distance t+1, we have,
$$d_{\min}({\mathcal C}) \geq \left(2\epsilon\frac{\epsilon}{t}\right)\alpha n. $$
A proof of this fact, which is an extension of existing results (such as [28]) is provided in Section 8.2. We further assume that the bipartite graph \({\mathcal G}\) is biregular with Δ denoting its right degree, i.e., nh = mΔ. Moreover, let \({\mathcal C}_{0}\) represent the shorter code of length Δ used to define the code \({\mathcal C}\). Then we have,
$$\begin{array}{*{20}l} \text{rate}({\mathcal C}) \geq \frac{n  m\Delta(1  \text{rate}({\mathcal C}_{0}))}{n} = 1 + \frac{h}{\Delta}\frac{r}{\ell}  h, \end{array} $$
where \(r = \ell \Delta \cdot \text {rate}({\mathcal C}_{0})\) denotes the maximum number of intact code symbols that need to be contacted to repair ℓ erasures.
Remark
11.
Here, we note that for any constant ε>0 and δ<1, it is possible to explicitly construct unbalanced expander graphs with constant degree h, m=δ
n and expansion factor (1−ε)h for Ω(n) sized subsets of left vertices [29].
6.2.2 Regular expander graph
We now study the cooperative locality of the codes obtained by the double covers of Δregular expander graphs [28]. The analysis of the cooperative locality is based on the analysis of the decoding algorithm for these codes presented in [30]. Note that we naturally modify the decoding algorithm from [30] to perform erasure correction in a cooperative manner.
Let \({\mathcal G} = ({\mathcal V}, {\mathcal E})\) be a Δregular graph with \({\mathcal V} = N\) and λ as the second (absolute) largest eigenvalue of its adjacency matrix^{5}. Given \({\mathcal G}\), we construct a bipartite graph \(\widetilde {{\mathcal G}} = ({\mathcal V}_{0} \cup {\mathcal V}_{1}, \widetilde {{\mathcal E}})\) with \({\mathcal V}_{0} = {\mathcal V}_{1} = N\) in the following manner (see Fig. 3):

Each vertex \(u \in {\mathcal V}\) in the original graph \({\mathcal G}\) corresponds to a left node \(u_{l} \in {\mathcal V}_{0}\) and a right node \(u_{r} \in {\mathcal V}_{1}\) in the graph \(\widetilde {{\mathcal G}}\).

For a pair of vertices \((u_{l}, v_{r}) \in {\mathcal V}_{0} \times {\mathcal V}_{1}\), there exists an edge \((u_{l}, v_{r}) \in \widetilde {{\mathcal E}}\) iff there is an edge between the vertices u and v in the original graph \({\mathcal G}\), i.e., \((u, v) \in {\mathcal E}\).
The bipartite graph \(\widetilde {{\mathcal G}}\) is referred to as the double cover of the graph \({\mathcal G}\). Note that the bipartite graph \(\widetilde {{\mathcal G}}\) is Δregular with total n=N
Δ edges. Moreover, the following result holds for the bipartite graph \(\widetilde {{\mathcal G}}\).
Lemma
1.
(Expander mixing lemma) [31] Let \(\widetilde {{\mathcal G}}\) be the Δregular bipartite graph as described above. Then, for every \({\mathcal S} \subseteq {\mathcal V}_{0}\) and \({\mathcal T} \subseteq {\mathcal V}_{1}\), we have
$$\begin{array}{*{20}l} \left\widetilde{{\mathcal E}}({\mathcal S} \times {\mathcal T})  \frac{d {\mathcal S} {\mathcal T}}{N}\right \leq \lambda \sqrt{{\mathcal S} {\mathcal T}}, \end{array} $$
((23))
where \(\widetilde {{\mathcal E}}({\mathcal S} \times {\mathcal T})\)denotes the collection of the edges from the nodes in the set \({\mathcal S}\) to the nodes in the set \({\mathcal T}\).
Given the bipartite graph \(\widetilde {{\mathcal G}}\) and a code \({\mathcal C}_{0}\) with Δsymbol long codewords, we define a code \({\mathcal C}\) as a slight generalization of the method of Section 6.1. Each edge in \(\widetilde {{\mathcal G}}\) corresponds to a code symbol in the codewords of \({\mathcal C}\). For each node in the bipartite graph \(\widetilde {{\mathcal G}}\), the Δ code symbols associated with the Δ edges incident on the node constitute a codeword in the code \({\mathcal C}_{0}\). Note that we assume the local code \({\mathcal C}_{0}\) to be an MDS code throughout this paper. In Fig. 4, we present an algorithm which corrects any ℓ erasures in \({\mathcal C}\) an cooperative manner by contacting at most \(\ell \Delta \cdot \text {rate}({\mathcal C}_{0})\) code symbols. The algorithm alternates between the left nodes \({\mathcal V}_{0}\) and the right nodes \({\mathcal V}_{1}\) in order to utilize the smaller code \({\mathcal C}_{0}\) associated with the vertices to correct the erasures.
Let \({\mathcal S}^{1} \subseteq {\mathcal V}_{0}\) denote the set of nodes that have erasures among the code symbols associated with their edges and did not attempt to correct those erasures in the first round of the algorithm. This implies that each vertex in \({\mathcal S}^{1}\) has at least \(d_{\min }({\mathcal C}_{0})\) erasures among the code symbols associated with its Δ edges. Therefore, we have
$$\begin{array}{*{20}l} {\mathcal S}^{1} \leq \frac{\ell}{d_{\min}({\mathcal C}_{0})}. \end{array} $$
((24))
We use \({\mathcal S}^{i}\) for i≥2 to denote the set of (left or right) vertices that have erasures among the Δ code symbols associated with them in the beginning of ith round and did not attempt to correct those erasures. Note that \({\mathcal S}^{i} \subseteq {\mathcal V}_{0}\) and \({\mathcal S}^{i} \subseteq {\mathcal V}_{1}\) when i is an odd and even round of decoding, respectively. Next, we employ the expander mixing lemma (cf. Lemma 1) to show that \(\big \{{\mathcal S}^{1}, {\mathcal S}^{2}, {\mathcal S}^{3}, \ldots \big \}\) is a strictly decreasing sequence.
Lemma
2.
Let \({\mathcal S}^{1}, {\mathcal S}^{2}, \ldots \) be the sequence of sets of (left or right) vertices in the bipartite graph \(\widetilde {{\mathcal G}}\) as defined above. Assume that the minimum distance of \({\mathcal C}_{0}\) is at least (1+ε)λ and \(\ell \leq \frac {N\lambda \epsilon \delta }{2} = \frac {n\lambda \epsilon \delta }{2\Delta }\). Then, for i≥1, we have
$$\begin{array}{*{20}l} \big{\mathcal S}^{i+1}\big \leq \frac{\big{\mathcal S}^{i} \big}{1+ \epsilon}. \end{array} $$
((25))
Proof.
We prove the relation in (25) for i=1; the proof for general i involves steps similar to those in the proof of the i=1 case. Note that each code symbol that is in erasures after the first round of decoding is associated with some edge incident on a left node belonging to the set \({\mathcal S}^{1}\). By the definition of the set \({\mathcal S}^{2}\), it has at least \(d_{\min }({\mathcal C}_{0})\) erasures among the Δ code symbols associated with it after the first round of decoding. In other words, this implies that each vertex in the set \({\mathcal S}^{2}\) has at least \(d_{\min }({\mathcal C}_{0})\) edges incident on it which are emanating from the vertices from the set \({\mathcal S}^{1}\). Therefore, we have
$$\begin{array}{*{20}l} {\mathcal S}^{2}d_{\min}({\mathcal C}_{0}) &\leq \widetilde{{\mathcal E}}\left({\mathcal S}^{1} \times {\mathcal S}^{2}\right) \\ & \overset{(a)}{\leq} \frac{\Delta {\mathcal S}^{1} {\mathcal S}^{2}}{N}+ \lambda \sqrt{{\mathcal S}^{1} {\mathcal S}^{2}} \\ & \overset{(b)}{\leq} \frac{\Delta {\mathcal S}^{1} {\mathcal S}^{2}}{N} + \lambda \frac{{\mathcal S}^{1} + {\mathcal S}^{2}}{2} \\ & \overset{(c)}{\leq} \frac{\Delta \ell {\mathcal S}^{2}}{N \cdot d_{\min}({\mathcal C}_{0})} + \lambda \frac{{\mathcal S}^{1} + {\mathcal S}^{2}}{2}, \end{array} $$
((26))
where (a) and (c) follows from Lemma 1 and (24), respectively. Note that we employ the AMGM inequality to obtain (b). It follows from (26) that
$$\begin{array}{*{20}l} \left{\mathcal S}^{2}\right \leq \frac{\lambda}{2 \cdot d_{\min}({\mathcal C}_{0})  \lambda  2\Delta \ell/(N \cdot d_{\min}({\mathcal C}_{0}))}\left{\mathcal S}^{1} \right. \end{array} $$
((27))
By replacing \(d_{\min }({\mathcal C}_{0}) = \delta \Delta \) in (27), we get
$$\begin{array}{*{20}l} \left{\mathcal S}^{2}\right \leq \frac{\lambda}{2 \delta \Delta  \lambda  2\ell/(N\delta)}\left{\mathcal S}^{1} \right. \end{array} $$
((28))
Under our assumption that \(\frac {2\ell }{N\delta } \leq \epsilon \lambda \), it follows from (28) that
$$\begin{array}{*{20}l} \left{\mathcal S}^{2}\right \leq \frac{\lambda}{2 \delta \Delta  (1 + \epsilon)\lambda}\left{\mathcal S}^{1} \right. \end{array} $$
((29))
Now, under the assumption that δ
Δ≥(1+ε)λ, we get from (29) that
$$\begin{array}{*{20}l} \left{\mathcal S}^{2}\right \leq \frac{\left{\mathcal S}^{1} \right}{1 + \epsilon}. \end{array} $$
((30))
It follows from the Lemma 2 that in at most logarithmic (in ℓ) rounds of decoding, the algorithm described in Fig. 4 can correct ℓ erasures.
The codes based on the double covers of Δregular expander graphs have been studied in the coding theory literature before (see, e.g., [30]). The rate and the minimum distance of the code \({\mathcal C}\) depends on the rate and the minimum distance of the code \({\mathcal C}_{0}\). Note that \({\mathcal C}_{0}\) characterizes the local constraints associated with the vertices in the bipartite graph \(\widetilde {{\mathcal G}}\). In particular, if \(\text {rate}({\mathcal C}_{0})= R\) and \(d_{\min }({\mathcal C}_{0}) = \delta \Delta \), then we have that \(\text {rate}({\mathcal C}) \geq 2R 1\) and \(d_{\min }({\mathcal C}) \geq \delta (\delta  \frac {\lambda }{\Delta })n\) [28, 30].
As we show in this section, for an ε>0 and local code \({\mathcal C}_{0}\) such that \(d_{\min }({\mathcal C}_{0}) = \delta \Delta \geq (1 + \epsilon)\lambda \), it is possible to correct \(\ell \leq \frac {N\lambda \epsilon \delta }{2}\) erasures using the algorithm described in Fig. 4. Moreover, in the worst correction of each erasure involves contacting at most \(\text {rate}({\mathcal C}_{0})\Delta \le (1\,+\,\text {rate}({\mathcal C}))\Delta /2\) other intact code symbols (assuming that the local code \({\mathcal C}_{0}\) is an MDS code). Therefore, the codes based on the double cover of a Δregular expander graph and a local code \({\mathcal C}_{0}\) have (r,ℓ)cooperative locality for any \(\ell \leq \frac {N\lambda \epsilon \delta }{2} = \frac {n\lambda \epsilon \delta }{2\Delta }\) and \( r = \ell (1+\text {rate}({\mathcal C}))\Delta /2\), that is,
$$ \text{rate}({\mathcal C}) \ge \frac{2r}{\ell \Delta} 1. $$
In the next section, we show an explicit family of algebraic codes that exhibit very strong cooperative local repair property, as well as a very high minimum distance.