WO2014005279A1 - 一种可精确再生的分布式存储码的构建方法及装置 - Google Patents

一种可精确再生的分布式存储码的构建方法及装置 Download PDF

Info

Publication number
WO2014005279A1
WO2014005279A1 PCT/CN2012/078100 CN2012078100W WO2014005279A1 WO 2014005279 A1 WO2014005279 A1 WO 2014005279A1 CN 2012078100 W CN2012078100 W CN 2012078100W WO 2014005279 A1 WO2014005279 A1 WO 2014005279A1
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
information
code
encoding
forming module
Prior art date
Application number
PCT/CN2012/078100
Other languages
English (en)
French (fr)
Inventor
李挥
侯韩旭
缪伟豪
李硕彦
朱兵
郭涵
Original Assignee
北京大学深圳研究生院
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 北京大学深圳研究生院 filed Critical 北京大学深圳研究生院
Priority to PCT/CN2012/078100 priority Critical patent/WO2014005279A1/zh
Publication of WO2014005279A1 publication Critical patent/WO2014005279A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes

Definitions

  • the present invention relates to the field of network distributed storage, and more particularly to a method and apparatus for constructing a distributed memory code that can be accurately reproduced.
  • the present invention is a further invention of a method, apparatus and distributed network storage system for storing data based on the inventors' prior invention, (PCT/CN2012/071177).
  • NC Network Coding
  • the prior art mainly implements the reliability of distributed storage by using an error correction code.
  • the commonly used RAID-5 products can only provide single disk failure repair, and the RAID-6 that can recover the double disk failure is gradually becoming practical.
  • the RAID-5 system principle of single-disc faults comes from parity, and in order to optimize performance in all aspects, RAID-6 systems with double-disk failures require "special" error-correction coding.
  • the original data file is encoded into several small blocks and stored in each storage node, and the user only needs to download the data of some storage nodes when the data file is needed.
  • the encoding method is generally the maximum distance code maximum-distance-separable (MDS), such as the RS (Reed-Solomon) code.
  • MDS maximum distance code maximum-distance-separable
  • F q the number of elements in the finite field
  • B to represent the original number of files, where the size of the finite field is q.
  • the data of k elements is encoded into n elements and stored in n storage nodes respectively.
  • each data block stored in the storage node is regarded as an information symbol of the finite field F q , and the information symbol in each node only allows linear operation in the finite field F q , in order to repair an invalidation
  • the repair bandwidth cannot be less than the size B of the entire data file.
  • the code word is a code vector reproduced letter, so that each data block can be viewed as a finite field F q of "symbols thereof.
  • Such linear operations in the finite field allow the storage node to transfer a portion of the stored data.
  • d is also a parameter of the reproduction code. According to the article [AG Dimakis, PB Godfrey, M.
  • the failed node will download ⁇ ⁇ « symbols from each of the d nodes in the existing storage node, the process is self-repair process, the total amount of data to be downloaded during the self-repair process dy ⁇ It is called repair bandwidth.
  • the d storage nodes that download data during the self-repair process are called help nodes.
  • the average repair bandwidth of the regenerated code is smaller than the file size ⁇
  • the function repair means that the new node f replaces the failed node f and the n storage nodes can maintain the data reconstruction and regeneration characteristics; and the exact repair refers to the new node f replacing the failed node f and the data stored by the f node and the failed node f stores the same data.
  • precision repair has the following advantages. First, in the storage system, the server knows the global coding coefficients, and the function repair requires the server to update the coding coefficients of the repair nodes. Secondly, in the function repair, the repair function and the decoding function of the data reconstruction need to be readjusted because of the change of the coding coefficient.
  • each packet repair process requires an additional header to update the encoding coefficients.
  • Accurate repair does not require the above operations, and the exact repair code can be encoded into a system code.
  • the system regeneration code means that k code character numbers that have not undergone any encoding operation are stored in k storage nodes. For the system code portion of the reproduced code, the exact system code is fixed.
  • the technical problem to be solved by the present invention is to provide an accurately reproducible distribution that is easy to implement and has a small finite field required for the above-mentioned lack of a specific implementation method and a large finite field defect in the prior art.
  • Method and device for constructing a storage code is: constructing a method for constructing a reproducible distributed storage code, wherein the distributed storage code is a minimum repair bandwidth reproduction code or a minimum storage bandwidth reproduction code, and the constructing The method includes the following steps:
  • the encoding matrix ⁇ includes an ⁇ row vector; wherein ⁇ is a number of distributed storage nodes for storage;
  • the coding matrix ⁇ is a matrix
  • the information matrix M is a ⁇ ⁇ matrix
  • the coding matrix ⁇ is determined in advance and independent of the storage file
  • d is the number of help nodes in the data reproduction, and is the number of elements in the finite field Fq included in each data block in the code word matrix C.
  • the coding matrix ⁇ is combined by combining or computing two sub-matrices; the information matrix M is composed of two sub-matrices, and the elements of the information matrix M are symmetric.
  • the distributed storage code is a minimum repair bandwidth reproduction code
  • the information matrix M is a symmetric matrix
  • ⁇ the S is a matrix
  • ⁇ ' 0 has a different element, the lower triangular portion is symmetric with its upper triangular portion; the T is a W - fc) matrix having fcW - fc) elements; the ⁇ ' is the transposed matrix of the T; The + fcW -W is the number of information symbols included in the information matrix M;
  • the coding matrix ⁇ [ ⁇ ] ; where is a matrix of (/ix fc), ⁇ is a matrix of ("x W -fc)); and the matrix and the matrix ⁇ satisfy: any d in the matrix
  • the rows are linearly independent and any k rows in the matrix ⁇ are linearly independent, Further, the matrix and the matrix ⁇ are respectively a Cauchy matrix or a Vandermonde matrix.
  • the distributed storage code is a minimum storage bandwidth reproduction code; in the step ⁇ ), the information matrix thereof
  • the coding matrix ⁇ [ ⁇ ⁇ ], where (/ ⁇ ) matrix, ⁇ is ⁇ / ⁇ ) Correct
  • the invention also relates to an implementation
  • the apparatus for constructing the accurately reproducible distributed storage code wherein the distributed storage code is a minimum repair bandwidth reproduction code or a minimum storage bandwidth reproduction code;
  • the constructing apparatus comprises: an information matrix construction unit: configured to be used for storage
  • the file is constructed as an information matrix M of a certain size, wherein each data in the file is an element in the information matrix;
  • Encoding matrix setting unit for setting an encoding matrix, the encoding matrix ⁇ includes n rows of vectors; wherein n is a number of distributed storage nodes for storage;
  • a codeword matrix obtaining unit configured to multiply the information matrix M and the encoding matrix ⁇ to obtain a codeword matrix C; the codeword matrix also includes an n-line vector;
  • a storage allocation unit configured to store n rows of the codeword matrix C on the n storage nodes respectively;
  • the distributed storage code is a minimum repair bandwidth reproduction code
  • the information matrix construction unit includes an information matrix formation module, a matrix S formation module, a matrix T formation module, and a matrix T transposition module;
  • the information matrix forming module obtains a symmetric information matrix M whose size is d> ⁇ according to M;
  • the array S forming module is configured to form an S matrix; the matrix T forming module is used to form a T matrix; the matrix T transposition module is configured to obtain the transposed matrix ⁇ ' from the matrix T; the matrix S is a matrix, the upper triangular portion of which has a different element, the lower triangular portion being symmetric with the upper triangular portion thereof; the matrix T being a W-fc) matrix having individual elements; the information matrix M comprising the number of information symbols being + k(d - k) ; among them,
  • d is the number of help nodes at the time of data reproduction, and is a finite field included in each data block of the code word matrix C
  • the number of elements in F q ; k is the number of storage nodes that need to download their code words during data reconstruction;
  • the distributed storage code is a minimum storage bandwidth reproduction code
  • the information matrix construction unit includes a matrix formation module, a matrix formation module, and an information matrix M forming module; wherein, the information matrix
  • the M forming module is configured to obtain a letter according to M, the matrix; the matrix A forming module is used to form an A matrix; s the matrix forming module is used to form a matrix; and the matrix sum is ("x «" matrix, matrix sum
  • the triangle part is made up of the matrix and the lower triangle part respectively to make the matrix and
  • the matrix forming module is configured to obtain a matrix whose size is (" ⁇ ");
  • the diagonal matrix forming module is configured to obtain a diagonal matrix ⁇ whose size is ("x «", and multiply it by the matrix Matrix element
  • the element selection module is configured to select an element included in the coding matrix such that any d-row vector in the coding matrix ⁇ is linearly independent, any ⁇ -row vector in the matrix is linearly independent, and n diagonal elements in the matrix ⁇ are different.
  • the method and apparatus for constructing the accurately reproducible distributed storage code embodying the present invention have the following beneficial effects: Since the set coding matrix is adopted, and the code matrix is obtained by multiplying the coding matrix and the information matrix, the codeword matrix is obtained. Different row vectors are allocated as encoding modules to different storage node storage, which makes it easier to implement and less finite fields required.
  • FIG. 1 is a flow chart of a method and apparatus for constructing a distributed memory code that can be accurately reproduced according to the first embodiment of the present invention
  • FIG. 3 is a flow chart showing the construction of an encoding matrix in the first embodiment
  • FIG. 4 is a schematic diagram of accurate regeneration of the storage node 1 after the data failure in the first embodiment
  • Figure 5 is a schematic structural view of the device in the first embodiment
  • FIG. 6 is a schematic diagram of a method and apparatus for constructing a distributed memory code that can be accurately reproduced according to the present invention
  • FIG. 6 is a schematic diagram of accurate reproduction of a memory node 1 after data failure in the second embodiment
  • Fig. 7 is a schematic structural view of the apparatus in the second embodiment.
  • the method for constructing the distributed storage code includes the following steps:
  • Step S11 constructs a file of size ⁇ into a certain size information matrix, and the elements in the information matrix ⁇ belong to the finite field F q :
  • the file to be stored (the size of which is B) is converted into an information matrix.
  • M the information matrix has a set size and form, and in different cases, the size and format of the information matrix are different; this is related to the type of code that is desired to be constructed.
  • an MBR code is constructed as an example to illustrate a specific construction method of the information matrix M.
  • an MSR code is constructed as an example to illustrate the specific construction of the information matrix. Method and size. The specific steps will be described separately later.
  • Step S12 setting an encoding matrix:
  • an encoding matrix ⁇ is set, which is also related to different types of codes, and therefore, the steps constructed in the first embodiment and the second embodiment and the obtained encoding matrix ⁇ It is also slightly different. The specific steps are also described separately later.
  • Step S13 Multiplying the information matrix M by the coding matrix to obtain a codeword matrix, where the codeword matrix includes n rows of vectors: In this step, multiplying the information matrix obtained above and the coding matrix to obtain a codeword matrix C, the codeword Matrix C includes n row vectors.
  • Step S 14 stores the n rows of the codeword matrix to the n storage nodes:
  • the n row vectors of the obtained codeword matrix C are respectively taken out and stored in different storage nodes. These row vectors are stored as encoding modules stored by the storage node.
  • each storage node a type of RS reproduction code, an MBR code.
  • This code is a subset of the RS code that naturally satisfies some commonalities of the reproduced code.
  • the parameters of the [n, k, d] reproduction code, k and d satisfy ⁇ ⁇ ⁇ / ⁇ - 1 ( 1 )
  • k is the number of storage nodes that need to download the content of the storage encoding module by the node during normal downloading
  • d is the number of storage nodes that need to be downloaded to repair the data (ie, the number of nodes that the failed node needs to download)
  • n is the content of the file to be downloaded. The total number of storage nodes.
  • each codeword in the storage node can use the codeword matrix C( « x «)
  • the i line indicates that each line of the code word matrix C has c symbols, and the code word matrix C is composed of
  • C ⁇ ( 9 ) finds, where ⁇ is the coding matrix, M is the information matrix.
  • the coding matrix ⁇ is determined in advance and is independent of the information symbol B.
  • the information matrix M contains B information symbols, where the symbols may be the same of.
  • the ith line of the codeword matrix C can be expressed as
  • c; ⁇ M ( 10 ) , where ⁇ is the i-th row of the coding matrix ⁇ ", and the letter "t" is used to indicate the transpose of the matrix. In the specific embodiment of the present invention, all symbols belong to the size q.
  • Data reconstruction means that the client obtains the a symbol from any k storage nodes and decodes the information matrix M.
  • the k storage nodes downloaded by the client are represented by i 2 i k ⁇ , and the jth node will The information vector ⁇ ', ⁇ is transmitted to the client, so that the client can receive the data matrix ⁇ ⁇ , which is the matrix ⁇ ⁇ ⁇ k line ⁇ "•••' ⁇ submatrix.
  • the client can decode the information codeword by using the characteristics of the matrix ⁇ M.
  • This process does not involve data failure on data or storage nodes.
  • the data fails, it is necessary to regenerate the failure data of the storage node.
  • ⁇ ' is a vector of length ", which is part of the vector ⁇ '.
  • the new node replacing the node f needs to select d from the existing storage node.
  • help nodes each help node transmits a symbol f to the new node, the symbol is the internal operation of its stored symbols,
  • the symbol transmitted by the help node 13 ⁇ 4 is M / . Therefore, instead of the node, the matrix ⁇ - ⁇ can be obtained, where ⁇ ⁇ is the d row of the matrix ⁇ ", ..., ⁇ submatrix.
  • each help node only needs to know the coding coefficients of the failed node f and does not need other coding coefficients.
  • the parameter set of the reproduced code in Fq is ⁇ n, k, d, , ⁇ , ⁇ , where ⁇ n, k, d ⁇ is the main parameter, and ⁇ , ⁇ , ⁇ are the auxiliary parameters.
  • the parameter ? 1, k ? d ? n - i.
  • the parameter, ⁇ satisfies equations (7) (8), (8) can be written as + k(4 - k. Therefore, the parameters of the [ n , k, d] MBR code are + k(dk) ).
  • s be the matrix of kxk, the upper triangular part of the matrix
  • the element of the lower triangular part of the selection matrix is the matrix S is a symmetric matrix
  • B The remaining k (dk) symbols are used to fill the matrix T(kx(d - k)).
  • the information matrix M is a symmetric matrix of ( ⁇ X ),
  • the symmetry of the information matrix ⁇ is used in the recovery process of the failed node.
  • FIG. 2 a specific construction process of the information matrix ⁇ in the first embodiment is shown, which specifically includes:
  • Step S21 respectively forms the upper and lower triangular portions of the matrix S:
  • the upper triangular portion of the matrix is first constructed and symmetrically formed with the lower triangular portion of the matrix, thereby obtaining a matrix.
  • Step S22 forms a matrix T: In this step, k (dk) symbols included in the original file that have not been used after constructing the above matrix S are used to fill the matrix T, thereby obtaining a size of kX(dk). Matrix T.
  • Step S23 obtains the transposed matrix of the matrix :: Since the matrix ⁇ has been obtained, in this step, the transposed matrix of the matrix ⁇ is obtained.
  • Step S24 combines the transposed matrices of the matrix S, the matrix T, and the matrix T to obtain an information matrix M:
  • the above steps S21-S23 are obtained.
  • Each matrix finds an information matrix.
  • the matrix and ⁇ satisfy the following Two conditions: Any d rows in the matrix ⁇ are linearly independent; any k rows in the matrix ⁇ are linearly independent; these two conditions can be satisfied by selecting a cauchy matrix or a van dermund matrix. See Figure 3, in In FIG. 3, a specific construction flow of the coded information matrix ⁇ in the first embodiment is shown, including:
  • Step S31 forming a matrix.
  • a matrix of nxk is obtained according to the above requirements; Of course, you need to meet the two conditions mentioned above.
  • Step S32 forms a matrix ⁇ :
  • a matrix ⁇ of ⁇ ⁇ (d-k) is obtained according to the above requirements; likewise, the matrix also needs to satisfy the two conditions mentioned above.
  • the codeword matrix C is obtained, and the n row vectors of the obtained codeword matrix C are respectively stored in n storage nodes, that is, the distributed network is completed.
  • the encoding process of the store After obtaining the information matrix M and the coding matrix ⁇ described above, multiplying them, the codeword matrix C is obtained, and the n row vectors of the obtained codeword matrix C are respectively stored in n storage nodes, that is, the distributed network is completed. The encoding process of the store.
  • the precise regeneration of any failed node is accomplished by selecting d nodes from the (n-1) existing nodes and downloading one information symbol each.
  • the process is as follows: Let the code vector be the failed node f, so the d information symbols stored in node f are
  • a new node storing data for restoring the failed node f connects any of the d help nodes ⁇ hj
  • j l, ..., d ⁇ , and then the help node hj calculates the internal product f M f of the node and transmits it to the substitute node, During the recovery process
  • the matrix ⁇ repair is reversible, so the substitute node can be obtained by the left multiply matrix ⁇ repair.
  • the matrix ⁇ is reversible, and the original data T and S can be calculated by using the matrix DC M left multiplication matrix.
  • Fig. 4 an example of a specific failure data repair is shown in Fig. 4.
  • Select the size of the finite field q 7.
  • the matrices S and T are respectively
  • the apparatus includes an information matrix construction unit 51, an encoding matrix setting unit 52, a codeword matrix acquisition unit 53, and a storage allocation unit 54.
  • the information matrix construction unit 51 is configured to construct a file to be stored into an information matrix M of a certain size, wherein each data in the file is an element in the information matrix;
  • the coding matrix ⁇ includes n rows of vectors, n is the number of distributed storage nodes for storage;
  • the codeword matrix obtaining unit 53 is for multiplying the information matrix M and the coding matrix ⁇ to obtain codewords.
  • the codeword matrix C also includes an n row vector
  • the storage allocation unit 54 is configured to store the n row vectors of the codeword matrix C on n storage nodes, respectively; in the first embodiment, all of the above The elements in the matrix belong to the finite field F q of size q .
  • the information matrix construction unit 51 includes an information matrix forming module 511, a matrix S forming module 512, a matrix T forming module 513, and a matrix T transposing module 514; the information matrix forming module 511 follows
  • a matrix S forming module 512 is used to form the S ⁇ ' 0 matrix (the steps of how to form have been described in the above description); the matrix T forming module 513 is used to form a T matrix And the matrix T transposition module 514 is configured to obtain the transposed matrix ⁇ ' from the matrix T; wherein the matrix S is a matrix of ⁇ , and the lower triangular portion of the upper triangle is symmetric with the upper triangular portion thereof;
  • the matrix T is a W - fc) matrix having fcW - fc) elements;
  • the information matrix M includes the number of information symbols 2 i + ⁇ - fc); wherein d is the number of help nodes when the data is reproduced, Is the number of elements in the finite field F q included in each data block of the code word matrix C; k is the number of storage nodes whose data words need to be downloaded during data reconstruction;
  • the module 522 is used to form a matrix matrix ⁇ forming module 523 for forming a matrix ⁇ ; wherein, as described above, is a (/ixfc) matrix, ⁇ is a ("xW-
  • an MSR code is taken as an example to illustrate a method and apparatus for accurately repairing distributed storage codes. It has many similarities with the first embodiment, but some of the steps in the method or some of the module details differ somewhat due to the difference in encoding. To this end, these differences will be described more carefully.
  • the MSR accurate reproduction code is exemplified as follows:
  • the coding matrix (wxd) is
  • the second embodiment when constructing the information matrix and the coding matrix, there are also steps similar to those in the first embodiment. However, due to the difference in structure or representation of the coding matrix and the information matrix, specific steps at the time of construction For example, in the second embodiment, when the information matrix is constructed, the information matrix is not obtained by the transposed matrix of the matrix S, the matrix T, and the matrix T as in the first embodiment, but is constructed first.
  • the code matrix the matrix conforming to the above definition is first obtained, and the diagonal matrix ⁇ is obtained. Then, according to the above formula 24, the coding matrix ⁇ is obtained. It can be seen that the above steps are similar to those in the first embodiment except for specific contents. Therefore, the specific steps obtained by the information matrix M and the coding matrix are not specifically described in the second embodiment.
  • the code vector of the failed node be ⁇
  • the alternate node of the failed node f connects any of the d help nodes ⁇ hj
  • the generation node can obtain d information symbols from d help nodes ⁇
  • the substitute node can get the sum by transposition. In this way, the replacement node can get
  • the client can reconstruct all B information symbols by connecting and downloading data of any k storage nodes.
  • the matrix ⁇ is a matrix ⁇ d) submatrix, and the k row vector of ⁇ corresponds to the coding vector of k storage nodes downloaded by the client. Therefore, the client can get the symbol
  • Equation ( 29 ) can be written as a matrix
  • the medium (35) is due to the symmetry of the matrix ⁇ and Q. Because we choose ⁇ are different from each other when constructing codewords, the client can decode Pij and Qij for ⁇ j according to equations (33) and (34).
  • Equation (38) The matrix on the left side of equation (38) is reversible, so the client can calculate Si. By the same token, the client can also calculate the data S 2 .
  • node 1 fails, in order to regenerate the codeword of node 1, help nodes 2 , 4, 5, 6 Decode the S by respectively transmitting the symbols of their respective internal products
  • the second embodiment further relates to an apparatus for implementing the above method.
  • the apparatus includes an information matrix construction unit 71, an encoding matrix setting unit 72, a codeword matrix acquisition unit 723, and a storage allocation unit 74 .
  • the information matrix construction unit 71 is configured to construct a file to be stored into an information matrix M having a certain size, and Each of the data in the file is an element in the information matrix;
  • an encoding matrix setting unit 72 is configured to set an encoding matrix ⁇ , the encoding matrix includes n rows of vectors, and n is a distributed for storage The number of storage nodes;
  • the codeword matrix obtaining unit 73 is configured to multiply the information matrix M and the encoding matrix ⁇ to obtain a codeword matrix C;
  • the codeword matrix C also includes an n-row vector;
  • the storage allocation unit 74 is used to The ⁇ row vectors of the code word matrix C are respectively stored on n storage nodes; in the first embodiment, the elements in all the above matrices
  • the information matrix construction unit 71 includes a matrix formation module 712, a matrix formation module 713, and an information matrix formation module 711; wherein, the information matrix formation module 711 is configured to obtain an information matrix according to M;
  • the matrix forming module 712 is used to form a matrix; the matrix forming module 713 is used to form a matrix; the matrix and the matrix are both ("x «" matrix, and the upper triangular portion of the matrix sum is filled with ⁇ + ⁇ different information symbols, respectively, and the matrix and The lower triangular portion is such that the matrix sum is a symmetric matrix; the encoding matrix setting unit 72 includes an encoding matrix forming module 721, a matrix forming module 722, a diagonal matrix forming module 723, and a matrix element selecting module 724; wherein, the encoding matrix forming module 721 is used
  • the matrix ⁇ multiplication yields the matrix element selection module 724 for selecting the coding matrix ⁇ the included elements such that any d-row vectors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

提供一种可精确再生的分布式存储码的构建方法,包括如下步骤:将要存储的文件构建为其大小一定的信息矩阵M,其中,所述文件中的每个数据均为所述信息矩阵中的某一元素;设定编码矩阵Ψ,所述编码矩阵Ψ包括n行向量;其中,n是用于存储的分布式存储节点数;将所述信息矩阵M和所述编码矩阵Ψ相乘,得到码字矩阵C;所述码字矩阵同样包括n行向量;将所述码字矩阵C的n行向量分别存储在n个存储节点上;其中,上述所有矩阵中的元素均属于大小为q的有限域Fq。另外还提供一种实现上述方法的装置。实施可精确再生的分布式存储码的构建方法及装置,具有以下有益效果:其实现较为容易、所需的有限域也较小。

Description

一种可精确再生的分布式存储码的构建方法及装置
技术领域
本发明涉及网络分布式存储领域, 更具体地说, 涉及一种可精确再生的分布式存 储码的构建方法及装置。
背景技术
本发明是在发明人先前的发明基础上一种存储数据的方法、 装置及分布式网络存 储系统" , (PCT/CN2012/071177)的进一步发明。
2000年诞生的网络编码 ( Network Coding , NC ) 是继 C.E.Shannon发表 《A Mathematical Theory of Communication》解决信道容量极限问题后的一个全新突破, 它 解决了网络通信中单 /多源对多接收点组 /广播如何达到网络容量极限的问题。 传统网络 通信节点上的路由交换机只完成存储转发功能。 NC指出如果允许路由交换机对输入信 息流进行编码再发送, 将使得网络节点既实现路由功能又实现编码功能。 在这种全新 的体系结构下, 网络性能可以达到最大流传输的理论极限。
伴随存储系统规模的发展, 故障概率也显著提高, 人们对存储系统也提出了更高 的容错要求。 现有技术主要是通过纠错码来实现分布式存储的可靠性。 比之于 RAID 系统, 常用的 RAID-5产品只能提供单盘故障的修复, 能够修复双盘故障的恢复的 RAID-6 逐渐也走入了实用。 容单盘错的 RAID-5 系统原理来自于奇偶校验, 而为达 到各方面性能的优化, 容双盘故障的 RAID-6系统需要采用"特制"的纠错编码。
在分布式存储系统中, 原始的数据文件被编码成若干小块并分别存储在各个存储 节点, 用户在需要该数据文件时只需要下载部分存储节点的数据即可。 而编码方式一 般为最大距离码 maximum-distance-separable (MDS), 比如 RS ( Reed-Solomon )码。 首 先,我们用有限域 Fq中的元素个数来表示数据文件的大小, B表示文件包含的原始个数, 其中有限域的大小为 q。 使用 RS编码, k个元素的数据被编码成 n个元素并分别存储在 n 个存储节点, 用户只需要下载 n中的任意 k个存储节点的数据即可获得该 k个元素的数据 文件, 我们称这一过程为数据重建。 目前使用 RS编码存储数据的分布式存储系统有 RAID-6 [1], OceanStore[2] 和 Total Recall [3]。
当存储系统中有存储节点失效时, 为了维持系统的可靠性和相应的容错性, 我们 必须修复失效节点, 恢复失效节点的数据并存储在一个新的存储节点, 该新节点为失 效节点的替代节点。 在自修复过程中, 很筒单的方法是新的替代节点下载任意的现存 k 个存储节点的所有数据并重建原始数据, 然后为新节点使用 RS编码, 精确恢复出失效 节点的数据。但是这样做的缺点是:为恢复一个存储节点的数据而下载整个数据文件 B , 对于修复带宽来说是一种浪费。 再生码就是解决该问题的有效方法。
在传统的 RS编码中, 存储在存储节点的每个数据块被看作为有限域 Fq的一个信息 符号,每个节点中的信息符号只允许在有限域 Fq的线性操作, 为修复一个失效节点的数 据,修复带宽不可能小于整个数据文件的大小 B。相反,再生码的码字是一个向量字母, 因此每个数据块都可以看作是由有限域 Fq中的《个符号组成的。这样有限域中的线性操 作允许存储节点传输存储数据中的一部分。 除了参数《外, d和 也是再生码的参数。 才艮据文 [A. G. Dimakis, P. B. Godfrey, M. Wainwright, and K. Ramchandran, "Network coding for distributed storage systems," in Proc. 26th IEEE Int. Conf. Computer Communications (INFOCOM), Anchorage, AK, May 2007, pp. 2000-2008.]的介绍,失效节 点会从现存存储节点中的 d个节点各自下载 ^≤«个符号, 该过程为自修复过程, 自修 复过程中需要下载的数据总量 d y^称为修复带宽。 另外, 在自修复过程中下载数据的 d 个存储节点称为帮助节点。 一般情况下, 再生码的平均修复带宽小于文件大小^
在再生码中, 功能修复是指新节点 f 代替失效节点 f并且 n个存储节点能够保持数 据重建和再生特性; 而精确修复是指新节点 f 代替失效节点 f并且 f 节点存储的数据 与失效节点 f存储的数据完全一样。 相比于功能修复, 精确修复有以下优势。 首先, 在 存储系统中, 服务器是知道全局的编码系数的, 而功能修复则需要服务器更新修复节 点的编码系数。 其次, 在功能修复中, 因为编码系数地的变更, 修复函数和数据重建 的解码函数均需要重新调整。 另外, 对于功能修复, 每次修复过程均需要增加包头以 更新编码系数。 而精确修复则不需要以上操作, 而且精确修复码可以编码成系统码。 系统再生码是指在 k个存储节点存储了 k 个没有经过任何编码操作的码字符号。 对于 再生码的系统码部分, 精确修复系统码是一定的。
再生码的概念是由文 [A. G. Dimakis, P. B. Godfrey, M. Wainwright, and K. Ramchandran, "Network coding for distributed storage systems," in Proc. 26th IEEE Int. Conf. Computer Communications (INFOCOM), Anchorage, AK, May 2007, pp. 2000-2008.] 给出的,文中指出如果允许存储节点存储的数据量大于 B/k,那么就可以减少修复带宽。 文 [A. G. Dimakis, P. B. Godfrey, M. Wainwright, and K. Ramchandran, "Network coding for distributed storage systems," in Proc. 26th IEEE Int. Conf. Computer Communications (INFOCOM), Anchorage, AK, May 2007, pp. 2000-2008]提出了失效节点功能修复的最 小带宽问题, 数据重建的条件转化为网络编码的组播问题, 通过分析该网络的最小割 得到了式 ( 2 )。文 [A. Duminuco and E. Biersack, "A practical study of regenerating codes for peer-to-peer backup systems," in Proc. 29th IEEE Int. Conf. Distributed Computing Systems (ICDCS), Jun. 2009, pp. 376-384]研究了再生码的计算复杂度问题,文中考虑的是使用随 机线性网络编码的功能修复。
奇确再生码问题首先由文 [Y. Wu and A. Dimakis, "Reducing repair traffic for erasure coding-based storage via interference alignment," in Proc. IEEE Int. Symp. Information Theory (ISIT), Seoul, South Korea, Jul. 2009, pp. 2276— 2280]给出。文中指出,当 k=2,d=n-l 时可以构造出 MSR精确码, 其中编码策略是基于无线网络中干扰队列的概念。 但是文 中并没有精确的构造出 MSR码而且构造该码需要相当大的有限域。
对于一般化参数的精确再生码, 文 [K. V. Rashmi, N. B. Shah, P. V. Kumar, and K. Ramchandran, "Explicit construction of optimal exact regenerating codes for distributed storage," in Proc. 47th Annu. Allerton Conf. Communication, Control, and Computing, Urbana-Champaign, IL, Sep. 2009, pp. 1243- 1249]给出了 d=n-l , k为任意值的 MBR码。 在 文中提出的 MBR码中, 因为在失效节点的精确再生过程中没有涉及计算, 所以构造该 码的复杂度很低,有限域的大小也仅需要 n2。另夕卜,该文还构造了 d=k+l的精确 MSR码。 文 [Y.Wu, "A construction of systematic MDS codes with minimum repair bandwidth," IEEE Trans. Inf. Theory, 2012]综合考虑了功能修复和精确修复, 其中参数 d=k+l , n>2k。 但是 构造该码的复杂度 4艮高而且需要 4艮大的有限域。
综上所述, 在现有技术中, 虽然对精确再生码有所研究, 但普遍缺乏较为具体的 实现方法、 所需的有限域较大。
发明内容
本发明要解决的技术问题在于, 针对现有技术的上述缺乏具体的实现方法、 所需 有限域较大的缺陷, 提供一种容易实现、 所需有限域较小的一种可精确再生的分布式 存储码的构建方法及装置。 本发明解决其技术问题所采用的技术方案是: 构造一种可精确再生的分布式存储 码的构建方法, 所述分布式存储码为最小修复带宽再生码或最小存储带宽再生码, 所 述构建方法包括如下步骤:
A)将要存储的文件构建为其大小一定的信息矩阵 M, 其中, 所述文件中的每 个数据均为所述信息矩阵中的某一元素;
B)设定编码矩阵 ί , 所述编码矩阵 ί 包括 η行向量; 其中, η是用于存储的 分布式存储节点数;
C)将所述信息矩阵 Μ和所述编码矩阵 ^相乘, 得到码字矩阵 C; 所述码字矩 阵同样包括 η行向量;
D)将所述码字矩阵 C的 η行向量分别存储在 η个存储节点上;
其中, 上述所有矩阵中的元素均属于大小为 q的有限域 Fq
更进一步地, 所述编码矩阵 ^的为 矩阵, 所述信息矩阵 M为 ί χ«矩阵; 所述 编码矩阵 ^为事先确定且独立于所述存储文件;
其中, d是所述数据再生时的帮助节点数, 是所述码字矩阵 C中每个数据块 包含的有限域 Fq中的元的个数。
更进一步地,所述编码矩阵 ^由两个子矩阵组合或运算后组合而成; 所述信息矩阵 M由两个子矩阵组合而成,信息矩阵 M的元素是对称的。
更进一步地, 所述分布式存储码为最小修复带宽再生码; 所述步骤 A ) 中, 所述
S Τ
信息矩阵 M为 的对称矩阵, Μ 所述 S为 的矩阵, 其上三角部分共
Τ' 0 有 个不同元素, 其下三角部分与其上三角部分对称; 所述 T为 W -fc)矩阵, 其 具有 fcW -fc)个元; 所述 Γ'为所述 T的转置矩阵; 所述 + fcW -W为所述信息矩阵 M 包括的信息符号个数;
所述步骤 B )中, 其编码矩阵 ^ = [ Δ] ; 其中, 为(/ix fc)矩阵, Δ为("x W -fc))矩 阵; 且矩阵 和矩阵 Δ满足: 矩阵 中的任意 d行线性独立以及矩阵 Δ中的任意 k行线 性独立, 更进一步地, 所述矩阵 和矩阵 Δ分别为柯西矩阵或范德蒙德矩阵。
更进一步地, 所述分布式存储码为最小存储带宽再生码; 所述步骤 Α) 中, 其信 息矩阵 Μ
Figure imgf000007_0001
不同信息符号填充, 选择 和 的下三角部分使得 和 均为对称矩阵; 所述步骤 Β ) 中, 编码矩阵 ^ = [ Λ^], 其中, 为(/ίχα)矩阵, Λ为 ίχ/ί)的对
矩阵 中的任意 a行向量线性独立以及矩阵 Λ中的 n个对角元素均不同。 更进一步地, 所述编码矩阵 ^为范德蒙德矩阵; 所述编码矩阵 ^的第 i行向量为 ψί = [l ,. ... 1 j (i = l,...,n); 矩阵
Figure imgf000007_0002
,···, }; 其中, 有限域 的大小不小于 n(d-k + i) , 其元素表示为 , = g" , g为有限域^ 的乘法群的生成元。 本发明还涉及一种实现上述可精确再生的分布式存储码的构建方法的装置, 所述 分布式存储码为最小修复带宽再生码或最小存储带宽再生码; 所述构建装置包括: 信息矩阵构建单元: 用于将要存储的文件构建为其大小一定的信息矩阵 M, 其中, 所述文件中的每个数据均为所述信息矩阵中的某一元素;
编码矩阵设置单元: 用于设定编码矩阵 所述编码矩阵 ίΛ包括 n行向量; 其中, n是用于存储的分布式存储节点数;
码字矩阵取得单元: 用于将所述信息矩阵 M和所述编码矩阵 ^相乘,得到码 字矩阵 C; 所述码字矩阵同样包括 n行向量;
存储分配单元:用于将所述码字矩阵 C的 n行向量分别存储在 n个存储节点 上;
其中, 上述所有矩阵中的元素均属于大小为 q的有限域 Fq
更进一步地, 所述分布式存储码为最小修复带宽再生码; 所述信息矩阵构建单元 包括信息矩阵形成模块、 矩阵 S形成模块、 矩阵 T形成模块及矩阵 T转置模块; 所述
S T
信息矩阵形成模块按照 M 得到其大小为 d> ^的、 对称的信息矩阵 M; 所述矩
Τ' 0 阵 S形成模块用于形成 S矩阵; 所述矩阵 T形成模块用于形成 T矩阵; 所述矩阵 T转 置模块用于由所述矩阵 T得到其转置矩阵 Γ' ; 所述矩阵 S为 的矩阵, 其上三角部 分共有 个不同元素,其下三角部分与其上三角部分对称;所述矩阵 T为 W-fc)矩 阵,其具有 个元;所述信息矩阵 M包括的信息符号个数为 + k(d - k) ;其中,
2 J
d是所述数据再生时的帮助节点数, 是所述码字矩阵 C 中每个数据块包含的有限域
Fq中的元的个数; k是数据重构时需要下载其码字的存储节点数;
所述编码矩阵设置单元包括编码矩阵 ψ形成模块、 矩阵 形成模块和矩阵 Δ形成模 块; 其中, 所述编码矩阵 ί 形成模块用于按照编码矩阵 ^ = [ Δ]得到编码矩阵; 所述矩 阵 形成模块用于形成矩阵 矩阵 Δ形成模块用于形成矩阵 Δ ; 为(M x fc)矩阵, Δ为 («xW- fc))矩阵; 且矩阵 和矩阵 Δ满足: 矩阵 中的任意 d行线性独立以及矩阵 Δ中的 任意 k行线性独立。
更进一步地, 所述分布式存储码为最小存储带宽再生码; 所述信息矩阵构建单元 包括矩阵 形成模块、 矩阵 形成模块和信息矩阵 M形成模块; 其中, 所述信息矩阵
S1
M形成模块用于按照 M 得到信, 矩阵; 所述矩阵 A形成模块用于形成 A矩阵; s 所述矩阵 形成模块用于形成 矩阵; 矩阵 和 均为(《x«)矩阵, 矩阵 和 的上三 角部分分别由 选择矩阵 和 的下三角部分使得矩阵 和
Figure imgf000008_0001
均为对称矩阵;
所述编码矩阵设置单元包括编码矩阵形成模块、 矩阵 形成模块、对角矩阵形成模 块以及矩阵元素选择模块; 其中, 所述编码矩阵形成模块用于按照 ^ = [ Λ ]得到编码 矩阵 ί ; 所述矩阵 形成模块用于得到其大小为(《χα)的 矩阵; 所述对角矩阵形成模块 用于得到其大小为(《x«)的对角矩阵 Λ , 并将其与所述矩阵 相乘得到 所述矩阵元 素选择模块用于选择编码矩阵 包括的元素使得所述编码矩阵 ί 中的任意 d行向量线性 独立、所述矩阵 中的任意 α行向量线性独立以及所述矩阵 Λ中的 η个对角元素均不同。 实施本发明的可精确再生的分布式存储码的构建方法及装置, 具有以下有益效果: 由于采用设定的编码矩阵, 并通过该编码矩阵与信息矩阵相乘得到码字矩阵, 将码字 矩阵不同的行向量作为编码模块分配到不同的存储节点储存, 这使得其实现较为容易、 所需的有限域也较小。
附图说明
图 1 是本发明可精确再生的分布式存储码的构建方法及装置第一实施例中方法的 流程图;
图 2是所述第一实施例中信息矩阵的构建流程图;
图 3是所述第一实施例中编码矩阵的构建流程图;
图 4是所述第一实施例中存储节点 1数据失效后精确再生的示意图;
图 5是所述第一实施例中装置的结构示意图;
图 6是本发明可精确再生的分布式存储码的构建方法及装置第二实施例中存储节 点 1数据失效后精确再生的示意图;
图 7是所述第二实施例中装置的结构示意图。
具体实施方式
下面将结合附图对本发明实施例作进一步说明。
如图 1 所示, 在本发明可精确再生的分布式存储码的构建方法及装置第一实施例 中, 其分布式存储码的构建方法包括如下步骤:
步骤 S11 将大小为 Β的文件构建为一定大小的信息矩阵 Μ, 信息矩阵 Μ中的元 素均属于有限域 Fq: 在本步骤中, 将需要存储的文件 (其大小为 B )转换为信息矩阵 M, 该信息矩阵具有设定的大小和形式, 在不同的情况下, 该信息矩阵的大小和格式不 同; 这与希望构建的码的类型有关。 在第一实施例中, 以构建一个 MBR码为例, 说明 了其信息矩阵 M的具体构建方法;在第二实施例中,则以一个构建一个 MSR码为例, 说明其信息矩阵的具体构建方法及大小。 关于具体的步骤, 稍后将分别描述。
步骤 S12设置编码矩阵: 在本步骤中, 设置编码矩阵 ^, 该编码矩阵 ^同样与不同 类型的码有关, 因此,在第一实施例和第二实施例中其构建的步骤及得到的编码矩阵 ^ 也是稍有不同。 关于其具体步骤, 同样在稍后分别描述。
步骤 S13 将信息矩阵 M与编码矩阵相乘得到码字矩阵, 码字矩阵包括 n行向量: 在本步骤中, 将上述得到的信息矩阵和编码矩阵相乘, 得到码字矩阵 C , 该码字矩阵 C 包括了 n个行向量。
步骤 S 14将码字矩阵的 n行向量分别存储到 n个存储节点: 在本步骤中, 将, 上 述得到的码字矩阵 C的 n个行向量分别取出, 并存储到不同的储存节点中。 这些行向 量作为存储节点存储的编码模块被存储。
在第一实施例中, 希望得到并存储在各存储节点中的是 RS再生码的一种, MBR 码。 这种码是 RS码的一个子集, 其自然满足再生码的一些共性。 具体来讲, 在第一实 施例中, 于 [n,k,d]再生码的参数, k和 d满足 ≤ ί ≤/ι— 1 ( 1 )
其中, k是正常下载时需要由该节点下载存储编码模块内容的存储节点数, d是修 复数据需要下载的存储节点数(即失效节点需要下载的节点数), 而 n是存储该文件内 容的总的存储节点数。
文 [Y. Wu, A. G. Dimakis, and K. Ramchandran, "Deterministic regenerating codes for distributed storage," in Proc. 45th Annu. Allerton Conf. Control, Computing, and Communication, Urbana-Champaign, IL, Sep. 2007.]给出了再生码的参数所必须要满足的 k-l
条件: Β < \Ώΐη{α, {ά - ΐ)β) ( 2 )
i=0
该条件也是再生码的主要结论。显然,我们想同时减小参数"和^的值。最小化" 值就得到了最小存储的方法, 最小化 ^可以得到最小修复带宽的方法。 从式(2 ) 可以 推导出参数"和^不可能同时减小, 因此在参数"和 ?的选择上有一个折中。 该折中 曲线上的两个极点码分别称为最小存储码 ( minimum storage regeneration , MSR)和最 'J、修复带宽码( minimum bandwidth regeneration , MBR)。 最小化《得到 MSR码的参数 满足
Figure imgf000011_0001
a= 2dB =άβ (4)
k(2d-k + l) 最佳的 [n,k,d]再生码的参数 ( O ,β ,B) 满足以下两个条件:
1 ) 参数(",^,Β)在式(1 ) 中取等号;
2) 减少"或者^会导致新的参数不满足式( 1 ) 。
MSR再生码码的参数( ", , Β)满足( 3 ) ,而 MBR码的参数 ( ,β ,Β)满足( 4 )。 显然, MSR再生码和 MBR再生码均是最佳再生码。 在本发明实施例中, 由于任意的正 整数 均可以由并行的多个 =1组成, 取 ? =1。
=1, (3)和(4)分别为 a二 d_k + l (5) B = k(d-k + l) (6) 以及
a— d 7 )
Figure imgf000011_0002
由于在本发明实施例中使用矩阵乘积框架构造精确修复码(包括 MBR码和 MSR 码), 在该框架下, 存储节点中的每个码字可以用码字矩阵 C(«x«)的第 i行表示, 码 字矩阵 C的每一行均有 c个符号, 而码字矩阵 C是由
C二 ψΜ ( 9 ) 求出, 其中 ^为 的编码矩阵, M为 的信息矩阵。 编码矩阵 ^是事先就确定 的且独立于信息符号 B。 信息矩阵 M包含了 B个信息符号, 其中的符号有可能是一样 的。 码字矩阵 C的第 i行可以表示为
c; =^M ( 10 ) , 其中^^为编码矩阵^ "的第 i行, 字母 "t" 用来表示矩阵的转置。 在本发明具体实施 例中, 所有的符号均属于大小为 q的有限域 Fq。 数据重建是指客户端从任意的 k个存储节点获取 a符号并解码出信息矩阵 M。 客户端下载的 k个存储节点用 ,i2 ik}表示, 第 j节点将信息向量^',^^传输给客 户端。这样客户端可以收到数据矩阵^^ Μ ,其中 是矩阵^ ^々k行 {^"•••' } 子矩阵。 所以, 客户端就可以利用矩阵^ ^口 M 的特性解码出信息码字。 这个过程并 不涉及数据或存储节点上的数据失效。 当数据失效时, 需要再生该存储节点的失效数据。 在存储节点的失效数据的再生 过程中, ^^'为长度为"的向量, 它为向量 ^^'的一部分。 为了恢复失效节点 f, 代替 节点 f的新节点需要从现存存储节点中选择 d个 {hl ... ,hd}并各下载一个符号, 这 d个 节点称为帮助节点,每个帮助节点传输一个符号 f给新节点,该符号为其存储的 个符 号的内部运算, 帮助节点 1¾传输的符号为 M /。 因此代替节点可以获得矩阵 ΨΜ , 其中^ ^ 为矩阵^ "的 d行 ,…,^^子矩阵。 在再生过程中, 各个 帮助节点只需要知道失效节点 f的编码系数并不需要其他的编码系数。
为了能够修复失效节点的数据, 帮助节点的个数 d必须满足第一个不等式。 有限域
Fq中的再生码的参数集合为 {n,k, d, ,β ,Β}, 其中 {n,k,d}为主参数, 而{ α ,β ,Β} 为辅参数。 在第一实施例中,为构造的精确 MBR码,使参数 ?=1, k≤d≤n— i。参数 ,Β} 满足式(7) (8 ), ( 8 )可以写成 + k(4— k 。 所以 [n, k, d]MBR码的参数为
Figure imgf000012_0001
+ k(d-k) )。 令 s为 kxk的矩阵, 该矩阵的上三角部分
, 选择矩阵的下三角部分的元素是的矩阵 S为对称矩阵, B中
Figure imgf000013_0001
剩下的 k (d-k)符号用来填充矩阵 T(kx(d— k))。信息矩阵 M为 (< X )的对称矩阵 ,
Figure imgf000013_0002
信息矩阵 Μ的对称性会在失效节点的恢复过程中用到。 请参见图 2, 在图 2中, 示出了第一实施例中信息矩阵 Μ的一个具体的构建流程, 其具体包括:
步骤 S21分别形成矩阵 S的上、 下三角部分: 在本步骤中, 按照上述构建矩阵 S 的方法, 先构建该矩阵的上三角部分, 并使其与该矩阵的下三角部分对称, 进而得到 矩阵 S。
步骤 S22形成矩阵 T: 在本步骤中, 将构建上述矩阵 S后还没有用到的、 原文件 中包括的 k (d-k)个符号用于填充矩阵 T, 进而得到其大小为 kX(d-k)的矩阵 T。
步骤 S23得到矩阵 Τ的转置矩阵: 由于已经得到矩阵 Τ, 在本步骤中, 求得矩阵 Τ 的转置矩阵。
步骤 S24组合上述矩阵 S、 矩阵 T以及矩阵 T的转置矩阵, 得到信息矩阵 M: 在 本步骤中, 按照上面所述的信息矩阵的构成方法 (公式 11 ) , 由上述步骤 S21-S23中 得到的各矩阵求得信息矩阵。
对于第一实施例中的编码矩阵而言, 编码矩阵^ "为^ ^)矩阵 ^ = [ί^Δ] , 其 中 ^为( xW矩阵, A为 ^χ^— 》矩阵。 矩阵 和 Δ满足以下两个条件: 矩 阵 ^中的任意 d行线性独立; 矩阵 Δ中的任意 k行线性独立; 这两个条件可以通过选 择柯西(cauchy)矩阵或者范德蒙德矩阵来满足。 请参见图 3, 在图 3中, 示出了第一 实施例中编码信息矩阵 ^ 的一个具体的构建流程, 包括:
步骤 S31 形成矩阵 在本步骤中, 按照上述要求得到 nxk的矩阵 ^; 该矩阵 当然需要满足上面所讲的两个条件。
步骤 S32 形成矩阵 Δ: 在本步骤中, 按照上述要求得到 ηχ (d-k)的矩阵 Δ; 同 样, 该矩阵同样需要满足上面所讲的两个条件。
步骤 S33 组合上述矩阵得到编码矩阵 ^ : 由于已经得到上述的两个矩阵, 在本步 骤中, 按照上述公式 ^ = ! △]得到编码矩阵。
当得到上述的信息矩阵 M和编码矩阵 ^ 后, 将其相乘, 就得到码字矩阵 C, 将得 到的码字矩阵 C的 n个行向量分别存储到 n个存储节点, 即完成分布式网络存储的编 码过程。
对于以上给出的精确再生码(MBR码), 任意失效节点的精确再生通过从 (n-1 )现 存节点中任选 d个节点并各下载一个信息符号。 其过程如下: 令 为为失效节点 f 的 编码向量, 所以存储在节点 f 的 d个信息符号为
Ψ Μ (12)。
为恢复失效节点 f 存储数据的新节点连接任意 d个帮助节点 {hj|j=l, … , d}, 而 后帮助节点 hj计算该节点的内部乘积 fM f并将其传输给替代节点,在该恢复过程中
向量〃 最终替代节点获得了 d个符号
Figure imgf000014_0001
在构造过程中易知矩阵 Ψ repair可逆, 所以替代节点可以通过左乘矩阵 ψ repair获得
M /f 。 又因为 M是对称的, 所 My/fy =yfM , ( 13) 而 ψ Μ即为存储在失效节点的数据。 当所有存储节点上(或下载所述涉及的存储节点) 的数据都没有失效时, 对以上给 出的精确再生码, 客户端可以通过下载任意的 k 个存储节点的数据即可获得所有的信 息符号 B。 其过程如下: 客户端下载的 k个存储节点数据的编码矩阵为
Figure imgf000015_0001
ί^ 为矩阵^ ^ (^Χ β 子矩阵, 也就是矩阵 ^的 k 行向量组成的子矩阵。 所以客 户端可以获得 DCM =
Figure imgf000015_0002
Φο ( 15)。 由以上构造过程知矩阵 ί^χ;是可逆的,用矩阵 DCM左乘矩阵 可以计算出原始数 据 T以及 S。 此外, 在第一实施例中, 一个具体的失效数据修复的例子如图 4所示, 在图 4 中, n=6, k=3, d=4, 以及 =d=4, B=9。 选择有限域的大小 q=7。 矩阵 S和 T分别为
Figure imgf000015_0003
所以信息矩阵 M为
^3 u7
4 U5
M =
( 17)c
u7 M8 9 0 编码向量 ^为(6x4)的范德蒙德矩阵
1 1 1 1
1 2 4 1
1 3 2 6
Ψ二
1 4 2 1 ( 18)。
1 5 4 6
1 6 1 6 图 4给出了该例子的码字矩阵 C= ψΜ并给出了当节点 1失效时的精确再生过程 为了再生出节点 1的存储信息, 帮助节点 (在该例子中为节点 2, 4, 5, 6)各自传本 它们的内部乘积 1 1 l ( 1=2 , 4 , 5 , 6 X然后替代节点即可通过乘 ^ repair t灰复出失效节点的数据, 其中
repair
( 1 9 )。
Figure imgf000016_0001
在第一实施例中, 还涉及一种实现上述方法的装置。 如图 5 所示, 该装置包括信 息矩阵构建单元 51、 编码矩阵设置单元 52、 码字矩阵取得单元 53 以及存储分配单元 54。其中,信息矩阵构建单元 51用于将要存储的文件构建为其大小一定的信息矩阵 M, 其中, 该文件中的每个数据均为所述信息矩阵中的某一元素; 编码矩阵设置单元 52用 于设定编码矩阵 ^, 编码矩阵 ^包括 n行向量, n是用于存储的分布式存储节点数; 码 字矩阵取得单元 53用于将上述信息矩阵 M和编码矩阵 ^相乘, 得到码字矩阵 C; 所述 码字矩阵 C同样包括 η行向量;存储分配单元 54用于将所述码字矩阵 C的 η行向量分 别存储在 η个存储节点上; 在第一实施例中, 上述所有矩阵中的元素均属于大小为 q 的有限域 Fq
在第一实施例中, 信息矩阵构建单元 51包括信息矩阵形成模块 511、 矩阵 S形成 模块 512、 矩阵 T形成模块 513及矩阵 T转置模块 514; 信息矩阵形成模块 511按照
S T
M 得到其大小为 的、对称的信息矩阵 M; 矩阵 S形成模块 512用于形成 S Τ' 0 矩阵(如何形成的步骤已在上面的描述中记载);矩阵 T形成模块 513用于形成 T矩阵; 而矩阵 T转置模块 514用于由所述矩阵 T得到其转置矩阵 Γ' ;其中,上述矩阵 S为 χ 的矩阵, 其上三角 其下三角部分与其上三角部分对称; 矩
Figure imgf000016_0002
阵 T 为 W - fc)矩阵, 其具有 fcW - fc)个元; 信息矩阵 M 包括的信息符号个数为 2 i + ^ - fc) ; 其中, d是所述数据再生时的帮助节点数, 是所述码字矩阵 C中每个 数据块包含的有限域 Fq中的元的个数; k是数据重构时需要下载其码字的存储节点数; 而编码矩阵设置单元包括编码矩阵 Ψ形成模块 521、矩阵 ^形成模块 522和矩阵 Δ形 成模块 523;其中,编码矩阵 ^形成模块 521用于按照编码矩阵 ^ = [ Δ]得到编码矩阵; 矩阵 ^形成模块 522用于形成矩阵 矩阵 Δ形成模块 523用于形成矩阵 Δ; 其中, 正 如上面所述, 为(/ixfc)矩阵, Δ为("xW-fc))矩阵; 且矩阵 ^和矩阵 Δ满足: 矩阵 中的 任意 d行线性独立以及矩阵 Δ中的任意 k行线性独立。
在第二实施例中, 以一个 MSR码为例, 说明精确修复分布式存储码的构建方法及装 置。 其与第一实施例有较多的相同之处, 但是, 由于编码的不同, 使得其方法中的一 些步骤或装置中的一些模块细节有一些差别。 为此, 将较为仔细地描述这些差别。 在 第二实施例中, MSR再生码的参数为 ^ = 1以及 [n, k, d≥2k-2],参数 {", }满 足式( 5 )和( 6 )。 以 d=2k-2的 MSR精确再生码为例详细说明如下:
当 d=2k-2时有
a = d-k + l = k-l ( 20 ) 以及
d = 2a ( 21 ),
B = ka = a(a + V) ( 22)。
^i
定义 (d x a)信息矩阵 M为 M
5. ( 23 ), 其中
Figure imgf000017_0001
S2均是(《x«)矩阵, Si a + 1
和 S2的上三角部分分别由
2 个不同信息符号填充。所以,所有的 B 息符号都已经填充到矩阵 S2中。 然后选择矩阵 S2的下三角部分使得矩阵 S2均是对称矩阵。 在第二实施例中, 编码矩阵 (wxd)为
ψ = [φ Λ^] ( 24)。 其中 ^为 Οχ«)矩阵, Λ为 < χ")的对角矩阵。 选择 ^合适的元素以满足以下 条件: 矩阵 ^中的任意 d行向量线性独立; 矩阵 ^中的任意 < 行向量线性独立; 矩阵
Λ中的 η个对角元素均不同。
以上三个条件可以通过合适的选择矩阵 ^为范德蒙德矩阵来满足。 也就是令矩阵 ^ 的第 i 行向量为 = [1 … -^ "1 ] ( i = 1, … , n ) , 矩阵 Λ为 Λ = { , , ..., }。 为了满足第三个条件, 需要选择有限域 Fq的大小不小于 n (d-k+1) , 可以用 Xi=gi— 1表示有限域的元素, 其中 g为有限域^的乘法群的生成元。 在第二实施例的 MSR码构造框架中,码字矩阵(为 0= ^ ,矩阵 C中第 i行包含有 个码字符号, 这"个码字符号存储在第 i个存储节点中。 值得一提的是, 在第二实施例中, 当构建信息矩阵和编码矩阵时, 同样也具有与第 一实施例中相似的步骤。 只不过由于其编码矩阵和信息矩阵的结构或表示不同, 构建 时的具体步骤也稍有不同。 例如, 在第二实施例中, 构建信息矩阵时, 不是如第一实 施例中一样通过矩阵 S、 矩阵 T以及矩阵 T的转置矩阵来得到信息矩阵, 而是通过先构 建矩阵 Sl、 矩阵 S2, 然后再得到信息矩阵; 在第二实施例中构建编码矩阵时, 也是先 得到符合上述定义的矩阵 , 得到对角矩阵 Λ , 之后再按照上述公式 24, 得到编码矩 阵 ^ 。 由此可知, 除了具体内容不同, 上述步骤还是与第一实施例中相似的。 所以, 在第二实施例中不再具体描述信息矩阵 M和编码矩阵 ^得到的具体步骤。
在第二实施例中得到的 [n, k, d] MSR码的精确恢复过程和数据重建过程分别为描述
:¾口下。
对于第二实施例中构造出的 MSR精确修复码,为了精确再生出失效节点的存储数据, 可以从 (n-1 ) 个现存节点中选择 d=2k-2 个存储节点并各自下载一个符号即可精确再 生该失效数据。 令失效节点的编码向量为 Φ
Figure imgf000018_0001
= + » S2。 (25 )
失效节点 f 的替代节点连接任意的 d个帮助节点 {hj | j=l, … , d} , 然后帮助节点 计算其内部的乘积 ¾^.M^并将其发送给替代节点。 因此, 在这里向量 ^ = 。 替 代节点可以从 d个帮助节点获得 d个信息符号^^
Figure imgf000019_0001
通过以上构造方法知(dxd)矩阵^ ^fli 是可逆的。 因此, 替代节点获得了 ^^ =
f 因为矩阵 s2是对称矩阵, 所以替代节点可以通过转置得到 和 。 这 样, 替代节点可以得到
/ίΞ1+ / / ίΞ2 , (26)
这也就是失效节点存储的数据。
对于第二实施例中构造出的 MSR精确修复码, 客户端可以通过连接并下载任意 k个 存储节点的数据即可重建出所有 B个信息符号。 令客户端下载的数据的编码向量为 DC = [ οα ϋ οα] (27)
矩阵 ί^ζ 为矩阵 Ψ d)子矩阵, ^的 k行向量对应为客户端下载的 k个存储节 点的编码向量。 因此, 客户端可以得到符号
Figure imgf000019_0002
然后客户端计算
Figure imgf000019_0003
令矩阵 ρ和 Q分别为
Ρ =
Figure imgf000019_0004
( 30) Q = Φο^ιΦοα。 ( 31 )
因为矩阵 S2是对称矩阵, 所以矩阵 P和 Q也都是对称矩阵。 所以式( 29 )可以写 成矩阵
P + cQ。 ( 32)
令该矩阵的第 ( i, j )元素为
Figure imgf000020_0001
同样的, 该矩阵的第 ( j, i )元素为
Ρ^λβ^Ρ^λβ^ ( 34),
式(35 ) 中等号是因为矩阵 Ρ和 Q的对称性。 因为在构造码字的时候, 我们选择 Λ·互 不相同, 因此根据式(33)和(34 )客户端可以解码出 Pij和 Qij对于 ≠ j。
首先考虑矩阵 P, 客户端收到的编码矩阵 Φϋ。为
Figure imgf000020_0002
矩阵 Ρ的所有非对角元素都是可解的, 除了对角元素外, 第 i行向量的元素为
[Φι … Φι-ι Φι+ι … α+ι] . ( 36)
然而, 因为在构造码字的时候编码矩阵的所有子矩阵均是可逆的, 所以客户端可以得 到
{^11≤ ≤" + 1}。 (37)
选择其中的前 行, 也就是 ( 38)。
Figure imgf000021_0001
式( 38 )左边的矩阵是可逆的, 所以客户端可以计算出 Si。 同样的道理, 客户端也可 以计算出数据 S2
请参见图 6, 在图 6中, 示出了第二实施例中一个 n=6, k=3, d=4, =d-k+l=2, B=k Of =6的具体例子中的数据修复过程。 选择有限域的大小
Figure imgf000021_0002
S2分 别为
Figure imgf000021_0003
所以信息矩阵 M为
( 40)。
Figure imgf000021_0004
选择
( 41)。
Figure imgf000021_0005
所以 (6 x 2) 和(6 χ 6)对角矩阵 Λ分别为
— 2
Figure imgf000022_0001
图 6给出了(6 x 2)码字矩阵(^ = ^ 以及节点失效后的精确修复过程。 当节点 1 失效时, 为了再生出节点 1的码字, 帮助节点 2 , 4 , 5 , 6分别传输其各自的内部乘积 的符号即可解码出 S
Figure imgf000022_0002
在第二实施例中还涉及一种实现上述方法的装置, 如图 7所示, 该装置包括信息 矩阵构建单元 71、编码矩阵设置单元 72、码字矩阵取得单元 73以及存储分配单元 74。 其中, 信息矩阵构建单元 71用于将要存储的文件构建为其大小一定的信息矩阵 M, 其 中, 该文件中的每个数据均为所述信息矩阵中的某一元素; 编码矩阵设置单元 72用于 设定编码矩阵 ^, 编码矩阵 ^包括 n行向量, n是用于存储的分布式存储节点数; 码字 矩阵取得单元 73用于将上述信息矩阵 M和编码矩阵 ί 相乘, 得到码字矩阵 C; 所述码 字矩阵 C同样包括 η行向量;存储分配单元 74用于将所述码字矩阵 C的 η行向量分别 存储在 η个存储节点上; 在第一实施例中, 上述所有矩阵中的元素均属于大小为 q的 有限域 Fq
所述信息矩阵构建单元 71包括矩阵 形成模块 712、 矩阵 形成模块 713和信息 矩阵形成模块 711 ; 其中, 信息矩阵形成模块 711用于按照 M 得到信息矩阵; 矩
Figure imgf000023_0001
阵 形成模块 712用于形成 矩阵; 矩阵 形成模块 713用于形成 矩阵; 矩阵 和矩 阵 均为(《x«)矩阵, 矩阵 和 的上三角部分分别由 ^ + ^个不同信息符号填充, 选 择矩阵 和 的下三角部分使得矩阵 和 均为对称矩阵; 编码矩阵设置单元 72包括 编码矩阵形成模块 721、 矩阵 形成模块 722、 对角矩阵形成模块 723以及矩阵元素选 择模块 724; 其中, 编码矩阵形成模块 721用于按照 ^ = [ Λ ]得到编码矩阵 矩阵 形成模块 722用于得到其大小为(《χ α)的 矩阵; 对角矩阵形成模块 723用于得到其大 小为 的对角矩阵 Λ , 并将其与矩阵 ^相乘得到 矩阵元素选择模块 724用于选 择编码矩阵 ί 包括的元素使得所述编码矩阵 ί 中的任意 d行向量线性独立、 矩阵 中的 任意 行向量线性独立以及矩阵 Λ中的 n个对角元素均不同。
不能因此而理解为对本发明专利范围的限制。 应当指出的是, 对于本领域的普通技术 人员来说, 在不脱离本发明构思的前提下, 还可以做出若干变形和改进, 这些都属于 本发明的保护范围。 因此, 本发明专利的保护范围应以所附权利要求为准。

Claims

权利要求书
1、 一种可精确再生的分布式存储码的构建方法, 其特征在于, 所述分布式存储码 为最小修复带宽再生码或最小存储带宽再生码, 所述构建方法包括如下步骤:
A)将要存储的文件构建为其大小一定的信息矩阵 M, 其中, 所述文件中的每 个数据均为所述信息矩阵中的某一元素;
B)设定编码矩阵 ^, 所述编码矩阵 ^包括 n行向量; 其中, n是用于存储的 分布式存储节点数;
C)将所述信息矩阵 M和所述编码矩阵 ^相乘, 得到码字矩阵 C; 所述码字矩 阵同样包括 n行向量;
D)将所述码字矩阵 C的 n行向量分别存储在 n个存储节点上;
其中, 上述所有矩阵中的元素均属于大小为 q的有限域 Fq
2、 根据权利要求 1 所述的可精确再生的分布式存储码的构建方法, 其特征在于, 所述编码矩阵 ί 的为 矩阵, 所述信息矩阵 M为^ «矩阵; 所述编码矩阵 ^为事先 确定且独立于所述存储文件;
其中, d是所述数据再生时的帮助节点数, 是所述码字矩阵 C中每个数据块 包含的有限域 Fq中的元的个数。
3、 根据权利要求 2所述的可精确再生的分布式存储码的构建方法, 其特征在于, 所述编码矩阵 ^由两个子矩阵组合或运算后组合而成; 所述信息矩阵 M由两个子矩阵 组合而成, 信息矩阵 M的元素是对称的。
4、 根据权利要求 3 所述的可精确再生的分布式存储码的构建方法, 其特征在于, 所述分布式存储码为最小修复带宽再生码;所述步骤 A )中,所述信息矩阵 M为 d d 的
S T
对称矩阵, Μ 所述 S为 ) ^的矩阵, 其上三角部分共有 个不同元素,
Τ' 0 其下三角部分与其上三角部分对称; 所述 Τ为 W - fc)矩阵, 其具有 fcW - fc)个元素; 所 述 Γ'为所述 T的转置矩阵; + fcW - fc)为所述信息矩阵 M包括的信息符号个数;
Figure imgf000024_0001
所述步骤 B )中, 其编码矩阵 ^ = [ Δ] ; 其中, 为( x fc)矩阵, Δ为(w x (rf - fc))矩 阵; 且矩阵 和矩阵 Δ满足: 矩阵 中的任意 d行线性独立以及矩阵 Δ中的任意 k行线 性独立。
5、 根据权利要求 4所述的可精确再生的分布式存储码的构建方法, 其特征在于, 所述矩阵 和矩阵 Δ分别为柯西矩阵或范德蒙德矩阵。
6、 根据权利要求 3 所述的可精确再生的分布式存储码的构建方法, 其特征在于, 所述分布式存储码为最小存储带宽再生码; 所述步骤 A) 其中, 和 均为(《x«)矩阵, 和 的上三角部分分别由 ,
Figure imgf000025_0001
选择 和 的下三角部分使得 和 均为对称矩阵; 所述步骤 B) 中, 编码矩阵 ^ = [ Λ^], 其中, 为(/ίχα)矩阵, Λ为 ίχ/ί)的对
矩阵 中的任意 a行向量线性独立以及矩阵 Λ中的 n个对角元素均不同。
7、 根据权利要求 6所述的可精确再生的分布式存储码的构建方法, 其特征在于, 所述编码矩阵 ί 为范德蒙德矩阵; 所述编码矩阵 ίΛ的第 i 行向量为 = |ΐ , ... Λ (i = l,...,n); 矩阵八=^^{ % 其中, 有限域^ 的大小不小于 + , 其元素 表示为 Xi=g", g为有限域^ 的乘法群的生成元。
8、 一种可精确再生的分布式存储码的构建装置, 其特征在于, 所述分布式存储码 为最小修复带宽再生码或最小存储带宽再生码; 所述构建装置包括:
信息矩阵构建单元: 用于将要存储的文件构建为其大小一定的信息矩阵 M, 其中, 所述文件中的每个数据均为所述信息矩阵中的某一元素;
编码矩阵设置单元: 用于设定编码矩阵 ^, 所述编码矩阵 ^包括 n行向量; 其中, n是用于存储的分布式存储节点数;
码字矩阵取得单元: 用于将所述信息矩阵 M和所述编码矩阵 ίΛ相乘,得到码 字矩阵 C; 所述码字矩阵同样包括 η行向量;
存储分配单元:用于将所述码字矩阵 C的 η行向量分别存储在 η个存储节点 上;
其中, 上述所有矩阵中的元素均属于大小为 q的有限域 Fq
9、 根据权利要求 8所述的分布式存储码的构建装置, 其特征在于, 所述分布式存 储码为最小修复带宽再生码; 所述信息矩阵构建单元包括信息矩阵形成模块、 矩阵 S
S T
形成模块、矩阵 T形成模块及矩阵 T转置模块;所述信息矩阵形成模块按照 M
Τ' 0 得到其大小为 的、 对称的信息矩阵 M; 所述矩阵 S形成模块用于形成 S矩阵; 所 述矩阵 T形成模块用于形成 T矩阵; 所述矩阵 T转置模块用于由所述矩阵 T得到其转 置矩阵 所述矩阵 S为 的矩阵, 其上三角 个不同元素, 其下三角
Figure imgf000026_0001
部分与其上三角部分对称; 所述矩阵 T为 W - fc)矩阵, 其具有 fcW - fc)个元; 所述信息 矩阵 M包括的信息符号个数为 + fcW -W ; 其中, d是所述数据再生时的帮助节点
Figure imgf000026_0002
数, 《是所述码字矩阵 C中每个数据块包含的有限域 Fq中的元的个数; k是数据重构 时需要下载其码字的存储节点数;
所述编码矩阵设置单元包括编码矩阵 ψ形成模块、 矩阵 形成模块和矩阵 Δ形成模 块; 其中, 所述编码矩阵 ^形成模块用于按照编码矩阵 ^ = [ Δ]得到编码矩阵; 所述矩 阵 形成模块用于形成矩阵 矩阵 Δ形成模块用于形成矩阵 Δ ; 为(zi x fc)矩阵, Δ为 ix W - fc))矩阵; 且矩阵 和矩阵 Δ满足: 矩阵 中的任意 d行线性独立以及矩阵 Δ中的 任意 k行线性独立。
10、 根据权利要求 8所述的分布式存储码的构建装置, 其特征在于, 所述分布式 存储码为最小存储带宽再生码; 所述信息矩阵构建单元包括矩阵 形成模块、矩阵 形 成模块和信息矩阵 M形成模块; 其中, 所述信息矩阵 M形成模块用于按照 M 得
S. 到信息矩阵; 所述矩阵 形成模块用于形成 矩阵; 所述矩阵 形成模块用于形成 矩 阵; 矩阵 和 均为(《x «)矩阵, 矩阵 和 的上三角部分分别由 个不同信息符
Figure imgf000027_0001
号填充, 选择矩阵 和 的下三角部分使得矩阵 和 s2均为对称矩阵;
所述编码矩阵设置单元包括编码矩阵形成模块、 矩阵 形成模块、对角矩阵形成模 块以及矩阵元素选择模块; 其中, 所述编码矩阵形成模块用于按照 ^ = [ Λ ]得到编码 矩阵 所述矩阵 形成模块用于得到其大小为(《χ α)的 矩阵; 所述对角矩阵形成模块 用于得到其大小为(《x «)的对角矩阵 Λ , 并将其与所述矩阵 相乘得到 所述矩阵元 素选择模块用于选择编码矩阵 ί 包括的元素使得所述编码矩阵 ί 中的任意 d行向量线性 独立、所述矩阵 中的任意 α行向量线性独立以及所述矩阵 Λ中的 η个对角元素均不同。
PCT/CN2012/078100 2012-07-03 2012-07-03 一种可精确再生的分布式存储码的构建方法及装置 WO2014005279A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/078100 WO2014005279A1 (zh) 2012-07-03 2012-07-03 一种可精确再生的分布式存储码的构建方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/078100 WO2014005279A1 (zh) 2012-07-03 2012-07-03 一种可精确再生的分布式存储码的构建方法及装置

Publications (1)

Publication Number Publication Date
WO2014005279A1 true WO2014005279A1 (zh) 2014-01-09

Family

ID=49881229

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/078100 WO2014005279A1 (zh) 2012-07-03 2012-07-03 一种可精确再生的分布式存储码的构建方法及装置

Country Status (1)

Country Link
WO (1) WO2014005279A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015175411A1 (en) * 2014-05-13 2015-11-19 Cloud Crowding Corp. Distributed secure data storage and transmission of streaming media content
US10608784B2 (en) 2016-03-15 2020-03-31 ClineHair Commercial Endeavors Distributed storage system data management and security
US10931402B2 (en) 2016-03-15 2021-02-23 Cloud Storage, Inc. Distributed storage system data management and security
US11182247B2 (en) 2019-01-29 2021-11-23 Cloud Storage, Inc. Encoding and storage node repairing method for minimum storage regenerating codes for distributed storage systems

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1859115A (zh) * 2006-01-24 2006-11-08 华为技术有限公司 一种网络数据的分布式存储下载系统、设备及方法
CN101834898A (zh) * 2010-04-29 2010-09-15 中科院成都信息技术有限公司 一种网络分布式编码存储方法
EP2413506A1 (en) * 2010-07-26 2012-02-01 Thomson Licensing Method for adding redundancy data to a distributed data storage system and corresponding device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1859115A (zh) * 2006-01-24 2006-11-08 华为技术有限公司 一种网络数据的分布式存储下载系统、设备及方法
CN101834898A (zh) * 2010-04-29 2010-09-15 中科院成都信息技术有限公司 一种网络分布式编码存储方法
EP2413506A1 (en) * 2010-07-26 2012-02-01 Thomson Licensing Method for adding redundancy data to a distributed data storage system and corresponding device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WANG ET AL.: "Research on Data Redundancy and Maintenance Technology in Distributed Storage System", CHINA DOCTORAL DISSERTATIONS FULL-TEXT DATABASE, INFORMATION TECHNOLOGY SERIES, vol. 15, no. 6, 2012 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015175411A1 (en) * 2014-05-13 2015-11-19 Cloud Crowding Corp. Distributed secure data storage and transmission of streaming media content
CN106462605A (zh) * 2014-05-13 2017-02-22 云聚公司 流媒体内容的分布式安全数据存储和传输
EA031078B1 (ru) * 2014-05-13 2018-11-30 Клауд Краудинг Корп. Способ и устройство для хранения и обработки данных
US10608784B2 (en) 2016-03-15 2020-03-31 ClineHair Commercial Endeavors Distributed storage system data management and security
US10735137B2 (en) 2016-03-15 2020-08-04 ClineHair Commercial Endeavors Distributed storage system data management and security
US10931402B2 (en) 2016-03-15 2021-02-23 Cloud Storage, Inc. Distributed storage system data management and security
US11777646B2 (en) 2016-03-15 2023-10-03 Cloud Storage, Inc. Distributed storage system data management and security
US11182247B2 (en) 2019-01-29 2021-11-23 Cloud Storage, Inc. Encoding and storage node repairing method for minimum storage regenerating codes for distributed storage systems

Similar Documents

Publication Publication Date Title
US20230353278A1 (en) Transmitting method with error correction coding
US8631269B2 (en) Methods and system for replacing a failed node in a distributed storage network
KR101421286B1 (ko) 인코딩 및 디코딩 프로세스들을 위해 심볼들의 영속적 비활성화에 의한 fec 코드들을 활용하는 방법 및 장치
CN101432969B (zh) 前向纠错(fec)编码和流送
CN101453297B (zh) 低密度生成矩阵码的编码方法和装置、及译码方法和装置
KR101205758B1 (ko) 파일 다운로드 및 스트리밍 시스템
US9065838B2 (en) Streaming network coding
JP5485008B2 (ja) 連鎖的暗号化反応の系統的記号化および復号化
KR101355761B1 (ko) 통신 시스템의 다중 필드 기반 코드 발생기 및 디코더
CN103250463A (zh) 用于通信系统的子集编码
WO2013104135A1 (zh) 一种存储数据的方法、装置及分布式网络存储系统
WO2009079934A1 (fr) Procédé et moyen de codage pour une matrice génératrice de faible densité
WO2014005279A1 (zh) 一种可精确再生的分布式存储码的构建方法及装置
JP6117994B2 (ja) 符号化および復号の方法および装置
CN101414833A (zh) 低密度生成矩阵码的编码方法及装置
WO2013159341A1 (zh) 基于同态的自修复码的编码、解码和数据修复方法及其存储系统
CN103152652A (zh) 一种基于柯西rs编码的视频帧数据网络传输方法
WO2013023604A1 (zh) Ldpc码校验矩阵的构造方法、装置和编码方法及系统
TWI674766B (zh) 低密度奇偶檢查碼之編碼及解碼方法
Chareonvisal ImplementingDistributed Storage System by Network Coding in Presence of Link Failure
CN101471743A (zh) 低密度生成矩阵码的编码方法
WO2014106316A1 (zh) 一种通用射影自修复码的编码、数据重构和修复方法
PHUTATHUM Implementing Distributed Storage Systemsby Network Coding and ConsideringComplexity of Decoding
Feng et al. A class of wireless network coding schemes

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12880385

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12880385

Country of ref document: EP

Kind code of ref document: A1