1. Field of the Invention
The invention relates to distributed network storage, in particularly to encoding, data-restructuring and repairing of projective self-repairing codes.
2. Description of the Related Art
Network storage systems have garnered special attention in the recent past. Storage system may be of different types, such as, special infrastructure system which is built on P2P distributed memory system, data center, and storage area network. In a distributed memory system, there is usually storage node failure or document transmission loss; hence the network storage system must have redundancy. Redundancy can be realized through simple replicated data, although its storage efficiency is not high.
Erasure codes can provide an effective storage scheme which is different from the previous reproduction. A (n, k) MDS (Maximum Distance Separable) erasure code needs to divide an original file into “k” equal modules and generate “n” unrelated encoding modules through linear encoding. “n” nodes will store different modules and meet MDS attributes (any “k” modules among the “n” encoding modules can restructure the original file). Such encoding technique plays an important role in providing effective network storage redundancy, and it is particularly suitable for storage of large files and data backup of records.
However, owing to node failure or document loss, the system's redundancy may gradually disappear over time; hence, a solution is desired to ensure system redundancy. The EC (erasure codes) mentioned in the literature [R. Rodrigues and B. Liskov, “High Availability in DHTs: Erasure Coding vs. Replication”, Workshop on Peer-to-Peer Systems (IPTPS) 2005.] is effective in storage overhead; however, the communication overhead required for redundancy recovery is also very large. Prior art FIG. 1 illustrates that, as long as the number of valid nodes d≧k in the system, the original file can be obtained from the existing nodes. Prior art FIG. 2 illustrates the process in which information stored in failure nodes is recovered. Referring to the prior art figures, the process of recovery includes downloading data from k storage nodes in the system to restructure the original file; then the original file recode new modules and store them in new nodes. This recovery process shows that the network load required for repairing any one failure node is at least the contents stored in k nodes.
Prior art FIG. 3 describes the reproduction process after the failure of one node. The “n” storage nodes in the distributed system store “α” data respectively. After the failure of one node, new nodes can reproduce through downloading data from other d≧k live nodes. The download volume of each node is “β”. Each storage node “i” can be represented by a pair of nodes Vini, Vouti. The pair of nodes are connected through an edge of which the volume is the memory capacity of this node (namely α). The reproduction process is described by an information flow chart. Xin collects β data respectively from any d useable nodes in the system, and stores α data in Xout through
All receivers can access Xout. The maximum information flow from the information source to the information destination is determined by the minimum cutset in the figure; when the information destination needs to restructure the original file, the size of this flow cannot be smaller than the size of the original file.
In view of the foregoing discussion, a solution is desired for encoding, data-restructuring and repairing projective self-repairing codes which has fewer storage nodes for storing data and smaller bandwidth for data repairing.
The technical proposal adopted in the invention to solve the technical problem is to structure an encoding method for the projective self-repairing codes used in the distributed storage system, including the following steps:
A) Dividing the original data with a size of B=2p equally to C parts, with the size of each part being B/C; wherein, P is the positive integer, C=2C, c is the positive integer smaller than p; each data can be represented as Bi, i=1, 2, . . . , C; after the equal division.
B) Setting the base finite field F2 and the second finite field F2
C) Dividing the space constituted by B/C-dimensional vectors in the second finite field F2
subspaces using its subgroup coset. B/C subspaces are chosen from the
subspaces, with each selected subspace corresponding to one storage node, thus B/C storage nodes can be obtained.
D) Representing each subspace using the mutually independent t+1 vectors in the base finite field, and each storage node can store t+1 vectors of the base finite field; the data storage volume is α=Cα1; wherein, α1=t+1, C is the number of equal division; the t+1 vectors of one subspace are one row vector of the encoding matrix; vectors in the B/C subspaces arrange to make the encoding matrix; the data set obtained from one row of vector of the encoding matrix multiplied by the equally divided data blocks respectively is the data set stored in one storage node.
E) Obtaining the encoding data stored in each storage node according to the encoding vectors of each storage node and storing the encoding data in the storage node. More specifically, the multiplicative group of the second finite field F2
w is the generating element of the multiplicative group F*2
Moreover, the step C) further includes:
C1) Obtaining the multiplicative group F*2
C2) Using the coset waF*2
subspace.
C3) Choosing B/C subspaces from the subspaces and make each subspace selected correspond to one storage node.
Further, the step D) further includes the following steps:
D1) Obtaining matrix gate T from the t+1 dimensional projective subspace. The matrix gate T is M×α1 matrix gate, wherein M is the number of matrix row,
α1 is the queue of the matrix gate T, the elements in each row are the t+1 mutually independent elements in each coset waF*2
D2) Choosing the first B/C rows of the matrix gate T to obtain the encoding matrix T′; elements in one row of the encoding matrix T′ are the encoding vectors of one storage node.
More specifically, the step E) further includes:
Integrating the data stored in the k storage node one by one as {BiV(k−1)α
The invention also relates to a method for restructuring data in the storage system which adopts the encoding method of the projective self-repairing codes, including the following steps:
I) Choosing C storage nodes arbitrarily in B/C storage nodes; wherein, C is the number of equal division during the encoding of the original data, and B is the size of the original file;
J) Downloading the data from the node selected and restructure the data according to its encoding vectors;
K) Determining whether the data reconstruction has been finished; if so, exit from the data reconstruction; otherwise, carry out the next step;
L) Choosing any one storage node from the unselected storage nodes, thus there will be one more selected storage node, and then return to step J).
More specifically, the step J) further includes obtaining the encoding vectors of the storage nodes selected from the server respectively, or obtaining the encoding vectors of the selected storage nodes from them.
The invention also relates to a method for repairing invalid storage nodes in the storage system which adopts the encoding method of the projective self-repairing codes, including the following steps:
M) Confirming a storage node has become invalid and obtain the encoding vectors of the storage node from the server.
N) Choosing any valid storage node and obtain its encoding vectors.
O) Obtaining the other storage node relating to the selected storage node, and obtain the encoding vectors of the invalid storage node through the encoding vectors of the selected storage node and the other storage node.
P) Downloading the data of the selected storage node and its relating storage node, and obtain the data of the invalid storage node according to these data and store the data in a new storage node to finish the data recovery.
More specifically, in the step O), the encoding vectors of the selected storage node plus the encoding vectors of the other storage node equals to the encoding vectors of the invalid storage node.
More specifically, in the step P), the data stored in the selected storage node and the relevant storage nodes are reconstructed to obtain the data stored in the invalid storage node.
Implementation of the encoding, data reconstruction and repairing method of projective self-repairing codes of the invention has the following beneficial effects: The second finite field obtained according to the data size of the original data and the number of data blocks divided is divided into several subspaces, and B/C subspaces are selected, with each selected subspace corresponding to a storage node; the encoding data of the storage node is determined, and the encoding data stored in each storage node all include each data block divided equally in the original file. When repairing the failure node, the data stored in the invalid storage node can be obtained by choosing any one storage node, finding the storage nodes that correspond to the selected storage node, and then downloading the data of these storage nodes and restructuring these data. Therefore, its calculation is simple and the overhead is less.
The following detailed description includes references to the accompanying drawings, which form part of the detailed description. The drawings show illustrations in accordance with example embodiments. These example embodiments are described in enough detail to enable those skilled in the art to practice the present subject matter. However, it will be apparent to one of ordinary skill in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures and components have not been described in detail so as not to unnecessarily obscure aspects of the embodiments. The embodiments can be combined, other embodiments can be utilized or structural and logical changes can be made without departing from the scope of the invention. The following detailed description is, therefore, not to be taken as a limiting sense.
In this document, the terms “a” or “an” are used, as is common in patent documents, to include one or more than one. In this document, the term “or” is used to refer to a nonexclusive “or,” such that “A or B” includes “A but not B,” “B but not A,” and “A and B,” unless otherwise indicated.
Referring to the figures, and more particularly to
The concept of projective space will be introduced at this point to enable easier understanding of subsequent portions of the description.
Considering the finite field of q order is Fq, and q is the power of prime integer p, the m dimensional vector in the finite field is represented as PG (m−1, q), and the vector is called a projective space. All vectors involved in this paper are row vectors.
Projective space is defined in such a way that, in the n-dimension affine space kn in the field k, the set constituted by all straight lines passing through the origin is called the projective space of field k. Here, the field k can be a complex field, and so on. From the basic mathematics concept, one coordinate system corresponds to one affine space. Linear transformation is required when the vector changes from one coordinate system to the other coordinate system. For a point, the affine transformation is required.
Suppose P is the projective space, t-stretch of the projective space P is the t dimensional subspace of projective space P, and the set of t dimensional subspace is S, and the set divides the projective space P into several t dimensional subspaces, then, each point in the projective space P only belongs to one t dimensional subspace in the set S.
If P=PG (m−1, q) is a finite projective space, t-stretch can exist on condition that the number of points in t dimensional subspace can divide the number of points in the whole space exactly, namely,
so (qt+1−1)|(q−1), and the necessary and sufficient condition for this formula is (t+1)|m. If and only if (t+1)|m, t-stretch exists in the projective space P=PG(m−1, q).
The system construction of the stretch can be obtained through the expansion of the following finite field. Let's suppose (t+1)|m and consider the base finite field F0=Fq, the first finite field F1=Fq
In a distributed memory system, the size of the file is B and the file is stored in n storage nodes, with the size in each node being α. When a node becomes invalid, d nodes from the rest (n−1) nodes will be connected, and β data will be downloaded from d nodes respectively. PPSRC (n, k) is used to represent the practical self-repairing code; wherein, n is the number of storage nodes, and k is the number of nodes needed to be downloaded for reconstructing the original data.
In step S42, the base finite field, first finite field and second finite field with a protective relation are set, wherein the order of the second finite field is 2B/C. In this step, the base finite field F0 is set as F2, and the second finite field F2 is set as F2
In step S43, the coset of the subgroup is used to divide the projective space, and B/C subspaces are selected to correspond to the storage nodes. In this step, the subgroup coset of the space constituted by B/C-dimensional vectors of the second finite field F2, namely F2
subspaces. B/C subspaces is chosen from the
subspaces, with each selected subspace corresponding to one storage node, thus B/C storage nodes can be obtained. If the space constituted by (B/C) dimensional vectors is the space P, the projective subspace set is S, formed by the t dimensional subspace of space P, wherein (t+1)|B/C and (2t+1−1)|(2B/C−1). Each subspace of the space P is the (t+1) dimensional vector space F2
storage nodes have some unnecessary redundant nodes, B/C nodes are selected from
as the storage node of PPSRC.
In this embodiment, more specifically, this step can be further divided into the steps of: obtaining the multiplicative group F*2
using the coset waF*2
subspace and choosing B/C subspaces from the subspaces and make each subspace selected correspond to one storage node.
Suppose the generator polynomial of the finite field F2
The multiplicative group of the finite field F2
The number of different cosets of subgroup H in group G is called the index of H in G, expressed as [G:H].
According to the Lagrange's theorem, suppose H is the subgroup of finite group G, then |G|=|H|·[G:H], and the index [G:H] is the number of coset of H in G.
The number of element of subgroup F*2
Therefore, when choosing the projective subspace of space P during the structuring of the code word, one condition is (2B/C−1)|(2t+1−1). In
the representative element of each coset is wa, a=0,
An encoding matrix can be obtained in step S44. One row of element of the encoding matrix is the encoding vectors of one storage node. In this step, if t+1 mutually independent vectors of the base finite field are used to represent each subspace, then each storage node can store t+1 vectors of the base finite field. The data storage volume is α=Cα1, wherein α1=t+1, C is the number of equal division. The t+1 vectors of one subspace are one row vector of the encoding matrix. Vectors in the B/C subspaces arrange to make the encoding matrix. The data set obtained from one row of vector of the encoding matrix multiplied by the equally divided data blocks respectively is the data set stored in one storage node.
In this embodiment, this step can be further divided into obtaining matrix gate T from the t+1 dimensional projective subspace. The matrix gate T is M×α1 matrix gate, wherein, M is the matrix row,
α1 is the queue of the matrix gate T, the elements in each row are the t+1 mutually independent elements in each coset waF*2
Generally speaking, during the structuring of PPSRC in this embodiment, there are
cosets in all, and each coset has (2(t+1)−1) elements, wherein there are (t+1) mutually independent elements. (t+1) mutually independent elements in each coset wa<v> are being chosen as the encoding vectors of (d+1) storage nodes, where a=0,
All (t+1) dimensional projective subspaces constitute the encoding matrix T(M×α1), wherein
For any 1≦/≦α1 and positive integer k which is not bigger than M, the k row l queue of the encoding matrix T can be obtained through XOR from several elements of the first B/C elements of the l queue vector of T, namely,
For any wj, j is an arbitrary integer number. The generator polynomial of the finite field is
so we have
In other words, representative elements wa, a=0,
of each coset can be expressed as the addition of several elements in representative elements
of the coset. Therefore, all elements of the coset wa<v> can be expressed as the addition of several elements of coset wj<v>, j=1, 2, . . . , (B/C−1).
When structuring PPSRC, the front B/C rows of matrix gate T are chosen as the encoding matrix of the storage node. The encoding matrix T′ is:
Elements of any queue of the encoding matrix T′ are mutually independent.
The first queue elements of the encoding matrix T′ are the representative elements of B/C cosets. Apparently, representative elements of these cosets are mutually independent. The l queue elements of the encoding matrix are obtained from the first queue element multiplied by WLM, 1≦l≦α1,
Therefore, the l queue elements of the encoding matrix are also mutually independent.
In step S45, the encoding data stored in each storage node are obtained and stored in the storage node. In this step, the encoding data stored in each storage node is obtained according to the encoding vectors of each storage node and store the encoding data in the storage node. In this embodiment, V={V1, V2, . . . VB/C} is made as the vector set of nα1 stored in n storage nodes, wherein
V
1
={V
α
}
is the vector stored in the first node,
V
2
={V
a
+1
,V
2a
}
is the vector stored in the second node, and thus the vectors stored in other nodes can be obtained. The data size α=Cα1 stored in the k node is {BiV(k−1)α
The embodiment also relates to a method for restructuring data in the distributed network storage system which adopts the encoding method, which includes the steps S61, S62, S63, S64 and S65.
Step S61: In this step, C storage nodes are selected randomly from B/C storage nodes which store the encoding data of storage file. Here, C is the number of equal division of the original data in encoding, and B is the size of the original file. When downloading the queue 1 encoding data of Bi structure code, i=1, C, 1≦1≦α1, there are (t+1)c choices. Any queue of elements of the encoding matrix are mutually independent, and in each queue, there are M′=B/C elements, so M′ original data can be decoded, and the original data can be restored through downloading the structure code word Bi, i=1, . . . , C of queue C.
Step S62: In this step, the data of the selected storage nodes i being downloaded respectively and the storage file is restructured according to the encoding vectors of these storage nodes. In the embodiment, the encoding vectors of the selected storage nodes are obtained respectively from the server. In some circumstances, the encoding vectors can also be obtained from the selected storage nodes.
Step S63: In this step, whether the restructuring file has been finished is being judged, that's to say, whether the file has been restructured. If so, step S64 is executed otherwise, the method skips to step S65.
Step S64: In this step, the method exits from the data restructuring. The stored file has been obtained in this step.
Step S65: In this step, another node is selected from the storage nodes which are not selected The file data have not been restructured using the data downloaded from the selected storage nodes, so one storage node is selected from those not selected, so that there is one more storage node selected, and then skip to step S62.
The embodiment also relates to a method for repairing invalid storage nodes in the distributed network storage system which adopts the encoding method, which includes the steps S71, S72, S73 and S74.
Step S71: The storage node has become invalid and the encoding vectors of the storage node are obtained. In this step, in order to confirm a storage node has become invalid, the data stored in the storage node need to be repaired and stored to another storage node; In the meantime, the encoding vectors of the storage node are obtained from the server.
Step S72: Any valid storage node is chosen and its encoding vectors are obtained. Any one node from the invalid storage nodes is chosen and at the same time, the encoding vectors of the storage node are obtained from the server.
Step S73: The storage nodes relating to the selected storage node are being searched: In this step, the encoding vectors of at least one storage node relating to the selected storage node is obtained through the calculation of the encoding vectors of the invalid storage nodes and selected storage node, and then the storage nodes corresponding to these encoding vectors are searched on the server; In this step, XOR operation is adopted. In the embodiment, “relating to the selected storage node” means addition of the encoding vectors of the selected storage node and the other storage node relating to it equals to the encoding vectors of the invalid storage nodes.
Step S74: The data of the selected storage node and its relating storage node is downloaded to obtain the data stored in the failure nodes and the data is stored. In this step, the data stored in the selected storage node and its relevant storage node is downloaded and restructured according to their corresponding encoding vectors (including the encoding vectors of the invalid storage nodes, selected storage node and the related storage node), to obtain the data stored in the failure nodes and the data is stored in a new storage node.
In the PSRC (n, k) of this embodiment, when the data size lost from one storage node is a, one datum can be downloaded from (a+1) storage nodes at most, and the repaired bandwidth is a+1.
Its observed from the repairing process of PSRC that one invalid datum can be restored through choosing the datum of one node and downloading one datum of the other node accordingly. Suppose the encoding vector of the data lost from one node is vi, v2, . . . , va, the encoding vector u1 of one node and the encoding vector u2 of the other corresponding node can be selected arbitrarily, and make v1=u1+u2. Then, choose one encoding vector for repairing v2 is u2 and its corresponding encoding vector u3, and make v2=u2+u3. Similarly, v3=u3+u4, . . . va=ua+ua+1. Therefore, for repairing encoding vector v1, v2, . . . , va, encoding vectors (u1, U2, . . . , Ua+1) from at most (a+1) storage nodes are downloaded, and the repaired bandwidth is a+1. v1, v2, . . . , va(ui, u2, . . . , ua+1)
The node of PPSRC (n, k) is B/C, and it does not fit for the above repairing process. However, generally speaking, for the lost data v1, v2, . . . , va of PPSRC (n, k), the repaired bandwidth is at least (a+1).
For PPSRC, suppose the encoding vector of one node vi is lost. Any one row from B/C−1 rows of vectors is chosen, from B/C−1 choices. There are x=(B/C−1)2t+1) encoding vectors obtained from the internal arithmetic of each row of vectors. The deleted matrix gate (T−T′) has (t+1)
elements, and the matrix gate T has (t+1)
elements, so the probability for the result of the XOR operation of one element in matrix gate T′ with the lost vector v1 to belong to the deleted matrix gate (T−T′)
Therefore, the probability that the lost vector vi cannot be repaired by two vectors is p=p1x, x=(B/C−1) 2t+1) apparently, p1 is smaller than 1, but in the general situation, x is very big, so the probability of p is very small. The number of lost vectors v1 that can be repaired is
For example, if B=16, C=2, (t+1)=4, then
Therefore, for a lost vector v1, the repaired bandwidth of PPSRC is generally 2.
In PPSRC, each storage node stores C(t+1) data size. According to the above analysis, the repaired bandwidth of PPSRC is at least C(t+2). If B=ka=kC (k+1), then
so me repaired bandwidth of PPSRC can be expressed as
the repaired bandwidth of MSR is
then
Therefore, when B is big enough, the repaired bandwidth of PPSRC is superior to that of MSR. Actually, when B=32, C=2, t+1=2, n=16, α=(t+1) C=4. For PPSRC (16, 8), d=3, the repaired bandwidth is 6. For MSR (16, 8), when d takes the maximum value 15, its minimum repaired bandwidth is
When d=9, the repaired bandwidth is
Therefore, the repaired bandwidth of PPSRC is superior to that of MSR. Because the repaired bandwidth and repaired node of MSR are interactional, the general performance of repaired bandwidth and repaired node of MSR and PPSRC can be evaluated through the repaired bandwidth multiplied by the repaired node. In
In the embodiment, one practical condition is to make c=0, c=2c=1, B/C=8. Suppose the generator polynomial of the finite field F2
cosets in all. According to the determination of storage nodes during the structuring of PPSRC, vectors of the first 8 cosets are taken as the encoding vectors of storage nodes. The coset 1.<v>={1, w17, w34, . . . , w238} is a subspace of P space, and the dimension of the subspace is 4. The coset 1.<v> has 2t+1−1=15 elements, so 15 −4=11 elements need to be deleted, and only 4 elements are left. Because the generator polynomial of the finite field F*2
In coset 1.<v>, the elements on the right of all the above equations are deleted, and the set after the elements are deleted from coset 1.<v> is the vector space in which the storage node 1 is stored, namely N1={1, w17, w34, w51}. Similarly, the vector spaces stored in the other 7 storage nodes are respectively N2={w, w18, w35, w52}, N3={w2, w19, w36, w53}, N4={w3, w20, w37, w54}, N5={w4, w21, w38, w55}, N6={w5, w22, w39, w56}, N7={w6, w23, w40, w57}, N8={w7, w24, w41, w58}. The data B stored are O={O1, O2, O3, O4, O5, O6, O7, O8}.
Because k=2, the encoding data is chosen from any two nodes, and the original data can be decoded. Any two nodes can decode the original data, so when any one code becomes invalid, data of two nodes can be downloaded to recover the data of the failure node. This process can also be realized through connecting 5 storage nodes and downloading 1 datum from each storage node. For example, if 4 data of node 1 become invalid, firstly, {u1=00010100} of node 2 and encoding vector {u2=00100000+00110101=00010101} of node 6 are downloaded to repair vector {v1=u1+u2=00000001}. According to the general repairing process of the minimum repaired bandwidth, {u3=01011010} of node 3, {u4=01010000} of node 4, and {u5=11001001} of node 7 are downloaded to recover all failure data of node 1. The repairing process is {v1=u1+u2, v3=u1+u3, v4=u4+u3, v2=u5+u4+u1}. The repaired bandwidth is 5, and the repaired node is 5. The repaired bandwidth of other nodes is also 5.
In the embodiment, another practical condition is to make C=1, C=2C=2, then B/C=4, the base finite field is F2 and its elements are 0 and 1. Because (22−1)|(24−1), take t=1. Considering 1-stretch, the first finite field obtained is F4; suppose m=B/C=4, the second finite field is F16.
Under such circumstances, the parameters of PPSRC are B=8, B/C=4, a=2, n=1+22=5. Because coset w4F*4 is completely the XOR of coset F*4 and coset w F*4, it can be deleted. There are 4 storage nodes in all, which can be represented by Ni, i=1, . . . , 4 respectively. Because C=2, the data size stored in each storage node is Cα=4, and the original data needing to be stored can be represented by O1=(O1, O2, O3, O4) and O2=(O5, O6, O7, O8). The table below shows the data stored in each storage node.
In this way, the original data can be recovered from any two storage nodes, and when any two nodes become invalid, the data stored in the failure nodes can be recovered from the rest 2 storage nodes.
In the embodiment, the redundancy coefficient of PPSRC is
When B is determined, P can also be determined, and the redundancy coefficient can be changed by changing c, so the redundancy coefficient of PPGRC is controllable. The maximum value of c can be P−1. Under such circumstances, MPGRC has no redundancy, and the data stored are original data. When c=p−2, the redundancy coefficient of PPSRC is 2; when c=0, the redundancy coefficient of MPGRC is the biggest, 2p−1. The redundancy coefficient of PSRC is
Because B> (t+1), 2B is further bigger than 21+1. Therefore, when B takes a big value, the redundancy coefficient of PSRC is also very big. Table 2.1 is the comparison of redundancy of PPSRC and PSRC when B=16. Table 2.2 is the comparison of redundancy of PPSRC and PSRC when B=32 and it can be observed from table 2.1 and table 2.2, when B=16, the minimum redundancy of PSRC is 128.5 when B=32, the minimum redundancy of PSRC is 32768.5. Therefore, the redundancy of PSRC is very big, while the redundancy of PPSRC is controllable.
For the complexity of computation in this embodiment, the repaired node of RS is k, repaired bandwidth is B, the redundancy coefficient is controllable, and the amount of calculation of encoding is O(n2L). If Cauchy matrix is used for encoding, the amount of calculation of decoding can be the minimum, namely O(n2L). The repaired node of RGC is d (generally, d>k), its repaired bandwidth is generally smaller than B, and the redundancy is controllable. Both the encoding and decoding processes of RGC adopt the linear network encoding operation, while the encoding and decoding complexity of the linear network encoding is respectively O(M2L) and O(M2L+M3), wherein, M is the number of encoding pack, so the complexity of encoding and decoding of the regenerating codes is respectively O(n2α2L) and O(n2α2L+n3α3). The repaired node of PSRC is k=2, and the repaired bandwidth is 2α. The repaired node in the general repairing process in this paper is (a+1), and the repaired bandwidth is (a+1). The encoding and decoding processes of PSRC adopt XOR operation, while the complexity for m data packs to use XOR for encoding is O (ML). L is the length of data pack, the complexity to decode M encoding packs is O (MmL), so the complexity of encoding and decoding of PSRC is respectively
(the restructuring process of PSRC is not given, so the minimum value is taken here).
The redundancy coefficient of PSRC is very big. The repaired node of PPSRC is (α+1), and the minimum repaired bandwidth is (α+1). The encoding and decoding complexity is respectively
The redundancy is controllable. Table 3 summarizes the performance of different code words.
Besides, in the embodiment, the encoding and self-repairing of PPSRC only relate to XOR operation, not like HSRC, of which the encoding requires the calculation of polynomials and is relatively complicated. Besides, the complexity of computation of PPSRC is smaller than that of PSRC. Meanwhile, the repaired bandwidth and repaired node of PPSRC are superior to those of MSR. What is worth mentioning is that the redundancy of PPSRC is controllable and its applicable to common storage systems; the restructured bandwidth of PPSRC can be the optimal.
The above embodiments only express several forms of exploitation of the invention. They are described specifically and in detail, but they shall not be considered the restriction over the patent scope of the invention. It should be noted that for the common technologists in this field, more deformations and improvements can be made on the premise of not breaking away from the concept of the invention. All these are within the reach of protection of the invention. Therefore, the reach of protection of the patent of invention shall be subjected to the annexed claims.
This application is a continuation-in-part of International Patent Application No. PCT/CN2012/083174 with an international filing date of Oct. 19, 2012, designating the United States, now pending, the contents of which, including any intervening amendments thereto, are incorporated herein by reference. Inquiries from the public to applicants or assignees concerning this document or the related applications should be directed to: Matthias Scholl P. C., Attn.: Dr. Matthias Scholl Esq., 245 First Street, 18th Floor, Cambridge, Mass. 02142.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/CN2012/083174 | Oct 2012 | US |
Child | 14691569 | US |