A Novel Decoding Method for the Erasure Codes

(e 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. (e 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. (e 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.


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. e 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 n−k blocks missed, the lost blocks can be recovered by the decoding method. ere are a lot of research studies about the encoding methods, while only a few studies focus on the decoding methods. e typical erasure codes are RS (Reed-Solomon) erasure code and the array codes [1,2]. e most important property for the RS erasure code [3][4][5] 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 GF(q), and it is equivalent to the matrix inversion method and has very high computational complexity. erefore, 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. e 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. e 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]. e advantage of the array codes is that the computational efficiency of the encoding and decoding is high because they are performed over GF (2), which means only the XOR operations are used in the encoding and the decoding. e typical decoding method of the array codes is the loop iterative method [9][10][11][12][13][14]; most of the array codes use it as the decoding method, such as X code [10], EVENODD code [9], and RDP code [15]. e 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].
e 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 GF(q). And, the loop iteration method can be regarded as the general decoding method for different array codes over the field GF (2). ere are only few research studies about the general decoding method for the different erasure codes over GF (2) and GF(q). e matrix decoding method in [18] over the binary field GF(2) and the merging decoding method in [7] over the field GF(2 m ) are two typical general decoding methods. e 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. e 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. e 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.

Preliminary
e finite field is an important concept in the coding theory. e 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 GF(2 m ), which is an important premising constituent of the proposed method in this paper.

e Generator Matrix and the Check Matrix.
In the (n, k) linear block code, the original information is divided into k symbols; then, the k symbols are encoded into n symbols which are called as the codeword. e (n, k) linear code of dimension k and block length n over the GF(q) is in fact a k-dimension subspace GF(q k ) of the space GF(q n ). And, the k-dimension subspace can be completely spanned by the base composed of k linear independent vectors.
Assume that the base of the subspace is shown as (1), where g i,j ∈ GF(q), i and j are integers, 0 ≤ i ≤ k − 1 and 0 ≤ j ≤ n − 1: Joint the vectors into a matrix: Suppose d is the vector about the original information symbols: Based on the property [21] that any codeword of the (n, k) linear block code can be generated by the linear combination of the base, so the codeword C � (c 0 , c 1 , . . . , c n−1 ) can be generated by multiplying the matrix G by the vector d: e n × k matrix G is called as the generator matrix. And, its rank is k, where g i,j ∈ GF(q). e generator matrix is not unique, and any n × k matrix G with rank k can be used as the generator matrix of the (n, k) linear block code.
ere is a linear relationship between the elements of C � (c 0 , c 1 , . . . , c n−1 ): e 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 H · C � 0: e matrix H 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. e 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. e basic idea of the decoding method based on the equation solving is as follows. Suppose that there are n − k symbols that are invalid in the codeword; extract the responding rows in matrix G to get the new matrix G, C � G · d, so C is the remaining k valid symbols. As any k rows of the matrix G are linear independent, so the matrix G is reversible, and the inverse matrix is denoted as G ′ . en, multiply G ′ in both sides of C � G · d, and we can get G ′ .C � G ′ .G · d. As G ′ .G � I, so the original data vector can be obtained by d � G ′ · C.

Linear Relation Matrix and Its Properties.
e 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 (n, k) 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: � a 0,0 c 0 + a 0,1 c 1 + · · · + a 0,n−1 c n−1 c 1 � a 1,0 c 0 + a 1,1 c 1 + · · · + a 1,n−1 c n−1 ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ ⋮ ⋮ c n−1 � a n−1,0 c 0 + a n−1,1 c 1 + · · · + a n−1,n−1 c n−1 Security and Communication Networks e 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.
ere are two properties about the transformation of the linear relation matrix, which are important for the proposed decoding method.

Property 1.
e 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 GF(q) [21]: □ Case 1. Multiply one row of the matrix by t, where t ∈ GF(q) and t ≠ 0; Case 2. Multiply one row of the matrix by t and add the result to another row, where t ∈ GF(q) and t ≠ 0; 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 ith row in the linear relation matrix represents the linear combination about c i , i is an integer and 0 ≤ i ≤ n − 1: Multiply the ith row by nonzero t; the ith row is changed into (t · a i,0 , t · a i,1 , . . . , t · a i,n−1 ). Multiply t in the both sides of (11): Since t is nonzero, obviously, It is clear that the ith symbol cannot be represented by the renewed ith row vector (t · a i,0 , t · a i,1 , . . . , t · a i,n−1 ), 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 t and add the result to the ith row, and the ith row is changed into (t · a j,0 + a i,0 , . . . , t · a j,n−1 + a i,n−1 ). As c j � a j,0 c 0 + a j,1 c 1 + · · · + a j,n−1 c n−1 , multiply the both sides by nonzero t and add (11), and we can get where i and j are integers and 0 ≤ i and j ≤ n − 1.
Since t ≠ 0, thus t · c j + c i ≠ c i . c i obviously cannot be represented by the row vector (t · a j,0 + a i,0 , . . . , t · a j,n−1 + a i,n−1 ), 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 c i , and it cannot be used to represent the jth symbol c j , and it is obvious that exchanging any two rows of the matrix makes it no longer a linear relation matrix.
Multiply the vector v by t 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 After multiplying the vector v by t and adding the result to ith row of W, the ith row of the renewed linear matrix becomes (a i,0 + tv 0 , . . . , a i,n−1 + tv n−1 ). As Add equation (16) to equation (11), and we can get the result: c i � a i,0 c 0 + · · · + a i,n−1 c n−1 + tv 0 c 0 + · · · + tv n−1 c n−1 .

(16)
Merge the similar items: Obviously, the row vector (a i,0 + tv 0 , . . . , a i,n−1 + tv n−1 ) is still the linear representation of the ith symbol c i . So, the renewed matrix after the row transformation is still a linear relation matrix.

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. e proposed decoding method is based on the property: for any element e i ∈ GF(q),

e Decoding Process.
Suppose that the original information is divided into k symbols, and they are encoded into n symbols c 0 , c 1 , . . . , c n−1 by the (n, k) erasure code. ere are no more than n − k failures, and the set of failure symbols is marked as F, and the decoding can be achieved by the following steps.
(1) Generate n × n unit matrix W as the linear relation matrix: (2) e n × n linear relation matrix W and the (n − k) × n check matrix H are combined into the (2n − k) × n decoding transformation matrix S: Based on the linear relation of the matrix H and W, we can know that the ith column of H and W both corresponds to c i , so the ith column of S also corresponds to c i . row of S (2n−k)×n is renewed as following: e operation of "A+ � B" is the shorthand expression of "A � A + B," which means the value of "A" is reassigned by the result of "A + B." en, delete nr j b from the set NR j . (6) After all the nr j b rows are renewed, set all the elements in the nr j a th row of S to be zero. en, delete c j from the set F. (7) Now, check whether S ∨ (n−k)×n � 0 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 S ∨ (n−k)×n � 0; 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 n × n submatrix of the renewed S (2n−k)×n 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 c k by the remaining symbols. us, c k can be recovered: where D(i, j) is the element in the ith row and the jth column of matrix D, i and j are integers and 0 ≤ i and j ≤ n − 1.
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 GF(q) 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.

Example of the
H � 7 6 5 1 0 Suppose that c 0 and c 1 are lost, F � c 0 , c 1 , and the decoding process is as follows: (1) Generate the 5 × 5 unit matrix I as the initial linear relation matrix W.
(2) Combine the matrix W 5×5 and H 2×5 to get the initial decoding transformation matrix S,  { } are greater than or equal to n, n � 5, and it satisfies the condition for the next decoding step.
e element c 0 can be deleted from F � c 0 , c 1 ; now, F � c 1 . (7) Notice that S ∨ 2×5 ≠ 0, and go to the next decoding step.
Notice that S ∨ 2×5 � 0; it means that the maximum failure tolerance of the code has been reached. F � shows that all the failures c 0 , c 1 can be recovered successfully.
e two failure symbols c 0 , c 1 can be easily decoded: e addition and the multiplication over GF(2 3 ) are operated based on the polynomial operations. At last, all the failure symbols are recovered successfully.

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 (n, k) linear block code over the finite field GF(q); after multiplying the jth row of S by t, the renewed matrix S is still the decoding transformation matrix, and the upper submatrix S ∧ n×n of the matrix S is still a linear relation matrix where q � 2 m , t ≠ 0, t ∈ GF(q), j is an integer, and n ≤ j ≤ 2n − k − 1.
Proof. Suppose that the jth row of S is a j,0 , . . . , a j,n−1 ; after the transformation, the jth row is renewed as ta j,0 , . . . , ta j,n−1 .
From the construction of the decoding transformation matrix S, since the lower part S ∨ (n−k)×n in the beginning is the check matrix H (n−k)×n , so we can get a j,0 c 0 + a j,1 c 1 + · · · + a j,n−1 c n−1 � 0, where j is an integer, n ≤ j ≤ 2n − k − 1. en, multiply the jth row of S by t: t · a j,0 c 0 + a j,1 c 1 + · · · + a j,n−1 c n−1 � t · a j,0 · c 0 + t · a j,1 · c 1 + · · · + t · a j,n−1 · c n−1 � 0. (32) where j is an integer, n ≤ j ≤ 2n − k − 1. It is obvious that the renewed jth row ta j,0 , . . . , ta j,n−1 is still can be used to check c 0 , c 1 , . . . , c n−1 . So, the renewed matrix S is still the decoding transformation matrix. And, the upper submatrix S ∧ n×n of the matrix S is still a linear relation matrix.

Theorem 2. Suppose that S is the decoding transformation matrix of the (n, k) linear block code over the finite field GF(q). After multiplying the jth row in the lower part by t and adding to the ith row, the upper submatrix S ∧ n×n of the renewed S is still a linear relation matrix
Proof. Suppose that the ith row is a i,0 , . . . , a i,n−1 ; the j th row is a j,0 , . . . , a j,n−1 after the transformation the ith row is renewed as ta j,0 + a i,0 , . . . , ta j,n−1 + a i,n−1 . We can discuss it in two cases. □ Case 4. If n ≤ i ≤ 2n − k − 1, the ith row is in the lower part of the matrix S, as the lower part S ∨ (n−k)×n in the beginning is the check matrix H (n−k)×n : a i,0 c 0 + a i,1 c 1 + · · · + a i,n−1 c n−1 � 0, a j,0 c 0 + a j,1 c 1 + · · · + a j,n−1 c n−1 � 0.
Multiply the jth row of the matrix S by t and add to the ith row; we can get ta j,0 + a i,0 c 0 + · · · + ta j,n−1 + a i,n−1 c n−1 � 0.
Case 5. If 0 ≤ i ≤ n − 1, the ith row is in the upper part of the matrix S, as the upper part of S is the linear relation matrix, so e jth row is in the lower part of the matrix S, as the lower part of the matrix S is the check matrix, so a j,0 c 0 + a j,1 c 1 + · · · + a j,n−1 c n−1 � 0. (36) Multiply the jth row in the lower part by t and add to the ith row in the upper part: ta j,0 + a i,0 c 0 + · · · + ta j,n−1 + a i,n−1 c n−1 � c i . (37) Obviously, the renewed ith row ta j,0 + a i,0 , . . . , ta j,n−1 + a i,n−1 is still the linear relationship of c i . So, eorem 2 is valid.
Based on the two basic theorems, the proof can be described as follows.

Security and Communication Networks
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 S ∧ n×n ; it is still the relation matrix and can be used to show the linear combination about the symbols.
e key transformation in the decoding process is Step 5. As in Step 4, the selected element nr j a ≥ n; then, the nr j a th row of S is multiplied by S ∧ n×n and added to the nr j b th row (b ≠ a). Since nr j a ≥ n, it satisfies n ≤ nr j a ≤ 2n − k − 1, so Step 5 is the case that the nr j a th row in the lower part of S is multiplied by t and added to the nr j b th row, t � S ∧ n×n . From eorem 2, the upper submatrix S ∧ n×n of the renewed S is still a linear relation matrix, and S ∧ n×n 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 D� S ∧ n×n .

Analysis of the Algorithm Complexity.
e complexity of the proposed method can be derived from the analysis about the decoding process. ere 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 nr j b th row of S is renewed by multiplying the nr j a th rows by t and adding to the nr j b th row. It is necessary to perform at most n multiplication operations over the finite field; suppose that there are p symbols missing, so the total multiplication operations need to be performed at most p · n times in the decoding. So, the complexity of this method is about o(p · n). e computational complexity of the equation solving method used in [6] is about O(n 3 ), and the merge decoding method used in [7] performs decoding by the inversion of the check matrix, so the complexity is also about O(n 3 ). e 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). e decoding method in EVENODD code [9], X code [10], and RDP [15] is the cyclic iteration method, and the decoding complexity is O(n log n), and the decoding method in [3] is also the cyclic iteration method, so the decoding complexity is O(n log n).
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.

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]. e decoding method in [18] is also compared with the proposed method by the typical array code. e 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.

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]. e Cauchy RS code is used as the failure tolerance method in the simulation. Suppose that the storage block size in each storage node is 14,376B. e network bandwidth is enough for the data transmission in the distributed storage system. e field GF(2 8 ) 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. e 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 EVEN-ODD 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. e 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. e 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.

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 nr j a 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 nr j a 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. e 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]. e 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. e comparison of the decoding time from 1 to 5 failure nodes is shown in Table 6.

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. e 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, E 0 � E 4 + E 6 . 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 D is changed into the following equation: So, the failure blocks can be decoded based on the decoding matrix, and E 0 � E 2 + E 6 + E 11 , E 3 � E 2 + E 8 . 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. erefore, we can know that the node 2 is the essential node for the decoding, and the decoding cannot be realized without the node 2.

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.