WO2018171111A1 - Multi-fault tolerance mds array code encoding and repair method - Google Patents
Multi-fault tolerance mds array code encoding and repair method Download PDFInfo
- Publication number
- WO2018171111A1 WO2018171111A1 PCT/CN2017/097669 CN2017097669W WO2018171111A1 WO 2018171111 A1 WO2018171111 A1 WO 2018171111A1 CN 2017097669 W CN2017097669 W CN 2017097669W WO 2018171111 A1 WO2018171111 A1 WO 2018171111A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- information
- column
- bits
- parity
- code
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/02—Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
- H03M7/04—Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word the radix thereof being two
Definitions
- the present invention relates to the field of data processing, and in particular, to a multi-fault-tolerant MDS array code encoding and repair method.
- the binary maximum distance separable (MDS) array code is a special erasure code that achieves fault tolerance with minimal storage redundancy and low computational complexity.
- the binary array code is composed of an array of k+r columns, each column having L bits, wherein for the k+r columns, the k column information column stores information bits, and the r column parity column stores redundancy The remaining position.
- the L bits in each column are stored in the same storage node. If any k in the k+r column is sufficient to reconstruct all of the k-column information columns, then such a code can be referred to as an MDS (ie, it can tolerate any r-column failure).
- the repair bandwidth is defined as the number of download bits in the repair operation. Minimizing repair bandwidth is critical to speeding up repair operations and minimizing fragile windows, especially in distributed storage systems where network transport often becomes a bottleneck.
- the repair problem was first elaborated and studied by Dimakis et al. [5] based on the information flow diagram. As stated in [5], the minimum repair bandwidth is subject to minimum storage redundancy, also known as the Minimum Memory Regeneration (MSR) point, which is calculated as follows:
- the present invention provides a multi-fault-tolerant MDS array code encoding and repairing method, which solves the problem that the prior art cannot combine optimal repair and higher fault tolerance.
- a multi-fault-tolerant MDS array code coding is designed and manufactured, and the component thereof is a C(k, 3, p) code, and the data block is divided into k(p-1) ⁇ .
- the information column is represented by a polynomial, and each corresponding information column is a data polynomial, and the corresponding three parity columns form an encoded polynomial, and the data polynomial and the encoded polynomial form a column vector [s 1 (x), s 2 (x), ..., s k+3 (x)].
- the product of G is calculated, where G is the matrix of the kxk unit matrix I and a kx3 matrix
- the kx(k+3) composed of P generates a matrix.
- the C(k,3,p) code is such that a systematic linear code is penetrated within R p ⁇ .
- the invention also provides a method for repairing a multi-fault-tolerant MDS array code, comprising the steps of: obtaining an information column that has failed; if the information column has failed Then fix the information bits s l,f by the first parity, where l mod 2 f ⁇ 0,1,2,...2 f-1 -1 ⁇ , otherwise repaired by the second parity Information bits s l,f , where l mod 2 f ⁇ 2 f-1 , 2 f-1 +1,2 f-1 +2,...,2 f -1 ⁇ ; if the information column has failed
- the information bits s l,f are fixed by the first parity, where l mod 2 f ⁇ 0,1,2,...,2 f-1 -1 ⁇ , otherwise, pass the third parity To fix the information bits s l,f , where l mod 2 f ⁇ 2 f-1 , 2 f-1 +1,2 f-1 +2,...,2 f -1 ⁇ .
- the information column that has failed The repaired broadband is (p-1)((k+2)2 k-3 -2 kf-2 ).
- the parity sets of the second parity column and the third parity column are not corresponding to those columns of information in a straight line in the array, but correspond to those columns of information in a broken line;
- the number of lines is divisible by 2 k-2 .
- the invention has the beneficial effects that the fault tolerance of the system is improved; the computational complexity of the codec process is lower, and the repair of the broadband is greatly reduced.
- FIG. 1 is a schematic diagram of an embodiment of a memory code used in a three parity check column of the present invention.
- a multi-fault-tolerant MDS array code coding the component of which is a C(k,3,p) code, which divides the data block into k(p-1) ⁇ information bits and encodes to generate 3(p-1) ⁇ redundancy.
- the information column is represented by a polynomial, and each corresponding information column is a data polynomial, and the corresponding three parity columns form a coded polynomial, and the data polynomial and the coded polynomial form a column vector [s 1 (x), s 2 (x),...,s k+3 (x)].
- the product of G is calculated, where G is kx (k) consisting of a kxk unit matrix I and a kx3 coding matrix P +3) Generate a matrix.
- the C(k,3,p) code is a systematic linear code penetrating into R p ⁇ .
- the invention also provides a method for repairing a multi-fault-tolerant MDS array code, comprising the steps of: obtaining an information column that has failed; if the information column has failed Then fix the information bits s l,f by the first parity, where l mod 2 f ⁇ 0,1,2,...2 f-1 -1 ⁇ , otherwise repaired by the second parity Information bits s l,f , where l mod 2 f ⁇ 2 f-1 , 2 f-1 +1,2 f-1 +2,...,2 f -1 ⁇ ; if the information column has failed
- the information bits s l,f are fixed by the first parity, where l mod 2 f ⁇ 0,1,2,...,2 f-1 -1 ⁇ , otherwise, pass the third parity To fix the information bits s l,f , where l mod 2 f ⁇ 2 f-1 , 2 f-1 +1,2 f-1 +2,...,2 f -1 ⁇ .
- the repaired broadband is (p-1) ((k+2) 2 k-3 -2 kf-2 ).
- the parity sets of the second parity column and the third parity column do not correspond to those columns of information in a line in the array, but correspond to those columns of information in a line; the number of rows of the array is 2 k-2 Divisible.
- the multi-fault-tolerant MDS array code is constructed as follows:
- the polynomial of k + 3) is called a coding polynomial.
- the algorithm embodied in [S 1 (x), s 2 (x),..., s k+3 (x)] [s 1 (x), s 2 (x),...,s
- the product of k (x)] ⁇ G is calculated.
- the kx(k+3) generation matrix G is composed of a kxk unit matrix I and a kx3 coding matrix P,
- the variable x represents the cyclic right shift operator on the polynomial. This is critical to reducing the repair bandwidth for a column failure.
- the proposed code is represented as C(k,3,p). Please note that extra bits are not stored on disk; they are for convenience only.
- the encoding matrix for this example is
- the encoding process can be described in the form of a polynomial as follows. Given k(p-1) ⁇ information bits, ⁇ extra bits are appended for each (p-1) ⁇ information bit and form a message vector [s 1 (x), s 2 (x),...,s k (x)].
- the number of times of storage is 0 to the term coefficient in the (p-1) ⁇ -1 polynomial.
- the proposed array code can be viewed as a systematic linear code that operates within Rp ⁇ .
- a progressive optimal repair of information failure in one embodiment, will show how to repair the bits stored in information column f by accessing bits from k-1 other columns of information and 2 parity columns.
- extra bits can be calculated by (2).
- the bit elements of column i are represented as p ⁇ bits s 0,i , s 1,i ,...,s p ⁇ -1,i .
- the parity set is formally defined as follows.
- Definition 1 For 0 ⁇ l ⁇ p ⁇ -1, define the first parity set of the first column, the second column, and the third column as
- parity set Includes multiple information bits that can be used to generate redundant bits When it is said that one information bit is repaired by a parity column, this means that in addition to the erased bits, the redundant bits of the parity column and all the information bits in the parity column are accessed.
- the first column is erased.
- the eight bits stored in the second information column can be downloaded by downloading six bits from the first information column and from the third information column, the fourth information column, the first parity column, and the second parity column.
- the four bits in each column are restored.
- a total of 22 bits were downloaded during the repair process.
- the third column of information and the last column of information can be reconstructed by accessing 22 bits and 20 bits from 5 columns, respectively.
- Theorem 3 When At the time, the information column f obtained by Algorithm 1 repairs the bandwidth as
- the parity set of the first parity column in the proposed code is the same as the parity set of the first parity column in RDP and EVENODD.
- the key difference between the proposed code and the existing binary MDS array code is the construction of the second and third parity columns.
- the parity sets of the second and third parity columns in the proposed code do not correspond to those bits that are straight in the array, but rather to those bits that are in a broken line.
- the number of rows in the array in the proposed code can be divisible by 2 k-2 . These two properties are critical to reducing the repair bandwidth.
Abstract
The present invention relates to the field of data processing, and provides a multi-fault tolerance MDS array code encoding, a component thereof being a C(k,3,p) code, expressing data blocks as k(p-1)τ information bits and encoding to generate 3(p-1)τ redundant bits, (p-1)τ being a positive integer, τ=2k-2, p being a prime number, k≥3, τ extra bits being added to each (p-1)τ information bit to form a message vector. The advantageous effects of the present invention are: the fault tolerance of a system is improved; the calculation complexity of encoding and decoding is relatively low, and a repair bandwidth is thereby significantly reduced.
Description
本发明涉及数据处理领域,尤其涉及一种多容错性的MDS阵列码编码以及修复方法。The present invention relates to the field of data processing, and in particular, to a multi-fault-tolerant MDS array code encoding and repair method.
现代分布式存储系统利用纠删码来维持数据可用性,以避免存储节点的失效。二进制最大距离可分(MDS)阵列码是一种特殊的纠删码,其凭借最小存储冗余和较低计算复杂度实现容错性。具体来说,二进制阵列码由k+r列的阵列组成,每列具有L位,对于所述的k+r列,其中的k列信息列存储信息位,而r列奇偶校验列存储冗余位。每列中的L位存储在相同的存储节点中。如果k+r列中的任何k足以重建所有的k列信息列,那么这种码就可以称之为MDS(即其可容许任何r列失效)。二进制MDS阵列码的例子包括:X码[1]和RDP码[2],两者均为双容错型(即r=2);还有STAR码[3]、普遍化的RDP码[4]以及TIP码,三者都是三容错型(即r=3)。Modern distributed storage systems use erasure codes to maintain data availability to avoid failure of storage nodes. The binary maximum distance separable (MDS) array code is a special erasure code that achieves fault tolerance with minimal storage redundancy and low computational complexity. Specifically, the binary array code is composed of an array of k+r columns, each column having L bits, wherein for the k+r columns, the k column information column stores information bits, and the r column parity column stores redundancy The remaining position. The L bits in each column are stored in the same storage node. If any k in the k+r column is sufficient to reconstruct all of the k-column information columns, then such a code can be referred to as an MDS (ie, it can tolerate any r-column failure). Examples of binary MDS array codes include: X code [1] and RDP code [2], both of which are double fault tolerant (ie, r = 2); and STAR code [3], generalized RDP code [4] And TIP code, all three are three fault-tolerant (ie r = 3).
当分布式存储系统中的一个节点失效时,应该通过从未失效节点d下载位元来修复失效的列,其中k≤d≤k+r-1。将修复带宽定义为修复运算中的下载位数。尽可能降低修复带宽对于加快修复运算和最小化脆弱之窗至关重要,尤其在网络传输常常成为瓶颈的分布式存储系统中更是如此。修复问题由Dimakis等人[5]基于信息流图首次阐述和研究。如[5]中所阐述,最小修复带宽受制于最小存储冗余,其也被称为最小存储再生(MSR)点,其计算公式如下:When a node in a distributed storage system fails, the failed column should be repaired by downloading the bit from the unfailed node d, where k ≤ d ≤ k + r-1. The repair bandwidth is defined as the number of download bits in the repair operation. Minimizing repair bandwidth is critical to speeding up repair operations and minimizing fragile windows, especially in distributed storage systems where network transport often becomes a bottleneck. The repair problem was first elaborated and studied by Dimakis et al. [5] based on the information flow diagram. As stated in [5], the minimum repair bandwidth is subject to minimum storage redundancy, also known as the Minimum Memory Regeneration (MSR) point, which is calculated as follows:
此时d=k+1。虽然在足够大的有限域中最小修复带宽是可实现的[5]、[6],但如何构造实现最小修复带宽的二进制MDS阵列码依然是一个极富挑战性的问题。
At this time d=k+1. Although it is achievable to minimize the bandwidth in a sufficiently large finite field [5], [6], how to construct a binary MDS array code that achieves the minimum repair bandwidth is still a very challenging problem.
目前已有不少研究着眼于减少二进制MDS阵列码中的单个失效列的修复带宽。有些方法将RDP码[7]和X码[8]的磁盘读取尽可能降至最小,但其修复带宽只能算是次优,依然比(1)中的最小值要大50%。MDR码[9]、[10]和ButterFly码[11]为二进制MDS阵列码,其实现了最优修复,但它们只提供双容错性(即r=2)。如何构造兼具最优修复和更高容错性(即r>2)的二进制MDS阵列码依然是一个尚待解决的问题。此类构造将会有利于维持现实中故障频发之分布式存储系统中的数据可用性。A number of studies have focused on reducing the repair bandwidth of a single failed column in a binary MDS array code. Some methods minimize the disk reading of RDP code [7] and X code [8], but the repair bandwidth is only suboptimal, still 50% larger than the minimum value in (1). The MDR codes [9], [10], and ButterFly codes [11] are binary MDS array codes that implement optimal repair, but they only provide double fault tolerance (ie, r = 2). How to construct a binary MDS array code with optimal repair and higher fault tolerance (ie r>2) is still a problem to be solved. Such a configuration would be beneficial to maintain data availability in a distributed storage system with frequent failures.
【发明内容】[Summary of the Invention]
为了解决现有技术中的问题,本发明提供了一种多容错性的MDS阵列码编码以及修复方法,解决现有技术中无法兼具最优修复和更高容错性的问题。In order to solve the problems in the prior art, the present invention provides a multi-fault-tolerant MDS array code encoding and repairing method, which solves the problem that the prior art cannot combine optimal repair and higher fault tolerance.
本发明是通过以下技术方案实现的:设计、制造了一种多容错性的MDS阵列码编码,其组成部分为C(k,3,p)码,将数据块分成k(p-1)τ信息位并编码产生3(p-1)τ个冗余位,(p-1)τ为正整数,τ=2k-2,p为素数,k≥3,信息位表示为冗余位表示为其中j为k+1、k+2和k+3,i=1,2,…,k;每个(p-1)τ信息位附加τ额外位并形成消息向量。The invention is realized by the following technical solutions: a multi-fault-tolerant MDS array code coding is designed and manufactured, and the component thereof is a C(k, 3, p) code, and the data block is divided into k(p-1)τ. The information bits are coded to produce 3(p-1)τ redundant bits, (p-1)τ is a positive integer, τ=2 k-2 , p is a prime number, k≥3, and the information bits are expressed as Redundant bits are expressed as Where j is k+1, k+2, and k+3, i=1, 2,...,k; each (p-1)τ information bit is appended with τ extra bits and forms a message vector.
作为本发明的进一步改进:将信息列通过多项式进行表示,对应的每一信息列为数据多项式,其对应的三个奇偶校验列形成已编码多项式,数据多项式和已编码多项式形成列向量[s1(x),s2(x),…,sk+3(x)]。As a further improvement of the present invention, the information column is represented by a polynomial, and each corresponding information column is a data polynomial, and the corresponding three parity columns form an encoded polynomial, and the data polynomial and the encoded polynomial form a column vector [s 1 (x), s 2 (x), ..., s k+3 (x)].
作为本发明的进一步改进:所述列向量通过Rpτ:=F2[x]/(1+xpτ)中所体现的算法取[s1(x),s2(x),…,sk+3(x)]=[s1(x),s2(x),…,sk(x)].G的积来进行计算,其中G为由kxk单位矩阵I和一个kx3编码矩阵P所组成的kx(k+3)生成矩阵。As a further improvement of the present invention, the column vector takes [s 1 (x), s 2 (x), ..., s by the algorithm embodied in R pτ :=F 2 [x]/(1+x pτ ) k+3 (x)]=[s 1 (x), s 2 (x),...,s k (x)]. The product of G is calculated, where G is the matrix of the kxk unit matrix I and a kx3 matrix The kx(k+3) composed of P generates a matrix.
作为本发明的进一步改进:C(k,3,p)码为在Rpτ内穿入一个系统化线性码。As a further improvement of the invention: the C(k,3,p) code is such that a systematic linear code is penetrated within R pτ .
本发明同时提供了一种多容错性的MDS阵列码的修复方法,包括如下步骤:获取已经失效的信息列;若已经失效的信息列则通过第一奇偶校验来修复信息位sl,f,其中l mod 2f∈{0,1,2,...2f-1-1},否则通过第二个奇偶校验来修复信息位sl,f,其中l mod 2f∈{2f-1,2f-1+1,2f-1+2,...,2f-1};若已经失效的信息列通过第一个奇偶校验来修复信息位sl,f,其中l mod 2f∈{0,1,2,...,2f-1-1},否则,通过第三个奇偶校验来修复信息位sl,f,其中l mod 2f∈{2f-1,2f-1+1,2f-1+2,...,2f-1}。The invention also provides a method for repairing a multi-fault-tolerant MDS array code, comprising the steps of: obtaining an information column that has failed; if the information column has failed Then fix the information bits s l,f by the first parity, where l mod 2 f ∈{0,1,2,...2 f-1 -1}, otherwise repaired by the second parity Information bits s l,f , where l mod 2 f ∈{2 f-1 , 2 f-1 +1,2 f-1 +2,...,2 f -1}; if the information column has failed The information bits s l,f are fixed by the first parity, where l mod 2 f ∈{0,1,2,...,2 f-1 -1}, otherwise, pass the third parity To fix the information bits s l,f , where l mod 2 f ∈{2 f-1 , 2 f-1 +1,2 f-1 +2,...,2 f -1}.
作为本发明的进一步改进:已经失效的信息列的修复宽带为
(p-1)((k+2)2k-3-2k-f-2)。As a further improvement of the present invention: the information column that has failed The repaired broadband is (p-1)((k+2)2 k-3 -2 kf-2 ).
作为本发明的进一步改进:第二奇偶校验列和第三奇偶校验列的奇偶校验集不是对应于阵列中呈直线的那些信息列,而是对应于呈折线的那些信息列;阵列的行数被2k-2整除。As a further improvement of the present invention, the parity sets of the second parity column and the third parity column are not corresponding to those columns of information in a straight line in the array, but correspond to those columns of information in a broken line; The number of lines is divisible by 2 k-2 .
本发明的有益效果是:提高了系统的容错性;编解码过程的计算复杂度更低,极大的减少了修复宽带。The invention has the beneficial effects that the fault tolerance of the system is improved; the computational complexity of the codec process is lower, and the repair of the broadband is greatly reduced.
图1为本发明三奇偶校验列所用存储码的实施例示意图。1 is a schematic diagram of an embodiment of a memory code used in a three parity check column of the present invention.
下面结合附图说明及具体实施方式对本发明进一步说明。The invention will now be further described with reference to the drawings and specific embodiments.
缩略语和关键术语定义Abbreviations and definitions of key terms
MDS Maximum Distance Separable 最大距离可分离MDS Maximum Distance Separable Maximum Distance Separable
RDP Row-Diagonal Parity 行对角线校验RDP Row-Diagonal Parity line diagonal check
一种多容错性的MDS阵列码编码,其组成部分为C(k,3,p)码,将数据块分成k(p-1)τ信息位并编码产生3(p-1)τ个冗余位,(p-1)τ为正整数,τ=2k-2,p为素数,k≥3,信息位表示为冗余位表示为其中j为k+1、k+2和k+3,i=1,2,…,k;每个(p-1)τ信息位附加τ额外位并形成消息向量。A multi-fault-tolerant MDS array code coding, the component of which is a C(k,3,p) code, which divides the data block into k(p-1)τ information bits and encodes to generate 3(p-1)τ redundancy. The remaining bits, (p-1)τ is a positive integer, τ=2 k-2 , p is a prime number, k≥3, and the information bits are expressed as Redundant bits are expressed as Where j is k+1, k+2, and k+3, i=1, 2,...,k; each (p-1)τ information bit is appended with τ extra bits and forms a message vector.
将信息列通过多项式进行表示,对应的每一信息列为数据多项式,其对应的三个奇偶校验列形成已编码多项式,数据多项式和已编码多项式形成列向量[s1(x),s2(x),…,sk+3(x)]。The information column is represented by a polynomial, and each corresponding information column is a data polynomial, and the corresponding three parity columns form a coded polynomial, and the data polynomial and the coded polynomial form a column vector [s 1 (x), s 2 (x),...,s k+3 (x)].
所述列向量通过Rpτ:=F2[x]/(1+xpτ)中所体现的算法取[s1(x),s2(x),…,sk+3(x)]=[s1(x),s2(x),…,sk(x)].G的积来进行计算,其中G为由kxk单位矩阵I和一个kx3编码矩阵P所组成的kx(k+3)生成矩阵。The column vector takes [s 1 (x), s 2 (x), ..., s k+3 (x)] by the algorithm embodied in R pτ :=F 2 [x]/(1+x pτ ) =[s 1 (x), s 2 (x),...,s k (x)]. The product of G is calculated, where G is kx (k) consisting of a kxk unit matrix I and a kx3 coding matrix P +3) Generate a matrix.
C(k,3,p)码为在Rpτ内穿入一个系统化线性码。The C(k,3,p) code is a systematic linear code penetrating into R pτ .
本发明同时提供了一种多容错性的MDS阵列码的修复方法,包括如下步骤:获取已经失效的信息列;若已经失效的信息列则通过第一奇偶校验来修复信息位sl,f,其中l mod 2f∈{0,1,2,...2f-1-1},否则通过第二个奇偶校验来修复信
息位sl,f,其中l mod 2f∈{2f-1,2f-1+1,2f-1+2,...,2f-1};若已经失效的信息列通过第一个奇偶校验来修复信息位sl,f,其中l mod 2f∈{0,1,2,...,2f-1-1},否则,通过第三个奇偶校验来修复信息位sl,f,其中l mod 2f∈{2f-1,2f-1+1,2f-1+2,...,2f-1}。The invention also provides a method for repairing a multi-fault-tolerant MDS array code, comprising the steps of: obtaining an information column that has failed; if the information column has failed Then fix the information bits s l,f by the first parity, where l mod 2 f ∈{0,1,2,...2 f-1 -1}, otherwise repaired by the second parity Information bits s l,f , where l mod 2 f ∈{2 f-1 , 2 f-1 +1,2 f-1 +2,...,2 f -1}; if the information column has failed The information bits s l,f are fixed by the first parity, where l mod 2 f ∈{0,1,2,...,2 f-1 -1}, otherwise, pass the third parity To fix the information bits s l,f , where l mod 2 f ∈{2 f-1 , 2 f-1 +1,2 f-1 +2,...,2 f -1}.
已经失效的信息列的修复宽带为(p-1)((k+2)2k-3-2k-f-2)。Information column that has expired The repaired broadband is (p-1) ((k+2) 2 k-3 -2 kf-2 ).
第二奇偶校验列和第三奇偶校验列的奇偶校验集不是对应于阵列中呈直线的那些信息列,而是对应于呈折线的那些信息列;阵列的行数被2k-2整除。The parity sets of the second parity column and the third parity column do not correspond to those columns of information in a line in the array, but correspond to those columns of information in a line; the number of rows of the array is 2 k-2 Divisible.
在一实施例中,多容错性的MDS阵列码的构造如下:In an embodiment, the multi-fault-tolerant MDS array code is constructed as follows:
令k≥3且L=(p-1)τ为正整数,其中τ=2k-2,而p为素数且2为Zp域中的基元。考虑一个文档大小为k(p-1)τ比特,由信息位表示(i=1,2,…,k),其可用于生成3(p-1)τ冗余位
Let k ≥ 3 and L = (p-1) τ be positive integers, where τ = 2 k-2 , and p is a prime number and 2 is a primitive in the Z p domain. Consider a document size of k(p-1) τ bits, by information bits Represents (i = 1, 2, ..., k), which can be used to generate 3 (p-1) τ redundant bits
对于l=1,2,…,k+3及μ=0,1,…τ-1,定义如下速记表示法:For l = 1, 2, ..., k + 3 and μ = 0, 1, ... τ-1, the following shorthand notation is defined:
称为额外比特,其与相关。例如,当p=3,k=4及τ=4时,的额外位为Weigh For extra bits, Related. For example, when p=3, k=4, and τ=4, Extra bit is
对于l=1,2,…,k+3,通过环F2[x]上的多项式sl(x)将列l中的比特
与τ额外比特共同表达为多项式sl(x):For l = 1, 2, ..., k + 3, the bits in column l are passed through the polynomial s l (x) on the ring F 2 [x] Extra bit with τ Co-expressed as a polynomial s l (x):
对应于第i信息列(i=1,2,…,k)的多项式si(x)被称为数据多项式,对应于j-k奇偶校验列(j=k+1,.k+2,.k+3)的多项式被称为编码多项式。The polynomial s i (x) corresponding to the i-th information column (i = 1, 2, ..., k) is called a data polynomial, corresponding to the jk parity column (j = k + 1, .k + 2,. The polynomial of k + 3) is called a coding polynomial.
将k个数据多项式和3个编码多项式写为列向量Write k data polynomials and 3 coding polynomials as column vectors
[s1(x),s2(x),...,sk+3(x)], (3)[s 1 (x), s 2 (x),...,s k+3 (x)], (3)
其可通过利用中所体现的算法取[s1(x),s2(x),...,sk+3(x)]=[s1(x),s2(x),...,sk(x)]·G的积来进行计算。kx(k+3)生成矩阵G由kxk单位矩阵I和一个kx3编码矩阵P所组成,It can be utilized The algorithm embodied in [S 1 (x), s 2 (x),..., s k+3 (x)]=[s 1 (x), s 2 (x),...,s The product of k (x)]·G is calculated. The kx(k+3) generation matrix G is composed of a kxk unit matrix I and a kx3 coding matrix P,
在环Rpτ中,变量x代表多项式上的循环右移运算符。这对于减小一个信息列失效的修复带宽而言至关重要。所提出的代码表示为C(k,3,p)。请注意不会将额外比特存储在磁盘上;它们仅用于表示的方便性。考虑k=4且p=3这样一个示例,32个信息比特由s0,i,s1,i,...,s7,i来表示,其中i=1,2,3,4。该示例的编码矩阵为In the ring R pτ , the variable x represents the cyclic right shift operator on the polynomial. This is critical to reducing the repair bandwidth for a column failure. The proposed code is represented as C(k,3,p). Please note that extra bits are not stored on disk; they are for convenience only. Consider an example where k=4 and p=3, 32 information bits are represented by s 0,i , s 1,i ,...,s 7, i , where i=1, 2, 3, 4. The encoding matrix for this example is
该示例在图1中进行了阐明,其中字体加粗的比特元为额外位。This example is illustrated in Figure 1, where the bolded bit elements are extra bits.
编码过程可用如下多项式的形式来描述。给定k(p-1)τ信息比特,为每个(p-1)τ信息比特附加τ额外位,并形成消息向量[s1(x),s2(x),...,sk(x)]。The encoding process can be described in the form of a polynomial as follows. Given k(p-1)τ information bits, τ extra bits are appended for each (p-1)τ information bit and form a message vector [s 1 (x), s 2 (x),...,s k (x)].
在获得(3)中的向量后,存储次数为0到(p-1)τ-1多项式中的项系数。所提出的阵列码可被看作为在Rpτ内运算的一个系统线性码。After obtaining the vector in (3), the number of times of storage is 0 to the term coefficient in the (p-1) τ-1 polynomial. The proposed array code can be viewed as a systematic linear code that operates within Rpτ.
一次信息失效的渐进最优修复,在一实施例中,将会展示如何通过访问来自k-1个其它信息列以及2个奇偶校验列的位元来修复存储在信息列f中的比特s0,f,s1,f,...,s(p-1)τ-1,f且具有渐进最优修复带宽,其中1≤f≤k。请记住可以由(2)计算额外比特。为了表示的方便性,将列i的比特元表示为pτ位s0,i,s1,i,...,spτ-1,i。在给出修复算法之前,正式将奇偶校验集作如下定义。A progressive optimal repair of information failure, in one embodiment, will show how to repair the bits stored in information column f by accessing bits from k-1 other columns of information and 2 parity columns. 0, f , s 1, f , ..., s (p-1) τ -1, f and have a progressive optimal repair bandwidth, where 1 ≤ f ≤ k. Remember that extra bits can be calculated by (2). For convenience of representation, the bit elements of column i are represented as pτ bits s 0,i , s 1,i ,...,s pτ-1,i . Before the repair algorithm is given, the parity set is formally defined as follows.
定义1.对于0≤l≤pτ-1,将第一列、第二列和第三列的第l个奇偶校验集分别定义为 Definition 1. For 0 ≤ l ≤ pτ-1, define the first parity set of the first column, the second column, and the third column as
请注意定义1及全文中的所有指数取模为pτ。由定义1,奇偶校验集包括多个信息比特,其可用于生成冗余位当说一个信息比特由一个奇偶校验列所修复时,这意味着除了已擦除比特以外,访问了奇偶校验列的冗余位以及该奇偶校验列中的所有信息比特。考虑图1中给出的示例。假定第一列被擦除。人们可以访问位比特s0,2,s0,3,s0,4以及冗余比特s0,1+s0,2+s0,3+s0,4以通过s0,2+s0,3+s0,4+(s0,1+s0,2+s0,3+s0,4)来重建s0,1。Please note that all indices in definition 1 and in the full text are modulo pτ. By definition 1, parity set Includes multiple information bits that can be used to generate redundant bits When it is said that one information bit is repaired by a parity column, this means that in addition to the erased bits, the redundant bits of the parity column and all the information bits in the parity column are accessed. Consider the example given in Figure 1. Assume that the first column is erased. One can access the bit bits s 0,2 , s 0,3 , s 0,4 and the redundant bits s 0,1 +s 0,2 +s 0,3 +s 0,4 to pass s 0,2 +s 0,3 +s 0,4 +(s 0,1 +s 0,2 +s 0,3 +s 0,4 ) to reconstruct s 0,1 .
修复算法在算法1中做了陈述。来再次考虑图1所给出的示例,以详细阐述修复过程。在该示例中,k=5,d=5且τ=4。假设第一信息列(即节点1)失效,也就是说f=1。依照算法1中的第2、3步,可以通过第一个奇偶校验列来修复比特其中且0≤l≤7。更具体地说,比特s0,1,s2,1,s4,1,s6,1由s0,1=s0,2+s0,3+s0,4+(s0,1+s0,2+s0,3+s0,4)s2,1=s2,2+s2,3+s2,4+(s2,1+s2,2+s2,3+s2,4)s4,1=s4,2+s4,3+s4,4+(s4,1+s4,2+s4,3+s4,4)s6,1=s6,2+s6,3+s6,4+(s6,1+s6,2+s6,3+s6,4)重建。The repair algorithm is stated in Algorithm 1. Consider again the example given in Figure 1 to elaborate on the repair process. In this example, k=5, d=5 and τ=4. Assume that the first column of information (ie, node 1) fails, that is, f=1. According to steps 2 and 3 in Algorithm 1, the bit can be repaired by the first parity column. among them And 0 ≤ l ≤ 7. More specifically, the bits s 0,1 , s 2,1 , s 4,1 , s 6,1 are from s 0,1 =s 0,2 +s 0,3 +s 0,4 +(s 0, 1 +s 0,2 +s 0,3 +s 0,4 )s 2,1 =s 2,2 +s 2,3 +s 2,4 +(s 2,1 +s 2,2 +s 2 ,3 +s 2,4 )s 4,1 =s 4,2 +s 4,3 +s 4,4 +(s 4,1 +s 4,2 +s 4,3 +s 4,4 )s 6,1 =s 6,2 +s 6,3 +s 6,4 +(s 6,1 +s 6,2 +s 6,3 +s 6,4 ) reconstruction.
由于f=1∈{1,2},其它信息比特由第二奇偶校验列修复,其中且0≤l≤7。Since f=1∈{1,2}, other information bits Repaired by the second parity column, where And 0 ≤ l ≤ 7.
因此,比特s1,1,s3,1,s5,1,s7,1由s1,1=s0,2+s10,3+s2,4+(s1,1+s0,2+s10,3+s2,4)s3,1=s2,2+s0,3+s4,4+(s3,1+s2,2+s0,3+s4,4)s5,1=s4,2+s2,3+s6,4+(s5,1+s10,2+s8,3+s0,4)s7,1=s6,2+s4,3+s8,4+(s11,1+s10,2+s8,3+s0,4)+(s3,1+s2,2+s0,3+s4,4)重建。Therefore, the bits s 1,1 , s 3,1 , s 5,1 , s 7,1 are s 1,1 =s 0,2 +s 10,3 +s 2,4 +(s 1,1 +s 0,2 +s 10,3 +s 2,4 )s 3,1 =s 2,2 +s 0,3 +s 4,4 +(s 3,1 +s 2,2 +s 0,3 + s 4,4 )s 5,1 =s 4,2 +s 2,3 +s 6,4 +(s 5,1 +s 10,2 +s 8,3 +s 0,4 )s 7,1 =s 6,2 +s 4,3 +s 8,4 +(s 11,1 +s 10,2 +s 8,3 +s 0,4 )+(s 3,1 +s 2,2 +s 0,3 +s 4,4 ) Reconstruction.
因为可以通过s6,3+s2,3计算s10,3以及通过s4,4+s0,4计算s8,4,所以无需下载比特s10,3和s8,4。因此,认为需要从三个信息列以及两个奇偶校验列的每一列下载四个比特。要修复第一信息列的比特总共需要从五列下载20个位元。也就是说,用于修复的数据列的比特只有一半受到了访问。在图1中,实线框内的比特会被下载,以修复信息比特s0,1,s2,1,s4,1,s6,1,并且虚线框内的位元会被用来修复信息比特s1,1,s3,1,s5,1,s7,1。假设第二信息列(即节点2)失效,也就是说f=2。依照算法1中的第2、3步,可以通过 修复比特s0,2,s1,2,s4,2,s5,2。Since s 10,3 can be calculated by s 6,3 +s 2,3 and s 8,4 is calculated by s 4,4 +s 0,4 , there is no need to download bits s 10,3 and s 8,4 . Therefore, it is considered necessary to download four bits from each of the three columns of information and two columns of parity. To repair the bits of the first information column, a total of 20 bits need to be downloaded from five columns. That is, only half of the bits of the data column used for repair are accessed. In Figure 1, the bits in the solid line box are downloaded to fix the information bits s 0,1 , s 2,1 , s 4,1 , s 6,1 and the bits in the dashed box are used. Fix the information bits s 1,1 , s 3,1 , s 5,1 , s 7,1 . Assume that the second column of information (ie, node 2) fails, that is, f=2. According to steps 2 and 3 in Algorithm 1, you can pass Repair bits s 0,2 , s 1,2 , s 4,2 , s 5,2 .
类似地,可以通过
s2,2=s3,1+s0,3+s4,4+(s3,1+s2,2+s0,3+s4,4)s3,2=s4,1+s1,3+s5,4+(s4,1+s3,2+s1,3+s5,4)s6,2=s7,1+s4,3+s0,4+s4,4+(s11,1+s10,2+s8,3+s0,4)+(s3,1+s2,3+s0,3+s4,4)s7,2=s0,1+s4,1+s5,3+s1,4+s5,4+(s0,1+s11,2+s9,3+s1,4)+(s4,1+s3,2+s1,3+s5,4).修复比特s2,2,s3,2,s6,2,s7,2。Similarly, it can pass s 2,2 =s 3,1 +s 0,3 +s 4,4 +(s 3,1 +s 2,2 +s 0,3 +s 4,4 )s 3,2 =s 4,1 +s 1,3 +s 5,4 +(s 4,1 +s 3,2 +s 1,3 +s 5,4 )s 6,2 =s 7,1 +s 4, 3 +s 0,4 +s 4,4 +(s 11,1 +s 10,2 +s 8,3 +s 0,4 )+(s 3,1 +s 2,3 +s 0,3 + s 4,4 )s 7,2 =s 0,1 +s 4,1 +s 5,3 +s 1,4 +s 5,4 +(s 0,1 +s 11,2 +s 9,3 +s 1,4 )+(s 4,1 +s 3,2 +s 1,3 +s 5,4 ). Repair bits s 2,2 ,s 3,2 ,s 6,2 ,s 7,2 .
因此,存储在第二信息列中的八个比特可通过下载来自第一信息列的六个比特和来自第三信息列、第四信息列、第一奇偶校验列以及第二奇偶校验列中每一列的四个比特予以恢复。修复过程中总共下载了22个比特。对于图1中所给出的代码,第三信息列和最后信息列可分别通过访问来自5列的22个比特和20个比特予以重建。Therefore, the eight bits stored in the second information column can be downloaded by downloading six bits from the first information column and from the third information column, the fourth information column, the first parity column, and the second parity column. The four bits in each column are restored. A total of 22 bits were downloaded during the repair process. For the code given in Figure 1, the third column of information and the last column of information can be reconstructed by accessing 22 bits and 20 bits from 5 columns, respectively.
定理3:当时,由算法1得出的信息列f修复带宽为Theorem 3: When At the time, the information column f obtained by Algorithm 1 repairs the bandwidth as
(p-1)((k+2)2k-3-2k-f-2)。(p-1) ((k+2) 2 k-3 -2 kf-2 ).
证明:按照算法1,比特通过第一奇偶校验列的奇偶校验集进行修复,其中l mod 2f∈{0,1,2,...,2f-1-1}且因此,需要从剩余k-1个信息列的每一列来访问(p-1)τ/2个位元其中i∈{1,2,...,f-1,f+1,...,k}且l mod 2f∈{0,1,2,...,2f-1-1},并且从第一奇偶校验列下载(p-1)τ/2个冗余比特其中l mod 2i∈{0,1,2,...,2i-1-1}。由此得出,有k(p-1)τ/2个位元需要下载。Proof: according to algorithm 1, bit Through the parity set of the first parity column Repair, where l mod 2 f ∈{0,1,2,...,2 f-1 -1} and Therefore, it is necessary to access (p-1)τ/2 bits from each column of the remaining k-1 information columns. Where i∈{1,2,...,f-1,f+1,...,k} and l mod 2 f ∈{0,1,2,...,2 f-1 -1} And download (p-1)τ/2 redundant bits from the first parity column Where l mod 2 i ∈ {0,1,2,..., 2i-1 -1}. It follows that there are k(p-1)τ/2 bits that need to be downloaded.
对于l mod 2f∈{2f-1,2f-1+1,2f-1+2,...,2f-1},位元通过进行修复。请记住因此需要访问(p-1)τ/2个冗余位
For l mod 2 f ∈{2 f-1 , 2 f-1 +1,2 f-1 +2,...,2 f -1}, bit by Make a repair. please remember Therefore, you need to access (p-1)τ/2 redundant bits.
对于i∈{1,2,...,f-1}的列i,需要(p-1)τ/2位其中l mod 2f的全部值位于集{0,1,...,2f-1-2i-1-1,2f-2i-1,2f-2i-1+1,...,2f-1}之中。而对于i∈{f+1,f+2,...,k}的列i,需要(p-1)τ/2位其中l mod 2f∈{0,1,2,...,2f-1-1}。For column i of i ∈ {1, 2, ..., f-1}, (p-1) τ / 2 bits are required Where all values of l mod 2f are located in the set {0,1,...,2 f-1 -2 i-1 -1,2 f -2 i-1 ,2 f -2 i-1 +1,.. ., 2 f -1}. For column i of i∈{f+1,f+2,...,k}, (p-1)τ/2 bits are required. Where l mod 2 f ∈ {0,1,2,...,2 f-1 -1}.
请注意,在修复过程中,位元(其中l mod 2f∈{0,1,2,...,2f-1-1}且)已经通过第一奇偶校验列下载。因而,只需要从第二奇偶校验列下载(p-1)τ/2个冗余位,以及从列i下载(p-1)2k+i-f-3个位元,其中i=1,2,...,f-1。Please note that during the repair process, the bit (where l mod 2 f ∈{0,1,2,...,2 f-1 -1} and ) has been downloaded through the first parity column. Thus, it is only necessary to download (p-1)τ/2 redundant bits from the second parity column and download (p-1) 2 k+if-3 bits from column i, where i=1, 2,...,f-1.
可以算出修复信息列f需要从k+2列下载的位元总数为It can be calculated that the total number of bits that need to be downloaded from the k+2 column for the repair information column f is
当时,根据算法1,信息列k+1-f的修复带宽与列f的修复带宽相同。因此,只考虑的情形。按照定理3,当f增大时,修复带宽随之增
大。当f=1时,修复带宽为这样就在(1)中获得了最优值。即便对于的最坏情形,修复带宽为(p-1)((k+2)2k-3-2k-[k/2]-2)<(p-1)(k+2)2k-3,这严格的低于(1)中值的倍。when According to Algorithm 1, the repair bandwidth of the information column k+1-f is the same as the repair bandwidth of the column f. Therefore, only consider The situation. According to Theorem 3, as f increases, the repair bandwidth increases. When f=1, the repair bandwidth is Thus, the optimal value is obtained in (1). Even for In the worst case scenario, the repair bandwidth is (p-1)((k+2)2 k-3 -2 k-[k/2]-2 )<(p-1)(k+2)2 k-3 , which is strictly below the median of (1) Times.
因此,当k足够大时,任何一个信息失效的修复带宽可渐进地在(1)中获得最优修复。Therefore, when k is large enough, the repair bandwidth of any one information failure can be gradually optimized in (1).
应当指出的是,所提出代码中第一奇偶校验列的奇偶校验集与RDP和EVENODD中第一奇偶校验列的奇偶校验集相同。所提出的代码与现有的二进制MDS阵列码之间的关键区别在于第二和第三奇偶校验列的构造。首先,所提出的代码中的第二和第三奇偶校验列的奇偶校验集不是对应于阵列中呈直线的那些位元,而是对应于呈折线的那些位元。其次,所提出代码中阵列的行数可以被2k-2整除。这两个性质对于减少修复带宽至关重要。It should be noted that the parity set of the first parity column in the proposed code is the same as the parity set of the first parity column in RDP and EVENODD. The key difference between the proposed code and the existing binary MDS array code is the construction of the second and third parity columns. First, the parity sets of the second and third parity columns in the proposed code do not correspond to those bits that are straight in the array, but rather to those bits that are in a broken line. Second, the number of rows in the array in the proposed code can be divisible by 2 k-2 . These two properties are critical to reducing the repair bandwidth.
参考文献references
[1]L.Xu和J.Bruck,“X码:具有最优编码的MDS阵列码”IEEE信息理论会报,1999年第45卷第1期第272–276页。[1] L. Xu and J. Bruck, "X Code: MDS Array Code with Optimal Coding" IEEE Information Theory Conference, Vol. 45, No. 1, 1999, pp. 272-276.
[2]P.Corbett、B.English、A.Goel、T.Grcanac,S.Kleiman、J.Leong和S.Sankar,“用于双磁盘失效校正的行-对角线奇偶校验”,第3届USENIX会议文档及存储技术论文集,2004年第1–14页。[2] P. Corbett, B. English, A. Goel, T. Grcanac, S. Kleiman, J. Leong, and S. Sankar, "Line-Diagonal Parity for Dual Disk Failure Correction", Section 3rd USENIX Conference Document and Storage Technology Proceedings, 2004, pp. 1–14.
[3]C.Huang和L.Xu,“STAR:一种用于校正三重存储节点失效的有效编码方案”,IEEE计算机会报,2008年第57卷第7期第889–901页。[3] C. Huang and L. Xu, “STAR: An Effective Coding Scheme for Correcting Failure of Triple Storage Nodes”, IEEE Computer Report, Vol. 57, No. 7, 2008, pp. 889–901.
[4]M.Blaum,“一系列具有最小编码运算数的MDS阵列码”,IEEE信息理论国际研讨会,2006年第2784–2788页。[4] M. Blaum, “A series of MDS array codes with minimum coding operands”, IEEE International Symposium on Information Theory, 2006, 2784–2788.
[5]A.Dimakis、P.Godfrey、Y.Wu、M.Wainwright和K.Ramchandran,“用于分布式存储系统的网络编码”,IEEE信息理论会报,2010年9月第56卷第9期第4539–4551页。[5] A. Dimakis, P. Godfrey, Y. Wu, M. Wainwright, and K. Ramchanandran, "Network Coding for Distributed Storage Systems," IEEE Information Theory Conference, September 2010, Volume 56, Section 9. Issues 4539–4551.
[6]I.Tamo,Z.Wang和J.Bruck,“曲折码:具有最优重建的MDS阵列码”IEEE信息理论会报,2013年第59卷第3期第1597–1616页。[6] I. Tamo, Z. Wang and J. Bruck, “Zigzag: MDS Array Code with Optimal Reconstruction” IEEE Information Theory Conference, Vol. 59, No. 3, 2013, pp. 1597–1616.
[7]L.Xiang、Y.Xu、J.Lui和Q.Chang,“RDP编码存储系统中单磁盘失效的最优修复”ACM SIGMETRICS性能评估版,2010年ACM第38卷第1期第119–130页。[7] L. Xiang, Y.Xu, J. Lui, and Q. Chang, “Optimal Repair of Single Disk Failure in RDP Coded Storage Systems” ACM SIGMETRICS Performance Evaluation Edition, 2010 ACM Vol. 38, No. 1, No. 119 –130 pages.
[8]S.Xu、R.Li、P.P.Lee、Y.Zhu、L.Xiang、Y.Xu和J.Lui,“用于X码基平行存储系统的单磁盘失效恢复”IEEE计算机会报,2014年第6卷第4期第
995–1007页。[8]S.Xu, R.Li, PLelei, Y.Zhu, L.Xiang, Y.Xu, and J.Lui, "Single Disk Failure Recovery for X Code Base Parallel Storage Systems" IEEE Computer Report, Volume 6, Issue 4, 2014
995–1007 pages.
[9]Y.Wang、X.Yin、和X.Wang,“MDR编码:一种具有最优重建和编码方式的RAID-6编码类别”IEEE通讯选定区域期刊,2013年第32卷第5期第1008–1018页。[9] Y. Wang, X.Yin, and X. Wang, "MDR Coding: A RAID-6 Coding Class with Optimal Reconstruction and Coding Modes" IEEE Communications Selected Region Journal, Vol. 32, No. 5, 2013 Issues 1008–1018.
[10]——,“两种具有最优修复的双奇偶校验MDS阵列码新类别”,IEEE通讯快报,2016年第20卷第7期第1293–1296页。[10] --, "Two new categories of double parity MDS array codes with optimal repair", IEEE Communications Letters, Vol. 20, No. 7, 2016, pp. 1293–1296.
[11]L.Pamies-Juarez、F.Blagojevic、R.Mateescu,C.Gyuot、E.E.Gad和Z.Bandic,“打破束缚:MSR编码的真实修复性能”第14届USENIX文档及存储技术会议(FAST 16),2016年第81–94页。[11] L. Pamies-Juarez, F. Blagojevic, R. Mateescu, C. Gyuot, EEGad, and Z. Bandic, “Breaking the Bound: The Real Repair Performance of MSR Coding” 14th USENIX Document and Storage Technology Conference (FAST 16), 2016, pp. 81–94.
[12]K.W.Shum、H.Hou、M.Chen、H.Xu和H.Li,“在二进制循环码中重新生成代码”,IEEE信息理论研讨会论文集,2014年7月檀香山,第1046–1050页。[12] KWShum, H.Hou, M. Chen, H.Xu, and H.Li, “Regenerating Code in Binary Cyclic Codes”, IEEE Information Theory Symposium Proceedings, Honolulu, July 2014, 1046 – 1050 pages.
[13]H.Hou、K.W.Shum、M.Chen和H.Li,“校正多重磁盘失效的新型MDS阵列码”,全球通讯会议,2015年第2369–2374页。[13] H. Hou, K.W. Shum, M. Chen, and H. Li, "New MDS Array Codes for Multiple Disk Failures", Global Communications Conference, 2015, pp. 2369–2374.
[14]——,“BASIC代码:用于分布式存储系统的低复杂度再生代码”IEEE信息理论会报,2016年第62卷第6期第3053–3069页。[14]-, "BASIC Code: Low Complexity Reproduction Code for Distributed Storage Systems" IEEE Information Theory Conference, Vol. 62, No. 6, 2016, pp. 3053–369.
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
The above is a further detailed description of the present invention in connection with the specific preferred embodiments, and the specific embodiments of the present invention are not limited to the description. It will be apparent to those skilled in the art that the present invention may be made without departing from the spirit and scope of the invention.
Claims (7)
- 一种多容错性的MDS阵列码编码,其特征在于:其组成部分为C(k,3,p)码,将数据块表示成k(p-1)τ信息位并编码产生3(p-1)τ个冗余位,(p-1)τ为正整数,τ=2k-2,p为素数,k≥3,信息位表示为s0,i,s1,i,...,s(p-1)τ-1,冗余位表示为s0,j,s1,j,...,s(p-1)τ-1,其中j为k+1、k+2和k+3,i=1,2,…,k;每个(p-1)τ信息位附加τ额外位并形成消息向量。A multi-fault-tolerant MDS array code coding, characterized in that the component is a C(k, 3, p) code, and the data block is represented as a k(p-1)τ information bit and encoded to generate 3 (p- 1) τ redundant bits, (p-1) τ is a positive integer, τ = 2 k-2 , p is a prime number, k ≥ 3, information bits are represented as s 0,i , s 1,i ,... , s (p-1)τ-1 , Redundant bits are denoted as s 0,j , s 1,j ,...,s (p-1)τ-1 , Where j is k+1, k+2, and k+3, i=1, 2,...,k; each (p-1)τ information bit is appended with τ extra bits and forms a message vector.
- 根据权利要求1所述的多容错性的MDS阵列码编码,其特征在于:将信息列通过多项式进行表示,对应的每一信息列为数据多项式,其对应的三个奇偶校验列形成已编码多项式,数据多项式和已编码多项式形成列向量[s1(x),s2(x),…,sk+3(x)]。The multi-fault-tolerant MDS array code encoding according to claim 1, wherein the information column is represented by a polynomial, and each corresponding information column is a data polynomial, and the corresponding three parity columns form an encoded code. The polynomial, the data polynomial and the coded polynomial form the column vector [s 1 (x), s 2 (x), ..., s k+3 (x)].
- 根据权利要求1所述的多容错性的MDS阵列码编码,其特征在于:所述列向量通过Rpτ:=F2[x]/(1+xpτ)中所体现的算法取[s1(x),s2(x),…,sk+3(x)]=[s1(x),s2(x),…,sk(x)].G的积来进行计算,其中G为由k x k单位矩阵I和一个k x 3编码矩阵P所组成的k x (k+3)生成矩阵。The multi-fault-tolerant MDS array code encoding according to claim 1, wherein said column vector is obtained by an algorithm embodied in R pτ :=F 2 [x]/(1+x pτ ) [s 1 (x), s 2 (x),...,s k+3 (x)]=[s 1 (x), s 2 (x),...,s k (x)]. Where G is a kx (k+3) generation matrix composed of a kxk unit matrix I and a kx 3 coding matrix P.
- 根据权利要求1所述的多容错性的MDS阵列码编码,其特征在于:C(k,3,p)码为在Rpτ内穿入一个系统化线性码。The multi-fault-tolerant MDS array code encoding according to claim 1, wherein the C(k,3,p) code is a systemized linear code penetrating within R pτ .
- 一种多容错性的MDS阵列码的修复方法,其特征在于:包括如下步骤:获取已经失效的信息列;若已经失效的信息列则通过第一奇偶校验来修复信息位sl,f,其中l mod 2f∈{0,1,2,...2f-1-1},否则通过第二个奇偶校验来修复信息位sl,f,其中l mod 2f∈{2f-1,2f-1+1,2f-1+2,...,2f-1};若已经失效的信息列通过第一个奇偶校验来修复信息位sl,f,其中l mod 2f∈{0,1,2,...,2f-1-1},否则,通过第三个奇偶校验来修复信息位sl,f,其中l mod2f∈{2f-1,2f-1+1,2f-1+2,...,2f-1}。A method for repairing a multi-faulty MDS array code, comprising: the steps of: obtaining an information column that has failed; if the information column has failed Then fix the information bits s l,f by the first parity, where l mod 2 f ∈{0,1,2,...2 f-1 -1}, otherwise repaired by the second parity Information bits s l,f , where l mod 2 f ∈{2 f-1 , 2 f-1 +1,2 f-1 +2,...,2 f -1}; if the information column has failed The information bits s l,f are fixed by the first parity, where l mod 2 f ∈{0,1,2,...,2 f-1 -1}, otherwise, pass the third parity To fix the information bits s l,f , where l mod2 f ∈{2 f-1 , 2 f-1 +1,2 f-1 +2,...,2 f -1}.
- 根据权利要求5所述的修复方法,其特征在于:第二奇偶校验列和第三奇偶校验列的奇偶校验集不是对应于阵列中呈直线的那些信息列,而是对应于呈折线的那些信息列;阵列的行数被2k-2整除。 The repairing method according to claim 5, wherein the parity sets of the second parity column and the third parity column do not correspond to those columns of the line in the array, but correspond to the dotted line Those columns of information; the number of rows in the array is divisible by 2 k-2 .
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710566011.XA CN107395207B (en) | 2017-07-12 | 2017-07-12 | The MDS array code of more fault-tolerances encodes and restorative procedure |
CN201710566011.X | 2017-07-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018171111A1 true WO2018171111A1 (en) | 2018-09-27 |
Family
ID=60339499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2017/097669 WO2018171111A1 (en) | 2017-07-12 | 2017-08-16 | Multi-fault tolerance mds array code encoding and repair method |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107395207B (en) |
WO (1) | WO2018171111A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11038533B2 (en) | 2019-04-25 | 2021-06-15 | International Business Machines Corporation | Expansion for generalized EVENODD codes |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109257050A (en) * | 2018-08-09 | 2019-01-22 | 东莞理工学院 | A kind of reparation binary code generator matrix building method and restorative procedure |
CN109062725A (en) * | 2018-08-09 | 2018-12-21 | 东莞理工学院 | A kind of coding framework method of binary system MDS array code |
CN109257049B (en) * | 2018-08-09 | 2020-11-06 | 东莞理工学院 | Construction method for repairing binary array code check matrix and repairing method |
CN110289864A (en) * | 2019-08-01 | 2019-09-27 | 东莞理工学院 | The optimal reparation access transform method and device of binary system MDS array code |
CN110532128B (en) * | 2019-08-16 | 2021-04-20 | 西安交通大学 | Erasure code coding and data reconstruction method for reducing data updating cost |
CN110750382B (en) * | 2019-09-18 | 2020-10-30 | 华中科技大学 | Minimum storage regeneration code coding method and system for improving data repair performance |
CN110704232B (en) * | 2019-10-10 | 2023-03-14 | 广东工业大学 | Method, device and equipment for repairing failed node in distributed system |
CN111143108B (en) * | 2019-12-09 | 2023-05-02 | 成都信息工程大学 | Coding and decoding method and device for reducing array code Xcode repair |
CN111988437B (en) * | 2020-09-15 | 2023-03-24 | 东莞理工学院 | Universal Expanded-Blaum-Roth code encoding method and decoding method thereof |
CN113641531A (en) * | 2021-07-27 | 2021-11-12 | 东莞理工学院 | STAR code encoding method and decoding method thereof |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100153822A1 (en) * | 2008-12-15 | 2010-06-17 | Microsoft Corporation | Constructing Forward Error Correction Codes |
CN102624866A (en) * | 2012-01-13 | 2012-08-01 | 北京大学深圳研究生院 | Data storage method, data storage device and distributed network storage system |
WO2016058289A1 (en) * | 2015-01-20 | 2016-04-21 | 北京大学深圳研究生院 | Mds erasure code capable of repairing multiple node failures |
-
2017
- 2017-07-12 CN CN201710566011.XA patent/CN107395207B/en active Active
- 2017-08-16 WO PCT/CN2017/097669 patent/WO2018171111A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100153822A1 (en) * | 2008-12-15 | 2010-06-17 | Microsoft Corporation | Constructing Forward Error Correction Codes |
CN102624866A (en) * | 2012-01-13 | 2012-08-01 | 北京大学深圳研究生院 | Data storage method, data storage device and distributed network storage system |
WO2016058289A1 (en) * | 2015-01-20 | 2016-04-21 | 北京大学深圳研究生院 | Mds erasure code capable of repairing multiple node failures |
Non-Patent Citations (1)
Title |
---|
YONGJUN: "the research about the encoding and repair mechanism based on erasure code in the distributed storage system", 15 May 2017 (2017-05-15) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11038533B2 (en) | 2019-04-25 | 2021-06-15 | International Business Machines Corporation | Expansion for generalized EVENODD codes |
Also Published As
Publication number | Publication date |
---|---|
CN107395207A (en) | 2017-11-24 |
CN107395207B (en) | 2019-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018171111A1 (en) | Multi-fault tolerance mds array code encoding and repair method | |
US11233643B1 (en) | Distributed data storage system data decoding and decryption | |
US10740183B1 (en) | Recovering failed devices in distributed data centers | |
US9432341B2 (en) | Securing data in a dispersed storage network | |
US9110819B2 (en) | Adjusting data dispersal in a dispersed storage network | |
US9270298B2 (en) | Selecting storage units to rebuild an encoded data slice | |
Blaum et al. | Partial-MDS codes and their application to RAID type of architectures | |
US8744071B2 (en) | Dispersed data storage system data encryption and encoding | |
US9154298B2 (en) | Securely storing data in a dispersed storage network | |
US9170884B2 (en) | Utilizing cached encoded data slices in a dispersed storage network | |
WO2020047707A1 (en) | Data coding, decoding and repairing method for distributed storage system | |
US20150356305A1 (en) | Secure data access in a dispersed storage network | |
US20050102548A1 (en) | Method and apparatus for enabling high-reliability storage of distributed data on a plurality of independent storage devices | |
US20140195875A1 (en) | Achieving storage compliance in a dispersed storage network | |
Hou et al. | Binary MDS array codes with optimal repair | |
Gad et al. | Repair-optimal MDS array codes over GF (2) | |
Hou et al. | Triple-fault-tolerant binary MDS array codes with asymptotically optimal repair | |
Hou et al. | A new construction of EVENODD codes with lower computational complexity | |
WO2020029418A1 (en) | Method for constructing repair binary code generator matrix and repair method | |
Hou et al. | STAR+ codes: Triple-fault-tolerant codes with asymptotically optimal updates and efficient encoding/decoding | |
US20240095124A1 (en) | Storing Data Objects in a Storage Network with Multiple Memory Types | |
Malluhi et al. | Coding for high availability of a distributed-parallel storage system | |
Balaji et al. | On partial maximally-recoverable and maximally-recoverable codes | |
Chen et al. | A new Zigzag MDS code with optimal encoding and efficient decoding | |
Yang et al. | Hierarchical coding to enable scalability and flexibility in heterogeneous cloud storage |
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: 17902421 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: 17902421 Country of ref document: EP Kind code of ref document: A1 |