Abstract

The erasure codes are widely used in the distributed storage with low redundancy compared to the replication method. However, the current research studies about the erasure codes mainly focus on the encoding methods, while there are few studies on the decoding methods. In this paper, a novel erasure decoding method is proposed; it is a general decoding method and can be used both over the multivariate finite field and the binary finite field. The decoding of the failures can be realized based on the transforming process of the decoding transformation matrix, and it is convenient to avoid the overburdened visiting problem by tiny modification of the method. The correctness of the method is proved by the theoretical analysis; the experiments about the comparison with the traditional methods show that the proposed method has better decoding efficiency and lower reconstruction bandwidth.

1. Introduction

Erasure coding is a widely used method in the distributed storage system to protect against the failures of the storage nodes; it can provide better failure tolerance and much lower storage redundancy. The original information is first divided into k blocks; then, the k blocks are encoded into n blocks using the encoding method; when there are less than nk blocks missed, the lost blocks can be recovered by the decoding method. There are a lot of research studies about the encoding methods, while only a few studies focus on the decoding methods.

The typical erasure codes are RS (Reed–Solomon) erasure code and the array codes [1, 2]. The most important property for the RS erasure code [35] is that it is MDS (Maximum Distance Separable) code, which means the RS code can provide the optimal failure recovery ability in a certain data redundancy. A storage system based on the RS erasure code can achieve the optimal tradeoff between the storage redundancy and the ability of the failure tolerance. Moreover, the tolerated failures are not restricted as the fixed number as the array codes.

However, the typical decoding method of the RS code is the equation solving method [6] over the finite field , and it is equivalent to the matrix inversion method and has very high computational complexity. Therefore, many research studies make efforts to optimize the decoding computation of the RS code. Some research studies improve the decoding efficiency by developing the improved decoding method, for example, the merge decoding method in [7] can be used for RS decoding, but it is in fact the modified method of the traditional equation solving method. Some other research studies improve the decoding efficiency by speeding up the operations over the finite field, for example, a finite field operation library GF-Complete in [8] is developed by Professor James S. Plank; it can speed up the multiplication operation on the finite field by optimizing the bottom SSE instruction, but it does not make any fundamental improvement to reduce the decoding complexity. In this paper, we will improve the decoding efficiency by developing a novel decoding method, and the method of optimizing the operations over the finite field is out of the scope of our research.

The array codes are another kind of the erasure codes widely used in the storage system. Since the two-dimensional coding structure of the array code is highly compatible with the disk array layout in some storage systems, the array codes are often used in the RAID system. The array codes with MDS property can tolerate only 2 or 3 failures [9, 10], while the array codes tolerating more failures are usually non-MDS array codes [3, 11, 12].

The advantage of the array codes is that the computational efficiency of the encoding and decoding is high because they are performed over , which means only the XOR operations are used in the encoding and the decoding.

The typical decoding method of the array codes is the loop iterative method [914]; most of the array codes use it as the decoding method, such as X code [10], EVENODD code [9], and RDP code [15]. The decoding is realized by continuously selecting the generating equation with only one missing data block, and the missing data block is recovered from the renewed generating equations of the check blocks. In general, the iterative method can be used for most of the array codes constructed from the perspective of the geometry, and it cannot apply for the array codes constructed from the perspective of the algebra [16, 17].

The equation solving method in [6] not only can be used for the RS code but it also can be used for other erasure codes; it is in fact a general decoding method over the field . And, the loop iteration method can be regarded as the general decoding method for different array codes over the field . There are only few research studies about the general decoding method for the different erasure codes over and . The matrix decoding method in [18] over the binary field and the merging decoding method in [7] over the field are two typical general decoding methods. The advantage of the matrix decoding method in [18] is that the matrix inversion operation is not necessary in the decoding process, and the disadvantage is that it only can deal with the case that the invalid blocks are the original data blocks. When there are some original blocks and check blocks invalid, it needs firstly to recover the original blocks and then recalculate the lost check blocks again. It cannot decode directly to recover the check blocks directly in the decoding process. The merge decoding method in [7] can be regarded as the modified method of the traditional equation solving method in [6], which do not actually eliminate the matrix inversion operation. So the decoding performance of the method is gradually closer to the equation solving method while the failures increasingly reach the upper bound of the failure tolerance.

The organization of this paper is as follows: Section 2 is the preliminary for the proposed method. Section 3 proposes the detailed decoding process, and the proof and the analysis are also given out. And, Section 4 shows some experiments about the comparison between the proposed method and other decoding methods. At last, the conclusion is made in Section 5.

2. Preliminary

The finite field is an important concept in the coding theory. The basic concepts and important properties about the finite field can be found in [19]. In this paper, the finite field is constructed as in [20]. It has the property that the inverse element of the addition operation is itself, so the finite field used in this paper is , which is an important premising constituent of the proposed method in this paper.

2.1. The Generator Matrix and the Check Matrix

In the linear block code, the original information is divided into symbols; then, the k symbols are encoded into symbols which are called as the codeword.

The linear code of dimension k and block length n over the GF(q) is in fact a k-dimension subspace of the space . And, the k-dimension subspace can be completely spanned by the base composed of linear independent vectors.

Assume that the base of the subspace is shown as (1), where , are integers, and :

Joint the vectors into a matrix:

Suppose is the vector about the original information symbols:

Based on the property [21] that any codeword of the linear block code can be generated by the linear combination of the base, so the codeword can be generated by multiplying the matrix G by the vector d:

The matrix is called as the generator matrix. And, its rank is , where . The generator matrix is not unique, and any matrix with rank can be used as the generator matrix of the linear block code.

There is a linear relationship between the elements of :

The finite field has the property that the inverse element of the addition operation is itself [20]. So (5) can be turned into

Equation (6) can be expressed as :

The matrix is called as the check matrix, and the ith row corresponds to the check equation for the ith check symbol independently, so the different rows can be swapped. The jth column is the coefficients related to the jth symbol, so the different columns cannot be swapped because it will corrupt the linear combination relationship.

The basic idea of the decoding method based on the equation solving is as follows. Suppose that there are symbols that are invalid in the codeword; extract the responding rows in matrix G to get the new matrix , , so is the remaining valid symbols. As any rows of the matrix are linear independent, so the matrix is reversible, and the inverse matrix is denoted as . Then, multiply in both sides of , and we can get . As , so the original data vector can be obtained by .

2.2. Linear Relation Matrix and Its Properties

The linear relation matrix is an important concept in the proposed decoding method; the definition of the linear relation matrix is shown as below.

Definition 1. Linear relation matrix.
From the generation of the n symbols in the codeword of the linear block code, we can know that they can be represented as the linear combination of the n symbols, as shown in the following equation:The nonhomogeneous linear equation system is called as the linear relation equation system, and the matrix of the coefficients can be called as the linear relation matrix.
Suppose that the linear relation matrix for the linear block code is :where , are the integers, and . We can get the linear relationship of the ith symbol by the ith row vector of W.
Take the (5,3) linear code over for example; suppose that the linear relation matrix of the code is :So, we can get , , and so on.
There are two properties about the transformation of the linear relation matrix, which are important for the proposed decoding method.

Property 1. The result of any elementary row transformation on the linear relation matrix is no longer a linear relation matrix.

Proof. In this paper, we propose a novel method for the erasure codes for the storage system which is different from the replication method, so the erasure codes do not include the repetition code which is in fact the replication method; there are three cases for the elementary row transformation over [21]:

Case 1. Multiply one row of the matrix by , where and ;

Case 2. Multiply one row of the matrix by and add the result to another row, where and ;

Case 3. Exchange any two rows in the matrix.
For the three row transformation cases, if the transformed matrix is still the relation matrix or not is discussed, respectively.
For Case 1, from the definition of the linear relation matrix, the th row in the linear relation matrix represents the linear combination about , is an integer and :Multiply the ith row by nonzero ; the ith row is changed into . Multiply t in the both sides of (11):Since is nonzero, obviously,It is clear that the ith symbol cannot be represented by the renewed ith row vector , so we can derive that multiplying the row of the matrix by nonzero t makes the matrix no longer a linear relation matrix.
For Case 2, multiply the jth row of the matrix by nonzero and add the result to the ith row, and the ith row is changed into . As , multiply the both sides by nonzero and add (11), and we can getwhere and are integers and .
Since , thus . obviously cannot be represented by the row vector , so the transformed matrix in Case 2 will not be a linear relation matrix.
For Case 3, from the definition of the linear relation matrix, the ith row of the matrix represents the ith symbol , and it cannot be used to represent the jth symbol , and it is obvious that exchanging any two rows of the matrix makes it no longer a linear relation matrix.

Property 2. For the vector , if , . Multiply the vector by and add the result to ith row of the linear relation matrix W, and it is still a linear relation matrix.

Proof. From the definition of the linear relation matrix, the ith row vector is the linear combination of ,.
After multiplying the vector by and adding the result to ith row of W, the ith row of the renewed linear matrix becomes .
As , so we can know thatAdd equation (16) to equation (11), and we can get the result:Merge the similar items:Obviously, the row vector is still the linear representation of the th symbol . So, the renewed matrix after the row transformation is still a linear relation matrix.

3. The Proposed Decoding Method for the Erasure Codes

In this paper, we will propose a novel decoding method mainly for the erasure codes in the storage system, such as RS code and array codes. The proposed decoding method is based on the property: for any element , , where , m is a positive integer.

3.1. The Decoding Process

Suppose that the original information is divided into k symbols, and they are encoded into n symbols by the erasure code. There are no more than failures, and the set of failure symbols is marked as F, and the decoding can be achieved by the following steps.(1)Generate unit matrix as the linear relation matrix:(2)The linear relation matrix and the check matrix are combined into the decoding transformation matrix S:Based on the linear relation of the matrix H and W, we can know that the th column of H and W both corresponds to , so the ith column of S also corresponds to .(3)Select the failed symbol from F, j is an integer and . Find the nonzero elements in the jth column in , and suppose that there are t nonzero elements, and the row indexes of the nonzero elements are denoted as the set , .(4)If there exists the elements greater than or equal to n in the set , the first element is , , and go to the Step 5; otherwise, it indicates that the symbol cannot be recovered.(5)For each element in except , , the row of is renewed as following:The operation of “” is the shorthand expression of “,” which means the value of “” is reassigned by the result of “.Then, delete from the set .(6)After all the rows are renewed, set all the elements in the th row of S to be zero. Then, delete from the set F.(7)Now, check whether or not; if yes, it means that the decoding process is terminated. If not, continue to execute the decoding operation.(8)Repeat Step 3 to Step 7 until ; if all the elements in the set F are deleted, it means all the failure symbols can be recovered successfully. If there are still some elements in the set F, it means that these symbols cannot be recovered.(9)In the last step, the upper submatrix of the renewed is still a linear relation matrix, and it can be used as the decoding matrix D. So, the kth row of the matrix D is the coefficients about the linear combination of the lost symbol by the remaining symbols. Thus, can be recovered:where is the element in the th row and the th column of matrix D, and j are integers and .

Based on the matrix transforming process about the decoding transforming matrix, the lost symbols deleted from the set F in (6) can be recovered over no matter they are the original data symbols or the check symbols. If all the symbols are deleted from F, all the lost symbols can be recovered; if not, we also can know which part of symbols can be recovered.

3.2. Example of the Decoding

A erasure code over is constructed based on the Cauchy matrix, the original information , and encoded into 5 symbols , and the generator matrix G and the check matrix H are shown as follows:

Suppose that and are lost, , and the decoding process is as follows:(1)Generate the unit matrix I as the initial linear relation matrix W.(2)Combine the matrix and to get the initial decoding transformation matrix S,(3)Select the first element in the set F. Find all the elements in the first column of S, and the row indexes of the nonzero elements are .(4)There are two elements are greater than or equal to n, , and it satisfies the condition for the next decoding step.(5)Select the first element in , and , so for other elements except 5 in , execute the operations on the 0th and 6th row of S as follows:Then, the element 0 and 6 are deleted from .(6)After the two rows are renewed, set all elements in the 5th row to be zero in the matrix S:The element can be deleted from ; now, .(7)Notice that , and go to the next decoding step.(8)Select the next element from F, and find out the nonzero elements in 1st column, .There is one element 6 which is greater than n, , so for other elements , perform the operation on the 0th and 1st row of S:Then, the element 0 and 1 are deleted from . And, all the elements in the 6th row are set to be zero. The element can be deleted from ; now, :Notice that ; it means that the maximum failure tolerance of the code has been reached. shows that all the failures can be recovered successfully.(9)Now the upper submatrix of the renewed matrix S can be used as the decoding matrix D:

The two failure symbols can be easily decoded:

The addition and the multiplication over GF(23) are operated based on the polynomial operations. At last, all the failure symbols are recovered successfully.

3.3. Proof
3.3.1. Proof of the Method

In this section, we will give out two basic important theorems, and the correctness of the proposed method can be proved based on the theorems.

Theorem 1. Suppose that S is the decoding transformation matrix of the linear block code over the finite field ; after multiplying the th row of S by t, the renewed matrix S is still the decoding transformation matrix, and the upper submatrix of the matrix S is still a linear relation matrix where , , , is an integer, and .

Proof. Suppose that the jth row of S is ; after the transformation, the jth row is renewed as .
From the construction of the decoding transformation matrix S, since the lower part in the beginning is the check matrix , so we can getwhere j is an integer, .
Then, multiply the th row of S by t:where j is an integer, .
It is obvious that the renewed jth row is still can be used to check . So, the renewed matrix S is still the decoding transformation matrix. And, the upper submatrix of the matrix S is still a linear relation matrix.

Theorem 2. Suppose that S is the decoding transformation matrix of the linear block code over the finite field . After multiplying the th row in the lower part by t and adding to the th row, the upper submatrix of the renewed S is still a linear relation matrix, where , , , i and are integers, and .

Proof. Suppose that the ith row is ; the j th row is after the transformation the ith row is renewed as . We can discuss it in two cases.

Case 4. If , the ith row is in the lower part of the matrix S, as the lower part in the beginning is the check matrix :Multiply the th row of the matrix S by t and add to the ith row; we can getThe renewed ith row still can be used as the check relationship for .

Case 5. If , the ith row is in the upper part of the matrix S, as the upper part of S is the linear relation matrix, soThe jth row is in the lower part of the matrix S, as the lower part of the matrix S is the check matrix, soMultiply the th row in the lower part by t and add to the th row in the upper part:Obviously, the renewed ith row is still the linear relationship of . So, Theorem 2 is valid.
Based on the two basic theorems, the proof can be described as follows.

Proof. In the proposed decoding method, the initial decoding transformation matrix is generated by joining the linear relation matrix W with the check matrix H; in Step 9, the upper part of S is the decoding matrix which is used to decode to recover the lost symbols.
So the key point to prove the correctness of the method is that, how to make sure the matrix transformation will not corrupt the property of the renewed upper matrix ; it is still the relation matrix and can be used to show the linear combination about the symbols.
The key transformation in the decoding process is Step 5. As in Step 4, the selected element ; then, the row of is multiplied by and added to the row ().
Since , it satisfies , so Step 5 is the case that the row in the lower part of is multiplied by t and added to the row, t =  . From Theorem 2, the upper submatrix of the renewed S is still a linear relation matrix, and still can be used to show the linear relationship about the symbols, so in Step 9, we can decode to get the lost symbols by using the decoding matrix .

3.3.2. Analysis of the Algorithm Complexity

The complexity of the proposed method can be derived from the analysis about the decoding process. There are addition and multiplication operations over the finite field in the decoding because the multiplication over the finite field is much more time-consuming than the addition operation, so the complexity is generally evaluated by the multiplication operations.

Most of the multiplication operations are executed in Step 5; the row of S is renewed by multiplying the rows by t and adding to the row. It is necessary to perform at most multiplication operations over the finite field; suppose that there are symbols missing, so the total multiplication operations need to be performed at most times in the decoding. So, the complexity of this method is about .

The computational complexity of the equation solving method used in [6] is about , and the merge decoding method used in [7] performs decoding by the inversion of the check matrix, so the complexity is also about . The complex of the matrix method in [18] is O(M2), where M is the number of the ones in the row, M < n, so the complexity of the method is O(n2). The decoding method in EVENODD code [9], X code [10], and RDP [15] is the cyclic iteration method, and the decoding complexity is , and the decoding method in [3] is also the cyclic iteration method, so the decoding complexity is .

From the complexity analysis and the comparison between the different methods, we can see that the complexity of the proposed method is nearly linear, and it is lower than other methods.

Furthermore, there is another point in the proposed decoding method that is beneficial to improve the decoding efficiency and not as the decoding methods in [11, 15]; when the lost symbols contain both the original data symbols and the check symbols, it is necessary to recover the original symbols first and then perform the multiply operation by using the check matrix to get the lost check symbols. In contrast, the proposed method can decode to get the original data symbols and the check symbols directly, and it is not necessary to recalculate to get the lost check symbols after the decoding process, so the decoding efficiency can be further improved.

4. Experiments and Analysis

In this section, some experiments about the evaluation of the decoding performance of different decoding methods are given out by simulation.

As we all know, there are two typical kinds of erasure codes, RS code, and array codes, so the proposed decoding method is compared with the decoding methods for different kinds of erasure codes.

For the RS code, the proposed decoding method is compared with the equation solving method in [6] and the merge decoding method in [7]. For the array codes, the proposed decoding method is compared with the loop iteration method in X code [10], EVENODD code [9], RDP code [15], and iteration decoding method in the slope code [3]. The decoding method in [18] is also compared with the proposed method by the typical array code.

The reconstruct bandwidth is another advantage of the method by tiny modification. To evaluate the reconstruction bandwidth, the comparison of the performance of different array codes is given out.

At last, the strategy of involved nodes in the decoding to reduce the burden is proposed.

4.1. Time Efficiency of Failure Recovery

For RS erasure codes, we will compare our method with the equation solving method in [6] and the merge decoding method in [7]. The Cauchy RS code is used as the failure tolerance method in the simulation.

Experiment 1. Suppose that the erasure code is CRS (4,8) erasure code over ; there are 8 independent storage nodes, including 4 original data nodes and 4 check nodes, and it is clear that it can tolerate at most 4 failures.
Suppose that the storage block size in each storage node is 14,376B. The network bandwidth is enough for the data transmission in the distributed storage system. The field is constructed by using the method in [20].
Assume that there are 1, 2, 3, and 4 nodes’ failures in the storage system, respectively. We will decode by using the equation solving method in [6], the merge decoding method in [7], and the proposed decoding method. The comparison of time consumption is shown in Table 1.
From the table, we can see that the decoding performance of the proposed method is much better than both the merge decoding method and the equation solving method. And, the decoding time of the merge decoding method in [7] is lower than the equation solving method in [6] when there is one node failure, but the decoding time is higher in the case of multiple nodes’ failure.
For the array codes, the most common decoding method is the cyclic iteration method, so the proposed method is compared with the cyclic iteration method in Experiments 2 and 3.
In Experiment 2, the proposed decoding method is compared with the iteration decoding method for EVENODD code [9], X code [10], and RDP code [15].

Experiment 2. For EVENODD code [9], X code [10], and RDP code [15], use the proposed method and the cyclic iteration method as the decoding method, respectively. Assume that the file size is 1,228,800B and the maximum storage block size of each storage node is 10,240 bits. The decoding performance about the different methods is shown in Table 2.
From the table, we can see that the time efficiency in the decoding using our method is better than the method in [9, 10, 15].

Experiment 3. For the slope code [3], suppose that the strip size is 4 and the maximum failure tolerance is 4. From the construction of the slope code, there are 26 storage nodes including 13 data information nodes and 13 check information nodes. Suppose that the file size is 1,261,568B and the block in each storage node is 10,240B. Assume that the failure is from 1 to 4; use the cyclic iteration method and the proposed method as the decoding method for the different failure cases; the comparison of decoding efficiency is shown in Figure 1.
From this figure, we can know that the decoding efficiency of the proposed method in this paper is better than the traditional cyclic iteration method for the slope code.

Experiment 4. In this experiment, the decoding efficiency performance between the method in [18] and the proposed method is compared.
Take EVENODD code as the failure tolerance method. Suppose that the data size of each storage node is 10800B, and the decoding efficiency about one node failed is shown as Table 3.
The decoding efficiency when there are two nodes failed is shown in Table 4.
From the tables, we can see that the decoding efficiency of the proposed method is little better than the method in [18] when there is one node failed, but the decoding efficiency is much better when there are two nodes failed.
From the comparisons among the different decoding methods for RS codes and the array codes, we can draw the conclusion that the decoding efficiency of the proposed method is better than the other methods.

4.2. Reconstruction Bandwidth

In the distributed storage system based on the (n, k) erasure code, there will be a lot of data need to be transmitted even only one node is failed, which is called as the reconstruction bandwidth problem. So how to effectively reduce the amount of data transmitted is a hot topic in the distributed storage. Based on the basic idea of the regenerating code [22], our method can reduce the reconstruction bandwidth only by tiny modification.

It only needs to add a judgment condition in Step 4 of the proposed method. When we select the in Step 4, the element with the highest repetition rate of data blocks involved in the decoding will be selected. In other words, for every selection of in the decoding, the row with the lowest hamming weight is selected.

Experiment 5. For the array codes including the EVENODD code [9], the X code [10], the RDP code [15], and the slope code [3], use the proposed method and the iteration method in [3, 9, 10, 15] as the decoding method. Assume that the file size is 1,261,568B, and the block size of each storage node is 10,240 bits. The comparison of the amount of data transmitted is shown in Figure 2, where the EVENODD code, the X code, and the RDP code are constructed based on the prime number 7.
From the figure, we can see that the number of the data blocks need to transmit in the proposed method for different erasure codes is lower than the iteration method in [3, 9, 10, 15].
The comparison of the decoding time is shown as Figure 3, as the decoding complexity of the proposed method is lower than the cyclic method, and the amount of data transmitted in the decoding is less than the cyclic method, so from the figure we can see that the decoding efficiency of the proposed method is also better than the other methods.

Experiment 6. In the experiment, we will evaluate the reconstruction bandwidth and the recovery performance while the failed nodes are increased.
Suppose the distributed storage system is based on the slope code, the strip size is 5, and the maximum failure tolerance is 5. Assume the file size is 1,261,568B and the block size in each storage node is 10,240 bits; use the cyclic iteration method in [3] and the proposed method as the decoding method, and the transmitted data blocks required for the data reconstruction from 1 to 5 failures are shown in Table 5.
Obviously, the proposed method can reduce the amount of transmitting data in the decoding, which can also improve the decoding efficiency. The comparison of the decoding time from 1 to 5 failure nodes is shown in Table 6.

4.3. Design of Involved Nodes for Data Recovery

In the distributed storage system, it is possible that some nodes are visited frequently in a period of time, and it will undoubtedly increase the access burden of these overheated nodes and lead to the low efficiency. In the proposed method, it can dynamically select the involved nodes in the decoding to avoid the excessively visiting overheated nodes.

Take the slope code as the example, assume that the strip size is 2 and the maximum failure tolerance is 2. The stripe of the slope code is shown in Figure 4; in each strip, the first 3 blocks are the data blocks and the last 3 blocks are the parity blocks, and the layout of all the blocks is shown in Figure 4.

According to the definition of the slope code, the check matrix H of the slope code is shown as (38). Assume the node 1 is failed, so the blocks {0, 3} in node 1 are invalid, and the decoding matrix D based on the decoding method in this paper is shown as (39):

From the decoding method in this paper, the failure blocks can be recovered by using the decoding matrix D,. It shows that the nodes {1, 2, 3, 4} will participate in the decoding of the failure blocks {0,3} based on the blocks’ layout, as shown in Figure 4.

If the node 1 is visited frequently, to avoid visiting the node 1, we can assume that the node 1 is also failed, so the blocks {1, 4} in the node 1 are failed. Now, there are four blocks {0, 3, 1, 4} that failed, so the decoding matrix is changed into the following equation:

So, the failure blocks can be decoded based on the decoding matrix, and , . We can find that the nodes {2, 3, 4, 5} will participate in the decoding of the blocks {0, 3}, and the node 1 will not be involved in the decoding.

Furthermore, if the node 1 and 2 are overheated, we continue to assume that the node 1 and 2 are failed, so the six blocks {0, 1, 2, 3, 4, 5} are failed. In this situation, there is no valid decoding matrix that can be found. Therefore, we can know that the node 2 is the essential node for the decoding, and the decoding cannot be realized without the node 2.

5. Conclusion

In this paper, the novel decoding method for the erasure codes is proposed, and it is a general decoding method to improve the decoding efficiency for different kinds of erasure codes over different finite fields. It is easy to get the linear combination of the failure symbols by other valid symbols by the simple matrix transformation of the decoding transformation matrix. For the RS codes over the binary extension field, the proposed method can eliminate the matrix inversion in the decoding, so the decoding efficiency is greatly improved. For the array codes, the proposed method is still useful for the XOR-based array codes over GF(2) to improve the decoding efficiency. Furthermore, the proposed method can effectively reduce the repair bandwidth for the array codes in the data reconstruction compared with the classical iteration method by tiny modification. Another improved strategy can be realized by dynamically planning the valid nodes that are involved in the decoding to lighten the overburdened storage nodes.

Data Availability

No data were used to support the findings of the study.

Conflicts of Interest

The authors declare that there are no conflicts of interest.

Acknowledgments

This work was supported by Sichuan Province Science and Technology Support Program (China), nos. 2020YF0230, 2020YFG0150, and 2020YFG0294.