WO2018166078A1 - Mds array code encoding and decoding method for repairing failure of multiple nodes - Google Patents

Mds array code encoding and decoding method for repairing failure of multiple nodes Download PDF

Info

Publication number
WO2018166078A1
WO2018166078A1 PCT/CN2017/087770 CN2017087770W WO2018166078A1 WO 2018166078 A1 WO2018166078 A1 WO 2018166078A1 CN 2017087770 W CN2017087770 W CN 2017087770W WO 2018166078 A1 WO2018166078 A1 WO 2018166078A1
Authority
WO
WIPO (PCT)
Prior art keywords
code
polynomial
information
columns
redundant
Prior art date
Application number
PCT/CN2017/087770
Other languages
French (fr)
Chinese (zh)
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 东莞理工学院
Publication of WO2018166078A1 publication Critical patent/WO2018166078A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/02Conversion 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/04Conversion 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]

Definitions

  • the present invention relates to the field of data processing, and in particular, to an MDS array code encoding and decoding method for repairing multi-node failure.
  • the encoding method generally adopts the MDS code, and the MDS code can achieve the optimization of the storage space efficiency.
  • One (n, k) MDS code needs to divide a raw data file into k equal-sized data blocks through linear
  • the encoding generates n mutually uncorrelated coding blocks, and n coding blocks are stored by n nodes. If n coding blocks contain the original k data blocks, the other n-k coding blocks are referred to as redundant blocks, and the MDS code including k data blocks is referred to as a system MDS code.
  • the MDS code satisfies the MDS attribute: that is, taking any k of n code blocks can decode the original k data blocks.
  • This coding technology plays an important role in providing effective network storage coding, and is particularly suitable for storing large files and archival data backup.
  • data is encoded in some way and the result of the encoding is stored in n storage nodes.
  • This process is called an encoding process.
  • the data receiver only needs to connect and download the data of any k storage nodes of the n storage nodes to recover the original data.
  • This process is called a data reconstruction process or a decoding process.
  • the MDS array code is a kind of MDS code, which is characterized in that only a simple binary exclusive OR operation is used in the encoding and decoding process, so it can be easily and efficiently implemented in the system.
  • the invention is a binary system MDS array code capable of accommodating loss, encoding and decoding computational complexity of any n-k coding blocks.
  • EVENODD code cited in the paper [M.Blaum, J. Brady, J. Bruck, and J. Menon, "EVENODD: An efficient scheme for tolerating double disk failures in RAID architectures," IEEE Transactions on Computers, vol.44, no .2, pp. 192–202, 1995].
  • the EVENODD code is an MDS array code that can accommodate 2 coded block losses. In the EVENODD code, it is required that the number of data blocks must be a prime number and the number of redundant blocks is two. The encoding process of the EVENODD code requires only a simple binary exclusive OR operation, and each redundant bit of the two check blocks is an information bit XOR result that passes through a straight line with a slope of 0 and 1. However, the EVENODD code has the drawback of being non-expandable: the EVENODD code has only two check blocks, so it can only recover the failure of two storage nodes at most, which is not easy to expand. Literature [M. Blaum, J. Bruck, and A. Vardy.
  • MDS array codes with independent parity symbols In IEEE Transactions on Information Theory, vol. 42, no. 2, pp. 529-542, 1996] gives EVENODD The code is extended, but the conditions for satisfying the MDS attribute are very severe, and the number of redundant blocks (nk) satisfying the MDS attribute is at most 8.
  • the CRS code the full name is the Cauchy Reed-Solomon code, cited in the paper [Plank, JS, Xu, L. Optimizing Cauchy Reed-Solomon codes for fault-tolerant network storage applications. In IEEE International Symposium on Network Computing and Applications, pp. 173 –180, 2006]. It is an MDS system array code based on finite field and Cauchy matrix construction, which can accommodate the loss of any n-k code blocks. In the encoding and decoding process, it converts a finite field multiplication operation into multiple binary exclusive OR operations.
  • the CRS code still has the disadvantage of high computational and decoding computational complexity: in the process of encoding and decoding, the CRS code converts the finite field multiplication operation into multiple binary exclusive OR operations, because the number of binary exclusive OR operations is reflected. Its codec computational complexity, however, the number of its corresponding binary XOR operations is uncontrollable and very high during the encoding and decoding process. For the general parameters k and n, how to design its codec calculation method and reduce the number of binary XOR, that is, the complexity of codec calculation, is a major defect that CRS code urgently needs to solve.
  • the present invention provides a method for repairing and decoding a multi-node failure MDS array code, which solves the problem of high computational complexity of coding and decoding in the prior art.
  • the invention is implemented by the following technical solutions: designing and manufacturing a mds array code code for repairing multi-node failure, the component of which is a C(k, r, p) code, by constructing a (p-1) ⁇ ( a matrix of k + r) to store the original information data block and the redundant block, where p is a prime number, and p is greater than k and r, k and r are smaller than any integer less than p greater than 0; k columns are called information columns, Corresponding to k data blocks; r columns are redundant columns, which correspond to r redundant blocks, and the addition and subtraction operations in the C(k, r, p) code are XOR operations.
  • the C (k, r, p) code is constructed by: k (p-1) information bits are given, k check bits are calculated and added, and k data polynomials are obtained, which are calculated.
  • the coding polynomial is stored, and the number of times the polynomial is stored is a coefficient of a polynomial from 0 to p-2.
  • the third coding polynomial is
  • the division in the C(k, r, p) code is performed by calculating a division operation for each data polynomial and then adding the results of the corresponding data polynomial division operations.
  • the invention also provides a decoding method for repairing multi-node failure mds array code coding, comprising the following steps: when ⁇ r columns are lost in the array code C(k, r, p), ⁇ information columns are set a 1 , a 2 ,..., a ⁇ and ⁇ redundant columns b 1 , b 2 , . . .
  • the missing ⁇ redundant columns are obtained by multiplying the corresponding coding vectors by k information polynomials.
  • the invention has the beneficial effects that the new Cauchy array code with any n-k node failures and low coding and decoding computation complexity can be repaired, and the fault tolerance of the system is improved.
  • the encoding and decoding of the new Cauchy array code is realized by binary exclusive OR operation. Compared with the CRS code, the coding and decoding process has lower computational complexity.
  • a mds array code code for repairing multi-node failures the component of which is a C(k, r, p) code, which is constructed by constructing a matrix of (p-1) ⁇ (k+r) to store original information data blocks and redundancy. a remainder block, where p is a prime number, and p is greater than k and r, k and r are less than any integer less than p greater than 0; k columns are referred to as information columns, which correspond to k data blocks; r columns are redundant columns, It corresponds to r redundant blocks, and the addition and subtraction operations in the C(k, r, p) code are all exclusive OR operations.
  • the C(k, r, p) code is constructed by: k (p-1) information bits are given, k check bits are calculated and added, k data polynomials are obtained, and the polynomial is calculated by calculating the coding polynomial.
  • the number of coefficients is a coefficient of a polynomial from 0 to p-2.
  • the division in the C(k, r, p) code is performed as follows: a division operation is calculated for each data polynomial, and then the results of the corresponding data polynomial division operations are added.
  • the invention also provides a decoding method for repairing multi-node failure MDS array code coding, comprising the following steps: when ⁇ r columns are lost in the array code C(k,r,p), ⁇ information columns are set a 1 , a 2 ,..., a ⁇ and ⁇ redundant columns b 1 , b 2 , . . .
  • the lost ⁇ redundant columns are obtained by multiplying the corresponding coding vectors by k information polynomials.
  • the new MDS array code based on the binary polynomial ring and the Cauchy matrix structure generally solves the problem that the existing MDS code accommodates a small number of storage node failures and high computational and decoding computational complexity, and proposes a repair.
  • the new Cauchy array code with any nk nodes failing and the codec calculation complexity is low, which improves the fault tolerance of the system.
  • the codec of the new Cauchy array code is realized by binary exclusive OR operation, and the computational complexity of the codec process is lower than that of the CRS code.
  • C(k,r,p) code by constructing a A matrix of (p-1) x (k + r) stores original information data blocks and redundant blocks, where p is a prime number, and p is greater than k and r, and k and r are smaller than any integer less than p greater than zero.
  • the first k columns of the C(k, r, p) code are called information columns, corresponding to k data blocks, and the latter r columns are redundant columns, corresponding to r redundant blocks.
  • s p-1,j s 0,j +s 1,j +...+s p-2,j .
  • c p-1,l c 0,l +c 1,l +...+c p-2,l ,
  • matrix I represents the unit matrix of k ⁇ k
  • matrix C is the k ⁇ r Cauchy matrix
  • the encoding process of the binary Cauchy array code C(k, r, p) can be described as follows. Given k(p-1) information bits, k check bits are calculated and added, and k data polynomials as shown in equation (1) are obtained. Pass The coding polynomial shown in equation (3) is calculated, the term of the number of times p-1 among these polynomials is ignored, and then the number of times the polynomial is stored is a coefficient of a polynomial from 0 to p-2.
  • a coefficient of the polynomial c(x) is selected to be 0, and then other coefficients of the polynomial c(x) can be calculated by the above equation iteration. Specifically, let the coefficient c p-1 be equal to 0, and then calculate
  • the other coefficients of the polynomial c(x) can be calculated by an XOR operation iteration.
  • the certificate is completed.
  • s 1 (x) s 0,1 +s 1,1 x+s 2,1 x 2 +s 3,1 x 3 +(s 0,1 +s 1,1 +s 2,1 +s 3, 1 )x 4 (5)
  • s 2 (x) s 0,2 +s 1,2 x+s 2,2 x 2 +s 3,2 x 3 +(s 0,2 +s 1,2 +s 2,2 +s 3, 2 )x 4 (6)
  • the two coding polynomials c 1 (x) and c 2 (x) are calculated by the equation shown by the following formula (7).
  • each division operation involves 2 exclusive OR operations.
  • Table 1 lists the information column bits and redundant column bits for this example.
  • Information column 1 Information column 2 Redundant column 1 Redundant column 2 s 0,1 s 0,2 (s 0,1 +s 1,1 +s 3,1 )+(s 0,2 +s 2,2 ) (s 0,1 +s 1,1 +s 3,1 )+(s 0,2 +s 3,2 ) s 1,1 s 1,2 s 1,1 +(s 0,2 +s 1,2 +s 2,2 +s 3,2 ) s 1,1 +s 2,2 s 2,1 s 2,2 (s 0,1 +s 1,1 +s 2,1 +s 3,1 )+s 2,2 (s 0,1 +s 1,1 +s 2,1 +s 3,1 )+s 0,2 s 31 s 32 (s 11 +s 31 )+(s 02 +s 22 +s 32 ) (s 11 +s 31 )+(s 02 +s 12 +s 32 )
  • the decoding process of the array code C(k, r, p) is as follows:
  • Theorem 2 The inverse matrix of the Western kernel C (x 1: k , y 1: k ) can be decomposed into the equation (9).
  • both x i and y i in Algorithm 1 are replaced by the power of x, and the variables b l and then are polynomial rings F 2 [x]/( A polynomial in 1+x p ) is substituted.
  • All type 2 division operations in Algorithm 1 can be calculated by the method given in Lemma 1, and a division operation involves a p-3 XOR operation.
  • steps 5 through 7 are computation matrices
  • the product of the right matrix and the column vector b has a total of 3 (ki) polynomial addition operations, and the computational complexity is at most 3p (ki) XOR.
  • Steps 8 through 10 are calculation matrices
  • the product of the left matrix and the column vector b has a computational complexity of at most 3k(k-1)(p-3)/2 times XOR. Therefore, steps 5 to 10, calculate the matrix
  • the computational complexity of the product of the column vector b is at most 3pk(k-1)/2+3k(k-1)(p-3)/2 times XOR.
  • Steps 12 through 14 are the product of calculating the diagonal matrix D k and the polynomial vector obtained in the above step, and the computational complexity is at most p + (k - 1) (p - 2).
  • Steps 16 through 18 are calculation matrices
  • the product of the right matrix and the polynomial vector obtained in the above step has a computational complexity of at most (k-3)k(k-1)/2 times XOR.
  • Steps 19 through 26 are calculation matrices
  • the product of the left matrix and the polynomial vector obtained in the above step has a computational complexity of at most k(k-1)(3p-4)/2 times XOR. Therefore, in the polynomial ring F 2 [x]/(1+x p ), the computational complexity of Algorithm 1 is at most as shown in Equation (15).
  • this 2 ⁇ 2 Cauchy matrix can be decomposed into the equation (17).
  • Equation (19) represents a redundant column that is not lost as Equation (20).
  • ⁇ missing columns of information can be obtained. Then, the missing ⁇ redundant columns can be obtained by multiplying the corresponding coding vectors by k information polynomials.
  • the decoding complexity of the binary Cauchy array code is counted below. Adding a check bit to the k- ⁇ information columns and forming a data polynomial uses a (k- ⁇ ) (p-2) sub-OR operation.
  • XOR operation The 4 ⁇ 2 p-3 ⁇ p-5 ⁇ 2 +3 ⁇ +2 XOR operation was used in solving the linear equations of the ⁇ Cauchy form.
  • a ⁇ (k(p-3)+(k-1)(p-1)) XOR operation is required to recover ⁇ redundant columns. Therefore, the decoding computational complexity D ⁇ , ⁇ of the ⁇ information columns and the ⁇ redundant columns is decoded as Equation (26).
  • the unit coding complexity is defined as the number of XOR operations involved in the encoding process divided by the number of information bits
  • the unit decoding complexity is the number of XOR operations involved in the decoding process divided by the information. The number of bits.
  • the codec complexity of the array code C(k, r, p) is almost unchanged, but it can greatly improve the fault tolerance of the system, and can repair any r node failures at most; Compared with the CRS code, the array code C(k, r, p) can recover multiple nodes at the same time, and the codec complexity is very low. Secondly, the C(k, r, p) code does not fix the number of original information data blocks, and the value is more flexible.
  • C (k,r,p) code only involve XOR operation, so the computational complexity is low and the computational overhead is small, which greatly reduces the system calculation delay, saves time and Resources, can reduce the cost of consumption, suitable for the actual storage system;
  • C (k, r, p) code can meet the MDS attributes, while saving storage space, the system can accommodate multiple node failures, increasing the data Fault tolerance and stability.
  • Circulant Cauchy array code [C. Schindelhauer and C. Ortolf. Maximum distance separable codes based on circulant cauchy matrices. Structural Information and Communication Complexity. Springer, 2013, when given the number r of redundant columns.
  • the unit coding computational complexity of 3(1): 334-345.] is as shown in equation (31).
  • the parameter k is equal to p-r, so the unit coding computational complexity of the array code C(k, r, p) is as shown in equation (32).
  • the values of the CRS codes are the average of 1000 running data.
  • the results of Fig. 1 show that the unit coding computational complexity of the array code C(p-4, 4, p) is the lowest of the three array codes, and the computational complexity of the CRS code is the largest of the three array codes.
  • Rabin-Like code [GLFeng, RHDeng, F.Bao, et al.New efficient MDS array codes for RAID.Part II.Rabin-like codes for tolerating multiple ( ⁇ 4) disk failures.IEEE Transactions on The decoding computational complexity of Computers, 2006, 54(12): 1473-1483] is p(9k+95) XOR operation, and when r is greater than 4, the decoding computational complexity is large and the author does not give Exactly the number of XOR.
  • the unit decoding computation complexity ND CC is as shown in equation (34).
  • the decoding computation complexity of the CRS code is the largest, and when the parameter is small, the decoding computation complexity of the CRS code is relatively low.
  • the decoding complexity of the array code C (p-4, 4, p) is the lowest, whether it is a parameter The value of p is small or large.
  • the unit decoding computational complexity of the array code C(p-5, 5, p), the Cauchy cyclic code and the CRS code is as shown in FIG. Similar to the case where r is equal to 4, the decoding computation complexity of the CRS code becomes larger as the parameter p increases, and the computational complexity of the array code C(p-5, 5, p) and the Cauchy cyclic code follows The parameter p increases and becomes smaller. The decoding computational complexity of the array code C(p-5, 5, p) is the lowest at all tested data points. When the parameter p is greater than 47, the decoding computation complexity of the CRS code is greater than the decoding computation complexity of the cyclic Cauchy code. Conversely, when the parameter p is less than 47, the decoding computational complexity of the CRS code is less than the decoding computational complexity of the cyclic Cauchy code.
  • the array code C(k, r, p) Compared with other MDS codes, such as CRS codes, the array code C(k, r, p) has the greatest advantage that its coding computation complexity and decoding computation complexity are much lower, and the number of original information data blocks is not fixed. Any integer from 2 to p can be taken. Compared with the EVENODD code that can recover two nodes, the array code C(k, r, p) improves the fault tolerance of the system when the codec complexity is almost unchanged, and can repair any r nodes at most. .
  • the array code C(k, r, p) has better codec complexity, and greatly improves the fault tolerance of the system, and the number of original information data blocks is not fixed. It can take any integer from 2 to p, which is more flexible. , to achieve the optimal compromise between storage overhead and system reliability.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

The encoding of an MDS array code for repairing a failure of multiple nodes, a component thereof being a C(k,r,p) code. An original information data block and a redundant block are stored by building a (p - 1) * (k + r) matrix, wherein p is a prime number, and p is greater than k and r, and k and r are any integer less than p and greater than 0; column k is called an information column, and corresponds to k data blocks; and column r is a redundant column, and corresponds to r redundant blocks, and an addition and subtraction operation in the C(k,r,p) code are both XOR operations. The beneficial effects of the coding are: being able to repair a new Cauchy array code with any n to k nodes having failed and a low encoding and decoding calculation complexity, thereby improving the fault tolerance of a system. The encoding and decoding of a new Cauchy array code is realised by binary XOR operation, and compared with a CRS code, the calculation complexity of the encoding and decoding process is lower.

Description

修复多节点失效的MDS阵列码编码以及解码方法MDS array code encoding and decoding method for repairing multi-node failure 【技术领域】[Technical Field]
本发明涉及数据处理领域,尤其涉及一种修复多节点失效的MDS阵列码编码以及解码方法。The present invention relates to the field of data processing, and in particular, to an MDS array code encoding and decoding method for repairing multi-node failure.
【背景技术】【Background technique】
随着计算机网络应用的迅速发展,网络信息数据量变得越来越大,海量信息存储变得尤为重要,持续增长的数据存储压力推动着整个存储市场的快速发展。分布式存储以其高性价比、低初期投资、按需付费等优越的特点日益成为当今大数据存储的主流技术。With the rapid development of computer network applications, the amount of network information data has become larger and larger, and mass information storage has become particularly important. The continuous growth of data storage pressure has driven the rapid development of the entire storage market. Distributed storage has become the mainstream technology of today's big data storage with its superior features such as high cost performance, low initial investment, and pay-as-you-go.
当前,分布式存储系统的存储节点失效已经成为一种常态。当系统所部署的存储节点变得不可靠时,必须引入冗余来提高节点失效时的可靠性。引入冗余最简单的方法就是对原始数据直接备份,直接备份虽然简单但是其存储效率和系统可靠性不高,而通过编码引入冗余的方法可以提高其存储效率,增强系统的可靠性。因此分布式存储的高概率可用性、可靠性以及安全性等均是分布式存储系统的关键技术问题。Currently, storage node failure of distributed storage systems has become a normal state. When the storage nodes deployed by the system become unreliable, redundancy must be introduced to improve the reliability of the node failure. The easiest way to introduce redundancy is to directly back up the original data. Although the direct backup is simple, its storage efficiency and system reliability are not high. The method of introducing redundancy through coding can improve its storage efficiency and enhance the reliability of the system. Therefore, the high probability of availability, reliability, and security of distributed storage are key technical issues for distributed storage systems.
在目前的存储系统中,编码方法一般采用MDS码,MDS码可以达到存储空间效率的最优化,一个(n,k)MDS码需要将一个原始数据文件分成k个大小相等的数据块,通过线性编码生成n个互不相关的编码块,并由n个节点存储n个编码块。若n个编码块中包含原始的k个数据块,其它n-k个编码块称为冗余块,包含k个数据块的MDS码称为系统MDS码。MDS码满足MDS属性:即从n个编码块中取任意k个即可解码出原始的k个数据块。这种编码技术在提供有效的网络存储编码中占有重要的地位,特别适合应用于存储大的文件以及档案数据备份。In the current storage system, the encoding method generally adopts the MDS code, and the MDS code can achieve the optimization of the storage space efficiency. One (n, k) MDS code needs to divide a raw data file into k equal-sized data blocks through linear The encoding generates n mutually uncorrelated coding blocks, and n coding blocks are stored by n nodes. If n coding blocks contain the original k data blocks, the other n-k coding blocks are referred to as redundant blocks, and the MDS code including k data blocks is referred to as a system MDS code. The MDS code satisfies the MDS attribute: that is, taking any k of n code blocks can decode the original k data blocks. This coding technology plays an important role in providing effective network storage coding, and is particularly suitable for storing large files and archival data backup.
在分布式存储系统中,把数据按某种方式编码,并把编码结果存储在n个存储节点中,这一过程称为编码过程。数据接收者只需连接并下载n个存储节点中的任意k个存储节点的数据即可恢复出原始数据,这一过程称为数据重建过程或解码过程。In a distributed storage system, data is encoded in some way and the result of the encoding is stored in n storage nodes. This process is called an encoding process. The data receiver only needs to connect and download the data of any k storage nodes of the n storage nodes to recover the original data. This process is called a data reconstruction process or a decoding process.
不同的MDS码有不同的编码、解码计算复杂度。复杂度越高,计算量越大,计算时所消耗的时间就越长。设计出一种好的MDS码,能够降低计算量,缩短工作时间,减少资源的消耗,节省系统运行时需要的成本,使得运算和存储 更加灵活。MDS阵列码是MDS码的一种,其特征是编解码过程中仅仅用到简单的二进制异或操作,因此可以很容易且高效的在系统中实现。本发明即是一种能容纳任意n-k个编码块的丢失,编码、解码计算复杂度低的二进制系统MDS阵列码。Different MDS codes have different coding and decoding computational complexity. The higher the complexity, the larger the amount of calculation, and the longer the calculation takes. Design a good MDS code, which can reduce the amount of calculation, shorten the working time, reduce the consumption of resources, save the cost of the system operation, and make the operation and storage More flexible. The MDS array code is a kind of MDS code, which is characterized in that only a simple binary exclusive OR operation is used in the encoding and decoding process, so it can be easily and efficiently implemented in the system. The invention is a binary system MDS array code capable of accommodating loss, encoding and decoding computational complexity of any n-k coding blocks.
EVENODD码,引自论文[M.Blaum,J.Brady,J.Bruck,and J.Menon,“EVENODD:An efficient scheme for tolerating double disk failures in RAID architectures,”IEEE Transactions on Computers,vol.44,no.2,pp.192–202,1995]。EVENODD code, cited in the paper [M.Blaum, J. Brady, J. Bruck, and J. Menon, "EVENODD: An efficient scheme for tolerating double disk failures in RAID architectures," IEEE Transactions on Computers, vol.44, no .2, pp. 192–202, 1995].
EVENODD码是能容纳2个编码块丢失的MDS阵列码。在EVENODD码中,其要求数据块个数必须为质数,冗余块个数为2。EVENODD码的编码过程只需要简单的二进制异或运算,并且两个检验块的每个冗余比特均是通过斜率为0和1的直线经过的信息比特异或结果。但是,EVENODD码存在着不可拓展性的缺陷:EVENODD码只有两个检验块,因此最多只能恢复两个存储节点失效的情况,不易于拓展。文献[M.Blaum,J.Bruck,and A.Vardy.MDS array codes with independent parity symbols.In IEEE Transactions on Information Theory,vol.42,no.2,pp.529-542,1996]给出了EVENODD码的扩展,但是满足MDS属性的条件非常苛刻,且满足MDS属性的冗余块个数(n-k)最大为8。The EVENODD code is an MDS array code that can accommodate 2 coded block losses. In the EVENODD code, it is required that the number of data blocks must be a prime number and the number of redundant blocks is two. The encoding process of the EVENODD code requires only a simple binary exclusive OR operation, and each redundant bit of the two check blocks is an information bit XOR result that passes through a straight line with a slope of 0 and 1. However, the EVENODD code has the drawback of being non-expandable: the EVENODD code has only two check blocks, so it can only recover the failure of two storage nodes at most, which is not easy to expand. Literature [M. Blaum, J. Bruck, and A. Vardy. MDS array codes with independent parity symbols. In IEEE Transactions on Information Theory, vol. 42, no. 2, pp. 529-542, 1996] gives EVENODD The code is extended, but the conditions for satisfying the MDS attribute are very severe, and the number of redundant blocks (nk) satisfying the MDS attribute is at most 8.
CRS码,全称是Cauchy Reed-Solomon码,引自论文[Plank,J.S.,Xu,L.Optimizing Cauchy Reed-Solomon codes for fault-tolerant network storage applications.In IEEE International Symposium on Network Computing and Applications,pp.173–180,2006]。它是基于有限域和Cauchy矩阵构造的MDS系统阵列码,可以容纳任意的n-k个编码块的丢失。在编码、解码过程中,它把一个有限域乘法运算转换为多个二进制异或运算。但是,CRS码依然存在着编码、解码计算复杂度高的缺点:CRS码在编解码过程中,把有限域乘法运算转换为多个二进制异或运算,因为二进制异或运算的个数就反应了其编解码计算复杂度,然而其对应的二进制异或运算的个数在编解码过程中是不可控的、很高的。对于一般的参数k和n,如何设计其编解码计算方法,降低二进制异或个数,即编解码计算复杂度,是CRS码急需解决的一大缺陷。The CRS code, the full name is the Cauchy Reed-Solomon code, cited in the paper [Plank, JS, Xu, L. Optimizing Cauchy Reed-Solomon codes for fault-tolerant network storage applications. In IEEE International Symposium on Network Computing and Applications, pp. 173 –180, 2006]. It is an MDS system array code based on finite field and Cauchy matrix construction, which can accommodate the loss of any n-k code blocks. In the encoding and decoding process, it converts a finite field multiplication operation into multiple binary exclusive OR operations. However, the CRS code still has the disadvantage of high computational and decoding computational complexity: in the process of encoding and decoding, the CRS code converts the finite field multiplication operation into multiple binary exclusive OR operations, because the number of binary exclusive OR operations is reflected. Its codec computational complexity, however, the number of its corresponding binary XOR operations is uncontrollable and very high during the encoding and decoding process. For the general parameters k and n, how to design its codec calculation method and reduce the number of binary XOR, that is, the complexity of codec calculation, is a major defect that CRS code urgently needs to solve.
【发明内容】[Summary of the Invention]
为了解决现有技术中的问题,本发明提供了一种修复多节点失效的MDS阵列码编码以及解码方法,解决现有技术中编解码计算复杂度高的问题。 In order to solve the problems in the prior art, the present invention provides a method for repairing and decoding a multi-node failure MDS array code, which solves the problem of high computational complexity of coding and decoding in the prior art.
本发明是通过以下技术方案实现的:设计、制造了一种修复多节点失效的mds阵列码编码,其组成部分为C(k,r,p)码,通过构建一个(p-1)×(k+r)的矩阵来存储原始信息数据块和冗余块,其中p为质数,且p大于k和r,k和r小于为小于p大于0的任意整数;k列称为信息列,其对应为k个数据块;r列为冗余列,其对应为r个冗余块,C(k,r,p)码中的加法和减法运算均为异或运算。The invention is implemented by the following technical solutions: designing and manufacturing a mds array code code for repairing multi-node failure, the component of which is a C(k, r, p) code, by constructing a (p-1)×( a matrix of k + r) to store the original information data block and the redundant block, where p is a prime number, and p is greater than k and r, k and r are smaller than any integer less than p greater than 0; k columns are called information columns, Corresponding to k data blocks; r columns are redundant columns, which correspond to r redundant blocks, and the addition and subtraction operations in the C(k, r, p) code are XOR operations.
作为本发明的进一步改进:C(k,r,p)码的构造过程为:给定k(p-1)个信息比特,计算并添加k个校验比特,得到k个数据多项式,通过计算出编码多项式,存储多项式的次数为从0到p-2的多项式的系数。As a further improvement of the present invention, the C (k, r, p) code is constructed by: k (p-1) information bits are given, k check bits are calculated and added, and k data polynomials are obtained, which are calculated. The coding polynomial is stored, and the number of times the polynomial is stored is a coefficient of a polynomial from 0 to p-2.
作为本发明的进一步改进:存储在第j信息列的p-1个信息比特和其校验比特表示的第一数据多项式为sj(x)=s0,j+s1,jx+…+sp-2,jxp-2+sp-1,jxp-1,其中,si,j表示阵列码C(k,r,p)的第j信息列的第i个比特;第三编码多项式为As a further improvement of the present invention, the p-1 information bits stored in the jth information column and the first data polynomial represented by the check bits thereof are s j (x)=s 0,j +s 1,j x+...+ s p-2,j x p-2 +s p-1,j x p-1 , wherein s i,j represents the i-th bit of the j-th information column of the array code C(k,r,p); The third coding polynomial is
Figure PCTCN2017087770-appb-000001
Figure PCTCN2017087770-appb-000001
作为本发明的进一步改进:C(k,r,p)码中的除法按以下方式进行:为每个数据多项式计算一个除法运算,然后把相应的数据多项式除法运算的结果相加。As a further improvement of the present invention, the division in the C(k, r, p) code is performed by calculating a division operation for each data polynomial and then adding the results of the corresponding data polynomial division operations.
作为本发明的进一步改进:C(k,r,p)码为二进制柯西阵列码,其生成矩阵为G=[I C],其中矩阵I表示k×k的单位阵,矩阵C为的k×r柯西矩阵,As a further improvement of the present invention, the C(k, r, p) code is a binary Cauchy array code whose generating matrix is G = [I C], wherein the matrix I represents a unit matrix of k × k, and the matrix C is k ×r Cauchy matrix,
Figure PCTCN2017087770-appb-000002
Figure PCTCN2017087770-appb-000002
本发明同时提供了一种修复多节点失效的mds阵列码编码的解码方法,包括如下步骤:当阵列码C(k,r,p)中有ρ≤r个列丢失时,设γ个信息列 a1,a2,...,aγ和δ个冗余列b1,b2,...,bδ丢失,其中1≤a1<a2<...<aγ≤k,1≤b1<b2<...<bγ≤r,k≥γ≥0,r≥δ≥0且γ+δ=ρ≤r,把存活的没有丢失的信息列表示为M={1,2,...,k}\{a1,a2,...,aγ},把没有丢失的冗余列表示为P={1,2,...,r}\{b1,b2,...,bδ},首先下载存活的没有丢失的k-γ个信息列i1,i2,...,ik-γ∈M,和γ个冗余列l1,l2,...,lγ∈P,恢复出丢失的γ个信息列,然后把丢失冗余列的编码向量与k个数据多项式相乘计算出丢失的冗余多项式。The invention also provides a decoding method for repairing multi-node failure mds array code coding, comprising the following steps: when ρ≤r columns are lost in the array code C(k, r, p), γ information columns are set a 1 , a 2 ,..., a γ and δ redundant columns b 1 , b 2 , . . . , b δ are lost, where 1≤a 1 <a 2 <...<a γ ≤k, 1 ≤ b 1 <b 2 <...<b γ ≤ r, k ≥ γ ≥ 0, r ≥ δ ≥ 0 and γ + δ = ρ ≤ r, and the column of information that is not lost is represented as M = { 1,2,...,k}\{a 1 ,a 2 ,...,a γ }, denote redundant columns without loss as P={1,2,...,r}\{ b 1 , b 2 ,...,b δ }, first download the surviving k-γ information columns i 1 , i 2 , . . . , i k-γ ∈M, and γ redundant columns l 1 , l 2 ,...,l γ ∈P, recovers the lost γ information columns, and then multiplies the coded vector of the missing redundant column by k data polynomials to calculate the missing redundant polynomial.
作为本发明的进一步改进:为信息列iτ添加一个校验比特并形成数据多项式
Figure PCTCN2017087770-appb-000003
As a further improvement of the invention: adding a check bit to the information column i τ and forming a data polynomial
Figure PCTCN2017087770-appb-000003
其中τ=1,2,...,k-γ;为冗余列lh添加比特零并形成编码多项式
Figure PCTCN2017087770-appb-000004
其中,h=1,2,...,γ;分别为γ个编码多项式减去k-γ个数据多项式所得到的多项式为
Where τ=1,2,...,k-γ; adding a bit zero to the redundant column l h and forming a coding polynomial
Figure PCTCN2017087770-appb-000004
Where h = 1, 2, ..., γ; the polynomial obtained by subtracting k-γ data polynomials from γ coding polynomials is
Figure PCTCN2017087770-appb-000005
Figure PCTCN2017087770-appb-000005
,通过求解线性方程组解出丢失的γ个数据多项式,其中线性方程组为Solving missing γ data polynomials by solving linear equations, where the linear equations are
Figure PCTCN2017087770-appb-000006
Figure PCTCN2017087770-appb-000006
;然后获得γ个丢失的信息列。; then get γ missing columns of information.
作为本发明的进一步改进:丢失的δ个冗余列通过相应的编码向量与k个信息多项式相乘得到。As a further improvement of the invention: the missing δ redundant columns are obtained by multiplying the corresponding coding vectors by k information polynomials.
本发明的有益效果是:能修复任意n-k个节点失效且编解码计算复杂度较低的新Cauchy阵列码,提高了系统的容错性。通过二进制异或运算实现了新Cauchy阵列码的编解码,与CRS码相比,编解码过程的计算复杂度更低。The invention has the beneficial effects that the new Cauchy array code with any n-k node failures and low coding and decoding computation complexity can be repaired, and the fault tolerance of the system is improved. The encoding and decoding of the new Cauchy array code is realized by binary exclusive OR operation. Compared with the CRS code, the coding and decoding process has lower computational complexity.
【附图说明】[Description of the Drawings]
图1为本发明阵列码C(p-4,4,p)、循环柯西码和CRS码在r=4时的单位编码计算复杂度示意图;1 is a schematic diagram showing the computational complexity of the unit coding of the array code C(p-4, 4, p), the cyclic Cauchy code, and the CRS code of the present invention at r=4;
图2为本发明阵列码C(p-4,4,p)和、Rabin-Like码、循环柯西码和CRS码在r=4时的单位解码计算复杂度示意图; 2 is a schematic diagram showing the computational complexity of unit decoding of the array code C(p-4, 4, p) and the Rabin-Like code, the cyclic Cauchy code, and the CRS code of the present invention at r=4;
图3为本发明阵列码C(p-5,5,p)、循环柯西码和CRS码在r=5时的单位解码计算复杂度示意图。FIG. 3 is a schematic diagram showing the computational complexity of unit decoding of the array code C(p-5, 5, p), the cyclic Cauchy code, and the CRS code of the present invention at r=5.
【具体实施方式】【detailed description】
下面结合附图说明及具体实施方式对本发明进一步说明。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,r,p)码,通过构建一个(p-1)×(k+r)的矩阵来存储原始信息数据块和冗余块,其中p为质数,且p大于k和r,k和r小于为小于p大于0的任意整数;k列称为信息列,其对应为k个数据块;r列为冗余列,其对应为r个冗余块,C(k,r,p)码中的加法和减法运算均为异或运算。A mds array code code for repairing multi-node failures, the component of which is a C(k, r, p) code, which is constructed by constructing a matrix of (p-1)×(k+r) to store original information data blocks and redundancy. a remainder block, where p is a prime number, and p is greater than k and r, k and r are less than any integer less than p greater than 0; k columns are referred to as information columns, which correspond to k data blocks; r columns are redundant columns, It corresponds to r redundant blocks, and the addition and subtraction operations in the C(k, r, p) code are all exclusive OR operations.
C(k,r,p)码的构造过程为:给定k(p-1)个信息比特,计算并添加k个校验比特,得到k个数据多项式,通过计算出编码多项式,存储多项式的次数为从0到p-2的多项式的系数。The C(k, r, p) code is constructed by: k (p-1) information bits are given, k check bits are calculated and added, k data polynomials are obtained, and the polynomial is calculated by calculating the coding polynomial. The number of coefficients is a coefficient of a polynomial from 0 to p-2.
存储在第j信息列的p-1个信息比特和其校验比特表示的第一数据多项式为sj(x)=s0,j+s1,jx+…+sp-2,jxp-2+sp-1,jxp-1,其中,si,j表示阵列码C(k,r,p)的第j信息列的第i个比特;第三编码多项式为The p-1 information bits stored in the jth information column and the first data polynomial represented by the check bits thereof are s j (x)=s 0,j +s 1,j x+...+s p-2,j x P-2 +s p-1,j x p-1 , where s i,j represents the i-th bit of the j-th information column of the array code C(k,r,p); the third coding polynomial is
Figure PCTCN2017087770-appb-000007
Figure PCTCN2017087770-appb-000007
C(k,r,p)码中的除法按以下方式进行:为每个数据多项式计算一个除法运算,然后把相应的数据多项式除法运算的结果相加。The division in the C(k, r, p) code is performed as follows: a division operation is calculated for each data polynomial, and then the results of the corresponding data polynomial division operations are added.
C(k,r,p)码为二进制柯西阵列码,其生成矩阵为G=[I C],其中矩阵I表示k×k的单位阵,矩阵C为的k×r柯西矩阵,The C(k,r,p) code is a binary Cauchy array code whose generating matrix is G=[I C], where matrix I represents a unit matrix of k×k, and matrix C is a k×r Cauchy matrix.
Figure PCTCN2017087770-appb-000008
Figure PCTCN2017087770-appb-000008
本发明同时提供了一种修复多节点失效的MDS阵列码编码的解码方法,包括如下步骤:当阵列码C(k,r,p)中有ρ≤r个列丢失时,设γ个信息列a1,a2,...,aγ和δ个冗余列b1,b2,...,bδ丢失,其中1≤a1<a2<...<aγ≤k,1≤b1<b2<...<bγ≤r,k≥γ≥0,r≥δ≥0且γ+δ=ρ≤r,把存活的没有丢失的信息列表示为M={1,2,...,k}\{a1,a2,...,aγ},把没有丢失的冗余列表示为P={1,2,...,r}\{b1,b2,...,bδ},首先下载存活的没有丢失的k-γ个信息列i1,i2,...,ik-γ∈M,和γ个冗余列l1,l2,...,lγ∈P,恢复出丢失的γ个信息列,然后把丢失冗余列的编码向量与k个数据多项式相乘计算出丢失的冗余多项式。The invention also provides a decoding method for repairing multi-node failure MDS array code coding, comprising the following steps: when ρ≤r columns are lost in the array code C(k,r,p), γ information columns are set a 1 , a 2 ,..., a γ and δ redundant columns b 1 , b 2 , . . . , b δ are lost, where 1≤a 1 <a 2 <...<a γ ≤k, 1 ≤ b 1 <b 2 <...<b γ ≤ r, k ≥ γ ≥ 0, r ≥ δ ≥ 0 and γ + δ = ρ ≤ r, and the column of information that is not lost is represented as M = { 1,2,...,k}\{a 1 ,a 2 ,...,a γ }, denote redundant columns without loss as P={1,2,...,r}\{ b 1 , b 2 ,...,b δ }, first download the surviving k-γ information columns i 1 , i 2 , . . . , i k-γ ∈M, and γ redundant columns l 1 , l 2 ,...,l γ ∈P, recovers the lost γ information columns, and then multiplies the coded vector of the missing redundant column by k data polynomials to calculate the missing redundant polynomial.
为信息列iτ添加一个校验比特并形成数据多项式
Figure PCTCN2017087770-appb-000009
其中τ=1,2,...,k-γ;为冗余列lh添加比特零并形成编码多项式
Figure PCTCN2017087770-appb-000010
其中,h=1,2,...,γ;分别为γ个编码多项式减去k-γ个数据多项式所得到的多项式为
Figure PCTCN2017087770-appb-000011
通过求解线性方程组解出丢失的γ个数据多项式,其中线性方程组为
Add a check bit to the information column i τ and form a data polynomial
Figure PCTCN2017087770-appb-000009
Where τ=1,2,...,k-γ; adding a bit zero to the redundant column l h and forming a coding polynomial
Figure PCTCN2017087770-appb-000010
Where h = 1, 2, ..., γ; the polynomial obtained by subtracting k-γ data polynomials from γ coding polynomials is
Figure PCTCN2017087770-appb-000011
Solving the missing γ data polynomials by solving linear equations, where the linear equations are
Figure PCTCN2017087770-appb-000012
Figure PCTCN2017087770-appb-000012
然后获得γ个丢失的信息列。Then γ missing columns of information are obtained.
丢失的δ个冗余列通过相应的编码向量与k个信息多项式相乘得到。The lost δ redundant columns are obtained by multiplying the corresponding coding vectors by k information polynomials.
本发明中,这种新的基于二进制多项式环和Cauchy矩阵构造的MDS阵列码针对现有的MDS码一般容纳存储节点失效个数少、编解码计算复杂度高等问题,提出来了一种能修复任意n-k个节点失效且编解码计算复杂度较低的新Cauchy阵列码,提高了系统的容错性。通过二进制异或运算实现了新Cauchy阵列码的编解码,并且与CRS码相比,编解码过程的计算复杂度更低。In the present invention, the new MDS array code based on the binary polynomial ring and the Cauchy matrix structure generally solves the problem that the existing MDS code accommodates a small number of storage node failures and high computational and decoding computational complexity, and proposes a repair. The new Cauchy array code with any nk nodes failing and the codec calculation complexity is low, which improves the fault tolerance of the system. The codec of the new Cauchy array code is realized by binary exclusive OR operation, and the computational complexity of the codec process is lower than that of the CRS code.
简称这种新Cauchy阵列码为C(k,r,p)码,本文的所有的加法运算和减法运算均指二进制异或运算,其中r=n-k。C(k,r,p)码通过构建一个 (p-1)×(k+r)的矩阵来存储原始信息数据块和冗余块,其中p为质数,且p大于k和r,k和r小于为小于p大于0的任意整数。C(k,r,p)码的前k列称为信息列,对应为k个数据块,后r列为冗余列,对应为r个冗余块。Referring to this new Cauchy array code is a C (k, r, p) code, all the addition and subtraction operations herein refer to a binary exclusive OR operation, where r = n - k. C(k,r,p) code by constructing a A matrix of (p-1) x (k + r) stores original information data blocks and redundant blocks, where p is a prime number, and p is greater than k and r, and k and r are smaller than any integer less than p greater than zero. The first k columns of the C(k, r, p) code are called information columns, corresponding to k data blocks, and the latter r columns are redundant columns, corresponding to r redundant blocks.
在一实施例中,C(k,r,p)码的构造过程如下:令i=0,1,...,p-2,j=1,2,...,k,用si,j表示阵列码C(k,r,p)的第j信息列的第i个比特。令i=0,1,...,p-2,l=1,2,...,r,用ci,j表示阵列码C(k,r,p)的第l冗余列的第i个比特。对于存储在第j信息列的p-1个信息比特s0,j,s1,j,…,sp-2,j,定义校验比特sp-1,jIn an embodiment, the C(k, r, p) code is constructed as follows: let i=0,1,...,p-2,j=1,2,...,k, with s i , j denotes the i-th bit of the j-th information column of the array code C(k, r, p). Let i=0,1,...,p-2,l=1,2,...,r, denote the first redundant column of the array code C(k,r,p) by c i,j The ith bit. For the p-1 information bits s 0,j , s 1,j ,...,s p-2,j stored in the jth information column, the check bits s p-1,j are defined as
sp-1,j=s0,j+s1,j+…+sp-2,js p-1,j =s 0,j +s 1,j +...+s p-2,j .
令j=1,2,...,k,把存储在第j信息列的p-1个信息比特和其校验比特表示为数据多项式Let j=1, 2,...,k, represent p-1 information bits stored in the jth information column and its check bits as data polynomial
sj(x)=s0,j+s1,jx+…+sp-2,jxp-2+sp-1,jxp-1。(1)s j (x)=s 0,j +s 1,j x+...+s p-2,j x p-2 +s p-1,j x p-1 . (1)
同样的,令l=1,2,...,r,定义冗余列l的校验比特cp-1,lSimilarly, let l=1, 2,...,r, define the parity bit c p-1,l of the redundant column l as
cp-1,l=c0,l+c1,l+…+cp-2,lc p-1,l =c 0,l +c 1,l +...+c p-2,l ,
并把存储在第l冗余列的p-1个冗余比特和其校验比特表示为编码多项式And p-1 redundant bits stored in the 1st redundant column and their check bits are expressed as coding polynomials
cl(x)=c0,l+c1,lx+…+cp-2,lxp-2+cp-1,lxp-1。(2)c l (x)=c 0,l +c 1,l x+...+c p-2,l x p-2 +c p-1,l x p-1 . (2)
因此,现在有多项式环F2[x]/(1+xp)中的k个数据多项式和r个编码多项式。而r个编码多项式是由以下等式计算而得Therefore, there are now k data polynomials and r coding polynomials in the polynomial ring F 2 [x]/(1+x p ). And r coding polynomials are calculated by the following equation
Figure PCTCN2017087770-appb-000013
Figure PCTCN2017087770-appb-000013
注意,以上计算均是多项式环F2[x]/(1+xp)中的运算。因此,阵列码C(k,r,p)的生成矩阵为Note that the above calculations are all operations in the polynomial loop F 2 [x]/(1+x p ). Therefore, the generator matrix of the array code C(k, r, p) is
G=[I C],G=[I C],
其中矩阵I表示k×k的单位阵,矩阵C为的k×r柯西矩阵Where matrix I represents the unit matrix of k × k, matrix C is the k × r Cauchy matrix
Figure PCTCN2017087770-appb-000014
Figure PCTCN2017087770-appb-000014
二进制柯西阵列码C(k,r,p)的编码过程可以描述如下。给定k(p-1)个信息比特,计算并添加k个校验比特,得到k个如式(1)所示的数据多项式。通 过计算出式(3)所示的编码多项式,忽略这些多项式中次数为p-1的项,然后存储多项式的次数为从0到p-2的多项式的系数。The encoding process of the binary Cauchy array code C(k, r, p) can be described as follows. Given k(p-1) information bits, k check bits are calculated and added, and k data polynomials as shown in equation (1) are obtained. Pass The coding polynomial shown in equation (3) is calculated, the term of the number of times p-1 among these polynomials is ignored, and then the number of times the polynomial is stored is a coefficient of a polynomial from 0 to p-2.
在阵列码C(k,r,p)的编码过程中,需要在多项式环F2[x]/(1+xp)中计算很多形如In the encoding process of the array code C(k, r, p), it is necessary to calculate many shapes in the polynomial ring F 2 [x] / (1 + x p )
Figure PCTCN2017087770-appb-000015
Figure PCTCN2017087770-appb-000015
的除法运算,其中多项式s(x)有偶数个项,b是小于素数p的一个正整数。在以下引理中给出了如何有效的计算这种除法运算。The division operation, in which the polynomial s(x) has an even number of terms, and b is a positive integer smaller than the prime number p. How to effectively calculate this division operation is given in the following lemma.
引理1.在多项式环F2[x]/(1+xp)中,多项式s(x)=s0+s1x+…+sp-1xp-1有偶数个项,给定正整数b和等式 Lemma 1. In the polynomial ring F 2 [x]/(1+x p ), the polynomial s(x)=s 0 +s 1 x+...+s p-1 x p-1 has an even number of terms, given Positive integer b and equation
Figure PCTCN2017087770-appb-000016
Figure PCTCN2017087770-appb-000016
其中b是小于素数p的一个正整数。则可以通过以下等式计算出多项式c(x)=c0+c1x+…+cp-1xp-1的系数。Where b is a positive integer less than the prime number p. Then, the coefficient of the polynomial c(x)=c 0 +c 1 x+...+c p-1 x p-1 can be calculated by the following equation.
cp-1=0,cp-b-1=sp-1,cp-2b-1=sp-2b-1+cp-b-1,cp-3b-1=sp-3b-1+cp-2b-1,…,c p-1 =0, c pb-1 = s p-1 , c p-2b-1 = s p-2b-1 + c pb-1 , c p-3b-1 = s p-3b-1 + c p-2b-1 ,...,
                                                                              。.
cp-(p-3)b-1=sp-(p-3)b-1+cp-(p-2)b-1,cp-(p-2)b-1=sp-(p-2)b-1+cp-(p-1)b-1,cb-1=sb-1 c p-(p-3)b-1 =s p-(p-3)b-1 +c p-(p-2)b-1 ,c p-(p-2)b-1 =s p -(p-2)b-1 +c p-(p-1)b-1 ,c b-1 =s b-1
证明:通过把等式s(x)=c(x)(1+xb)展开有,Proof: by expanding the equation s(x)=c(x)(1+x b ),
s0=c0+cp-b s 0 =c 0 +c pb
s1=c1+cp-b+1 s 1 =c 1 +c p-b+1
s2=c2+cp-b+2 s 2 =c 2 +c p-b+2
                         。.
··
··
··
sp-2=cp-2+cp-b-2 s p-2 =c p-2 +c pb-2
sp-1=cp-1+cp-b-1 s p-1 =c p-1 +c pb-1
选择多项式c(x)的一个系数为0,然后多项式c(x)的其它系数可以通过以上等式迭代的计算出。具体的讲,令系数cp-1等于0,然后可以计算出A coefficient of the polynomial c(x) is selected to be 0, and then other coefficients of the polynomial c(x) can be calculated by the above equation iteration. Specifically, let the coefficient c p-1 be equal to 0, and then calculate
cp-b-1=sp-1 c pb-1 =s p-1
with
cb-1=sb-1c b-1 = s b-1 .
多项式c(x)的其它系数均可以通过一个异或运算迭代的计算出。证毕。The other coefficients of the polynomial c(x) can be calculated by an XOR operation iteration. The certificate is completed.
由引理1的证明过程知,在计算多项式c(x)的系数过程中需要p-3个异或。It is known from the proof process of Lemma 1 that p-3 exclusive ORs are required in the process of calculating the coefficients of the polynomial c(x).
以参数k=2,r=2,p=5为例,介绍柯西阵列码C(2,2,5)的编码过程。Taking the parameters k=2, r=2, p=5 as an example, the encoding process of Cauchy array code C(2, 2, 5) is introduced.
在这个例子中,有两个数据多项式,如式(5)和式(6)所示。In this example, there are two data polynomials, as shown in equations (5) and (6).
s1(x)=s0,1+s1,1x+s2,1x2+s3,1x3+(s0,1+s1,1+s2,1+s3,1)x4      式(5)s 1 (x)=s 0,1 +s 1,1 x+s 2,1 x 2 +s 3,1 x 3 +(s 0,1 +s 1,1 +s 2,1 +s 3, 1 )x 4 (5)
s2(x)=s0,2+s1,2x+s2,2x2+s3,2x3+(s0,2+s1,2+s2,2+s3,2)x4      式(6) s 2 (x)=s 0,2 +s 1,2 x+s 2,2 x 2 +s 3,2 x 3 +(s 0,2 +s 1,2 +s 2,2 +s 3, 2 )x 4 (6)
两个编码多项式c1(x)和c2(x)由以下式(7)所示的等式计算而得。The two coding polynomials c 1 (x) and c 2 (x) are calculated by the equation shown by the following formula (7).
Figure PCTCN2017087770-appb-000017
Figure PCTCN2017087770-appb-000017
根据引理1,在以上计算编码多项式的过程中,每个除法运算均涉及2个异或运算。表1列出了该例子的信息列比特和冗余列比特。在计算二进制柯西阵列码的编码多项式中,首先需要为每个数据多项式计算一个除法运算,然后把相应的数据多项式除法运算的结果相加。According to Lemma 1, in the above calculation of the coding polynomial, each division operation involves 2 exclusive OR operations. Table 1 lists the information column bits and redundant column bits for this example. In calculating the coding polynomial of a binary Cauchy array code, it is first necessary to calculate a division operation for each data polynomial, and then add the results of the corresponding data polynomial division operations.
表1 阵列码C(2,2,5)的信息列和冗余列Table 1 Information column and redundancy column of array code C (2, 2, 5)
信息列1 Information column 1 信息列2Information column 2 冗余列1 Redundant column 1 冗余列2Redundant column 2
s0,1 s 0,1 s0,2 s 0,2 (s0,1+s1,1+s3,1)+(s0,2+s2,2)(s 0,1 +s 1,1 +s 3,1 )+(s 0,2 +s 2,2 ) (s0,1+s1,1+s3,1)+(s0,2+s3,2)(s 0,1 +s 1,1 +s 3,1 )+(s 0,2 +s 3,2 )
s1,1 s 1,1 s1,2 s 1,2 s1,1+(s0,2+s1,2+s2,2+s3,2)s 1,1 +(s 0,2 +s 1,2 +s 2,2 +s 3,2 ) s1,1+s2,2 s 1,1 +s 2,2
s2,1 s 2,1 s2,2 s 2,2 (s0,1+s1,1+s2,1+s3,1)+s2,2 (s 0,1 +s 1,1 +s 2,1 +s 3,1 )+s 2,2 (s0,1+s1,1+s2,1+s3,1)+s0,2 (s 0,1 +s 1,1 +s 2,1 +s 3,1 )+s 0,2
s31 s 31 s32 s 32 (s11+s31)+(s02+s22+s32)(s 11 +s 31 )+(s 02 +s 22 +s 32 ) (s11+s31)+(s02+s12+s32)(s 11 +s 31 )+(s 02 +s 12 +s 32 )
在又一实施例中,阵列码C(k,r,p)的解码过程如下:In yet another embodiment, the decoding process of the array code C(k, r, p) is as follows:
当二进制柯西阵列码的一些数据列丢失时,想要从其他存活的数据列中下载数据并解码出丢失的数据。称这一过程为解码过程。本节给出阵列码C(k,r,p)的一种快速解码方法,这种方法是基于柯西矩阵的LU分解。该解码方法适用于任意数据列的丢失。首先来介绍柯西矩阵的LU分解。When some of the data columns of the binary Cauchy array code are lost, it is desirable to download data from other surviving data columns and decode the missing data. This process is called the decoding process. This section gives a fast decoding method for the array code C(k, r, p), which is based on the LU decomposition of the Cauchy matrix. This decoding method is suitable for the loss of any data column. First, let's introduce the LU decomposition of the Cauchy matrix.
给定2k个互不相等的变量x1,x2,...,xk,y1,y2,...,yk,柯西方阵被定义为如式(8)所示。Given 2k mutually unequal variables x 1 , x 2 , . . . , x k , y 1 , y 2 , . . . , y k , the Western kernel is defined as shown in equation (8).
Figure PCTCN2017087770-appb-000018
Figure PCTCN2017087770-appb-000018
文献[T.Boros,T.Kailath and V.Olshevsky.A fast parallel bjorck-pereyra-type algorithm for solving cauchy linear equations.Elsevier Linear Algebra and Its Applications,vol.1999,302(1):265-293.]中给出了柯西方阵的逆矩阵并提出了柯西矩阵逆矩阵的LU分解,主要结论如下。[T.Boros, T.Kailath and V.Olshevsky.A fast parallel bjorck-pereyra-type algorithm for solving cauchy linear equations. Elsevier Linear Algebra and Its Applications, vol. 1999, 302(1): 265-293.] The inverse matrix of the Western matrix is given and the LU decomposition of the inverse matrix of Cauchy matrix is proposed. The main conclusions are as follows.
定理2.柯西方阵C(x1:k,y1:k)的逆矩阵可以被分解为式(9)所示。 Theorem 2. The inverse matrix of the Western kernel C (x 1: k , y 1: k ) can be decomposed into the equation (9).
Figure PCTCN2017087770-appb-000019
Figure PCTCN2017087770-appb-000019
其中式(10)和式(11)满足。Wherein formula (10) and formula (11) are satisfied.
Figure PCTCN2017087770-appb-000020
Figure PCTCN2017087770-appb-000020
Figure PCTCN2017087770-appb-000021
Figure PCTCN2017087770-appb-000021
其中i=1,2,...,k-1,和式(12)满足。Where i = 1, 2, ..., k-1, and (12) are satisfied.
Dk=diag{(x1-y1) (x2-y2) … (xk-yk)}      式(12)D k =diag{(x 1 -y 1 ) (x 2 -y 2 ) ... (x k -y k )} (12)
举例说明,当k=2时,柯西逆矩阵C(x1:2,y1:2)-1可以分解为式(13)所示。For example, when k=2, the Cauchy inverse matrix C(x 1:2 , y 1:2 ) -1 can be decomposed into the formula (13).
Figure PCTCN2017087770-appb-000022
Figure PCTCN2017087770-appb-000022
基于定理2的结论,提出了一种快速求解柯西矩阵形式的线性方程组的方法。给定一个k×k柯西矩阵形式的线性方程组C(x1:k,y1:k)z=b,其中z=(z1,z2,...,zk)t和b=(b1,b2,...,bk)t均是长度为k的列向量。当给定向量b=(b1,b2,...,bk)t和矩阵C(x1:k,y1:k)的值时,可以求解出向量z=(z1,z2,...,zk)t的值,为式(14)所示。Based on the conclusion of Theorem 2, a method for quickly solving linear equations in the form of Cauchy matrix is proposed. Given a linear equation system C(x 1:k , y 1:k )z=b in the form of a k × k Cauchy matrix, where z = (z 1 , z 2 ,..., z k ) t and b =(b 1 , b 2 ,...,b k ) t are all column vectors of length k. When the values of the vector b = (b 1 , b 2 , ..., b k ) t and the matrix C (x 1: k , y 1: k ) are given, the vector z = (z 1 , z can be solved The value of 2 ,...,z k ) t is as shown in equation (14).
Figure PCTCN2017087770-appb-000023
Figure PCTCN2017087770-appb-000023
算法的伪代码请见算法1。See pseudo-code for the algorithm.
在算法1中,需要处理三种运算:(i)多项式bl和xi的乘积,(ii)除法运算bl/(xj-yj-i),(iii)多项式的加法运算bi+bj。可以统计算法1中共有5k(k-1)次第一种类型乘法运算,k(k-1)次第二种类型除法运算和k+3k(k-1)次第三种类型加法运算。对应到阵列码C(k,r,p)的解码过程中,算法1中的xi和yi均被x的幂所代替,而变量bl和则被多项式环F2[x]/(1+xp)中的一个多项式代替。算法1中所有的类型二除法运算均可以通过引理1给出的方法计算出,且一个除法运算涉及p-3次异或运算。对于第一种类型乘法运算,在多项式环F2[x]/(1+xp)中,一个多项式乘以xi就是这个多项式的循环移位i位,因此没有涉及异或运算。在多项式环F2[x]/(1+xp)中,两个多项式相加会用到p次异或运算。In Algorithm 1, three operations need to be processed: (i) the product of the polynomial b l and x i , (ii) the division operation b l /(x j -y ji ), (iii) the addition of the polynomial b i +b j . It is possible to statistically calculate a total of 5k(k-1) times of the first type of multiplication in algorithm 1, k(k-1) times of the second type of division operation, and k+3k(k-1) times of the third type of addition. In the decoding process corresponding to the array code C(k, r, p), both x i and y i in Algorithm 1 are replaced by the power of x, and the variables b l and then are polynomial rings F 2 [x]/( A polynomial in 1+x p ) is substituted. All type 2 division operations in Algorithm 1 can be calculated by the method given in Lemma 1, and a division operation involves a p-3 XOR operation. For the first type of multiplication, in the polynomial ring F 2 [x] / (1 + x p ), multiplying a polynomial by x i is the cyclically shifted i-bit of this polynomial, so no XOR operation is involved. In the polynomial ring F 2 [x]/(1+x p ), the addition of two polynomials uses a p-exclusive OR operation.
在算法1中,步骤5到7是计算矩阵
Figure PCTCN2017087770-appb-000024
的右矩阵和列向量b的乘积,共有3(k-i)个多项式加法运算,其计算复杂度最多为3p(k-i)次异或。步骤8到10则是计算矩阵
Figure PCTCN2017087770-appb-000025
的左矩阵和列向量b的乘积,其计算复杂度最多为3k(k-1)(p-3)/2次异或。因此,步骤5到10,计算矩阵
Figure PCTCN2017087770-appb-000026
和列向量b的乘积的计算复杂度最多为3pk(k-1)/2+3k(k-1)(p-3)/2次异或。步骤12到14是计算对角矩阵Dk和以上步骤得到的多项式向量的乘积,其计算复杂度最多为p+(k-1)(p-2)次异或。步骤16到18是计算矩阵
Figure PCTCN2017087770-appb-000027
的右矩阵和以上步骤得到的多项式向量的乘积,其计算复杂度最多为(k-3)k(k-1)/2次异或。步骤19到26则是计算矩阵
Figure PCTCN2017087770-appb-000028
的左矩阵和以上步骤得到的多项式向量的乘积,其计算复杂度最多为k(k-1)(3p-4)/2次异或。所以,在多项式环F2[x]/(1+xp)中,算法1的计算复杂度最多为式(15)所示。
In Algorithm 1, steps 5 through 7 are computation matrices
Figure PCTCN2017087770-appb-000024
The product of the right matrix and the column vector b has a total of 3 (ki) polynomial addition operations, and the computational complexity is at most 3p (ki) XOR. Steps 8 through 10 are calculation matrices
Figure PCTCN2017087770-appb-000025
The product of the left matrix and the column vector b has a computational complexity of at most 3k(k-1)(p-3)/2 times XOR. Therefore, steps 5 to 10, calculate the matrix
Figure PCTCN2017087770-appb-000026
The computational complexity of the product of the column vector b is at most 3pk(k-1)/2+3k(k-1)(p-3)/2 times XOR. Steps 12 through 14 are the product of calculating the diagonal matrix D k and the polynomial vector obtained in the above step, and the computational complexity is at most p + (k - 1) (p - 2). Steps 16 through 18 are calculation matrices
Figure PCTCN2017087770-appb-000027
The product of the right matrix and the polynomial vector obtained in the above step has a computational complexity of at most (k-3)k(k-1)/2 times XOR. Steps 19 through 26 are calculation matrices
Figure PCTCN2017087770-appb-000028
The product of the left matrix and the polynomial vector obtained in the above step has a computational complexity of at most k(k-1)(3p-4)/2 times XOR. Therefore, in the polynomial ring F 2 [x]/(1+x p ), the computational complexity of Algorithm 1 is at most as shown in Equation (15).
Figure PCTCN2017087770-appb-000029
Figure PCTCN2017087770-appb-000029
考虑上文给出的例子,两个编码多项式是通过以下等式计算出式(16)所示等式。 Considering the example given above, the two coding polynomials calculate the equation shown by equation (16) by the following equation.
Figure PCTCN2017087770-appb-000030
Figure PCTCN2017087770-appb-000030
假设两个数据多项式分别为s1(x)=1+x和s2(x)=x+x3。那么,可以得出其两个编码多项式分别为c1(x)=x和c2(x)=x+x2+x3Assume that the two data polynomials are s 1 (x) = 1 + x and s 2 (x) = x + x 3 , respectively . Then, it can be concluded that its two coding polynomials are c 1 (x)=x and c 2 (x)=x+x 2 +x 3 , respectively .
根据定理1,这个2×2的柯西矩阵可以分解为式(17)所示。According to Theorem 1, this 2 × 2 Cauchy matrix can be decomposed into the equation (17).
Figure PCTCN2017087770-appb-000031
Figure PCTCN2017087770-appb-000031
可以验证两个数据多项式可以由两个编码多项式通过以下等式计算出式(18)。It can be verified that two data polynomials can be calculated by the following equation from two coding polynomials (18).
Figure PCTCN2017087770-appb-000032
Figure PCTCN2017087770-appb-000032
在求解两个编码多项式的过程中,有32个异或运算。In the process of solving two coding polynomials, there are 32 XOR operations.
当阵列码C(k,r,p)中有ρ≤r个列丢失时,接下来描述阵列码的解码过程。假设γ个信息列a1,a2,...,aγ和δ个冗余列b1,b2,...,bδ丢失,其中1≤a1<a2<...<aγ≤k,1≤b1<b2<...<bγ≤r,k≥γ≥0,r≥δ≥0且γ+δ=ρ≤r。把存活的没有丢失的信息列表示为式(19)。When ρ ≤ r columns are lost in the array code C(k, r, p), the decoding process of the array code will be described next. Suppose that γ information columns a 1 , a 2 , . . . , a γ and δ redundant columns b 1 , b 2 , . . . , b δ are lost, where 1≤a 1 <a 2 <...< a γ ≤ k, 1 ≤ b 1 < b 2 <... < b γ ≤ r, k ≥ γ ≥ 0, r ≥ δ ≥ 0, and γ + δ = ρ ≤ r. The list of information that has not been lost is represented by equation (19).
M={1,2,...,k}\{a1,a2,...,aγ}           式(19) 把没有丢失的冗余列表示为式(20)。M = {1, 2, ..., k}\{a 1 , a 2 , ..., a γ } Equation (19) represents a redundant column that is not lost as Equation (20).
P={1,2,...,r}\{b1,b2,...,bδ}            式(20)P={1,2,...,r}\{b 1 ,b 2 ,...,b δ } (20)
首先下载存活的没有丢失的k-γ个信息列i1,i2,...,ik-γ∈M,和γ个冗余列l1,l2,...,lγ∈P,恢复出丢失的γ个信息列,然后把丢失冗余列的编码向量与k个数据多项式相乘计算出丢失的冗余多项式。下面详细的介绍其解码过程。First download the surviving k-γ information columns i 1 , i 2 , . . . , i k-γ ∈M, and γ redundant columns l 1 , l 2 , . . . , l γ ∈P The lost γ information columns are recovered, and then the coded vector of the missing redundant column is multiplied by k data polynomials to calculate the missing redundant polynomial. The decoding process is described in detail below.
对于τ=1,2,...,k-γ,首先为信息列iτ添加一个校验比特并形成数据多项式如式(21)。For τ = 1, 2, ..., k- γ, a parity bit is first added to the information column i τ and a data polynomial is formed as in equation (21).
Figure PCTCN2017087770-appb-000033
Figure PCTCN2017087770-appb-000033
对于h=1,2,...,γ,为冗余列lh添加比特零并形成编码多项式如式(22)For h=1, 2,..., γ, add bit zero to the redundancy column l h and form a coding polynomial such as equation (22)
Figure PCTCN2017087770-appb-000034
Figure PCTCN2017087770-appb-000034
令式(23)Order (23)
Figure PCTCN2017087770-appb-000035
Figure PCTCN2017087770-appb-000035
分别为γ个编码多项式减去k-γ个数据多项式所得到的多项式,则有式(24)。For the polynomial obtained by subtracting k-γ data polynomials for γ coding polynomials, respectively, there is equation (24).
Figure PCTCN2017087770-appb-000036
Figure PCTCN2017087770-appb-000036
其中h=1,2,...,γ。然后,可以通过求解以下线性方程组解出丢失的γ个数据多项式。如式(25)所示。Where h = 1, 2, ..., γ. The missing γ data polynomials can then be solved by solving the following system of linear equations. As shown in equation (25).
Figure PCTCN2017087770-appb-000037
Figure PCTCN2017087770-appb-000037
通过调用算法1,可以得到γ个丢失的信息列。然后,丢失的δ个冗余列可以通过相应的编码向量与k个信息多项式相乘得到。By calling Algorithm 1, γ missing columns of information can be obtained. Then, the missing δ redundant columns can be obtained by multiplying the corresponding coding vectors by k information polynomials.
下面来分析编解码的复杂度。Let's analyze the complexity of codec.
下面统计下二进制柯西阵列码的解码复杂度。为k-γ个信息列添加校验比特并形成数据多项式用到了(k-γ)(p-2)次异或运算。计算式子(22)所表示的γ个多项式需要γ((k-γ)(p-3)+(k-γ)(p-1))=γ(k-γ)(2p-4)次异或运算。在求解γ×γ柯西形式的线性方程组时用到了4γ2p-3γp-5γ2+3γ+2次异或运算。在恢复δ个冗余列时需要δ(k(p-3)+(k-1)(p-1))次异或运算。因此,解码出γ 个信息列和δ个冗余列的解码计算复杂度Dγ,δ,为式(26)。The decoding complexity of the binary Cauchy array code is counted below. Adding a check bit to the k-γ information columns and forming a data polynomial uses a (k-γ) (p-2) sub-OR operation. The γ polynomial represented by the equation (22) requires γ((k-γ)(p-3)+(k-γ)(p-1))=γ(k-γ)(2p-4) times. XOR operation. The 4γ 2 p-3γp-5γ 2 +3γ+2 XOR operation was used in solving the linear equations of the γ×γ Cauchy form. A δ(k(p-3)+(k-1)(p-1)) XOR operation is required to recover δ redundant columns. Therefore, the decoding computational complexity D γ, δ of the γ information columns and the δ redundant columns is decoded as Equation (26).
Figure PCTCN2017087770-appb-000038
Figure PCTCN2017087770-appb-000038
次异或运算。当没有冗余列丢失,仅仅有信息列丢失时,解码复杂度为式(27)所示次异或运算。Sub-OR operation. When there is no redundant column loss, only the information column is lost, and the decoding complexity is the sub-OR operation shown in equation (27).
Dγ=(k-γ)(p-2)+γ(k-γ)(2p-4)+4γ2p-3γp-5γ2+3γ+2      式(27)。D γ = (k - γ) (p - 2) + γ (k - γ) (2p - 4) + 4 γ 2 p - 3 γp - 5 γ 2 + 3 γ + 2 Formula (27).
为方便比较,定义单位编码复杂度为编码过程中涉及到的异或运算的个数除以信息比特的个数,单位解码复杂度为解码过程中涉及到的异或运算的个数除以信息比特的个数。For convenience of comparison, the unit coding complexity is defined as the number of XOR operations involved in the encoding process divided by the number of information bits, and the unit decoding complexity is the number of XOR operations involved in the decoding process divided by the information. The number of bits.
相比于之前的编码方案,比如EVENODD码,阵列码C(k,r,p)的编解码复杂度几乎不变,但却能大大提升系统的容错能力,最多能修复任意r个节点失效;相比于CRS码,阵列码C(k,r,p)在同样能恢复多个节点失效的同时,编解码复杂度均很低。其次,C(k,r,p)码对原始信息数据块的数量不固定,取值更加灵活。而且,C(k,r,p)码的构造过程和重建过程均只涉及异或运算,所以计算复杂度很低、计算开销很小,很大程度上降低了系统计算时延,节省时间和资源,能减少成本的消耗,适合实际的存储系统;C(k,r,p)码可以满足MDS属性,在节省存储空间的同时,又让系统能够容纳多个结点故障,增加了数据的容错性和稳定性。Compared with the previous coding scheme, such as the EVENODD code, the codec complexity of the array code C(k, r, p) is almost unchanged, but it can greatly improve the fault tolerance of the system, and can repair any r node failures at most; Compared with the CRS code, the array code C(k, r, p) can recover multiple nodes at the same time, and the codec complexity is very low. Secondly, the C(k, r, p) code does not fix the number of original information data blocks, and the value is more flexible. Moreover, the construction process and reconstruction process of C(k,r,p) code only involve XOR operation, so the computational complexity is low and the computational overhead is small, which greatly reduces the system calculation delay, saves time and Resources, can reduce the cost of consumption, suitable for the actual storage system; C (k, r, p) code can meet the MDS attributes, while saving storage space, the system can accommodate multiple node failures, increasing the data Fault tolerance and stability.
编码计算复杂度:Encoding calculation complexity:
在阵列码C(k,r,p)中,有k个信息列,r个冗余列。首先,为每个信息列计算一个校验比特形成数据多项式,需要k(p-2)次异或运算。然后,根据编码计算公式计算出r个编码多项式。在计算每个编码多项式的过程中,需要计算k个除法运算,根据引理8知需要个k(p-3)异或运算。另外,根据引理1的结论,除法运算所得多项式的次数为p-1的系数为0。因此,在计算每个编码多项式的过程中的k-1个加法运算,需要(k-1)(p-1)次异或运算。所以,计算一个编码多项式需要的异或个数E1为式(28)所示。In the array code C(k, r, p), there are k information columns and r redundant columns. First, a parity bit is formed for each information column to form a data polynomial, which requires a k(p-2) XOR operation. Then, r coding polynomials are calculated according to the coding calculation formula. In the process of calculating each coding polynomial, k division operations need to be calculated, and according to Lemma 8, a k(p-3) exclusive OR operation is required. Further, according to the conclusion of Lemma 1, the coefficient of the polynomial obtained by the division operation is p-1 and the coefficient is 0. Therefore, in the k-1 addition in the process of calculating each coding polynomial, a (k-1) (p-1) XOR operation is required. Therefore, the number of exclusive ORs E 1 required to calculate a coding polynomial is as shown in equation (28).
E1=k(p-3)+(k-1)(p-1)             式(28)E 1 =k(p-3)+(k-1)(p-1) (28)
计算r个冗余列需要的计算量Er,为式(29)所示。The calculation amount E r required to calculate r redundant columns is as shown in equation (29).
Er=k(p-2)+r(2kp-4k-p+1)        式(29)E r =k(p-2)+r(2kp-4k-p+1) (29)
二进制柯西阵列码C(k,r,p)的单位编码计算复杂度NEC(k,r,p),为式(30)。 The unit coding computational complexity NE C(k, r, p) of the binary Cauchy array code C(k, r, p) is expressed by equation (30).
Figure PCTCN2017087770-appb-000039
Figure PCTCN2017087770-appb-000039
当给定冗余列的个数r时,循环柯西(Circulant Cauchy)阵列码[C.Schindelhauer and C.Ortolf.Maximum distance separable codes based on circulant cauchy matrices.Structural Information and Communication Complexity.Springer,2013,3(1):334-345.]的单位编码计算复杂度为式(31)所示。Circulant Cauchy array code [C. Schindelhauer and C. Ortolf. Maximum distance separable codes based on circulant cauchy matrices. Structural Information and Communication Complexity. Springer, 2013, when given the number r of redundant columns. The unit coding computational complexity of 3(1): 334-345.] is as shown in equation (31).
Figure PCTCN2017087770-appb-000040
Figure PCTCN2017087770-appb-000040
为了公平的比较柯西阵列码的编码复杂度,令参数k等于p-r,因此有阵列码C(k,r,p)的单位编码计算复杂度为式(32)所示。In order to fairly compare the coding complexity of the Cauchy array code, the parameter k is equal to p-r, so the unit coding computational complexity of the array code C(k, r, p) is as shown in equation (32).
Figure PCTCN2017087770-appb-000041
Figure PCTCN2017087770-appb-000041
当r=4时,对阵列码C(p-4,4,p),令k=p-4。当p取值范围从11到47时,阵列码C(p-4,4,p)、循环柯西阵列码和CRS码的单位编码计算复杂度如图1。对于CRS码,令k=p-4。When r=4, for array code C(p-4, 4, p), let k = p-4. When the value of p ranges from 11 to 47, the unit coding computational complexity of the array code C(p-4, 4, p), the cyclic Cauchy array code, and the CRS code is as shown in FIG. For the CRS code, let k = p-4.
在图1中,CRS码的数值均是1000次运行数据的平均值。图1的结果表明阵列码C(p-4,4,p)的单位编码计算复杂度是三种阵列码中最低的,而CRS码的计算复杂度是三种阵列码中最大的。In Figure 1, the values of the CRS codes are the average of 1000 running data. The results of Fig. 1 show that the unit coding computational complexity of the array code C(p-4, 4, p) is the lowest of the three array codes, and the computational complexity of the CRS code is the largest of the three array codes.
解码计算复杂度:Decoding computational complexity:
同样的,令k=p-r,阵列码C(p-r,r,p)的单位解码计算复杂度NDC(p-r,r,p),为式(33)所示。Similarly, let k = pr, the unit of the array code C (pr, r, p) decodes the computational complexity ND C (pr, r, p) as shown in equation (33).
Figure PCTCN2017087770-appb-000042
Figure PCTCN2017087770-appb-000042
当r=4时,Rabin-Like码[G.L.Feng,R.H.Deng,F.Bao,et al.New efficient MDS array codes for RAID.Part II.Rabin-like codes for tolerating multiple(≥4)disk failures.IEEE Transactions on Computers,2006,54(12):1473-1483]的解码计算复杂度为p(9k+95)异或运算,而当r大于4时,其解码计算复杂度会很大且作者并没有给出精确地异或个数。当循环柯西阵列码中有r个信息列丢失时,其单位解码计算复杂度NDCC,为式(34)所示。When r=4, Rabin-Like code [GLFeng, RHDeng, F.Bao, et al.New efficient MDS array codes for RAID.Part II.Rabin-like codes for tolerating multiple (≥4) disk failures.IEEE Transactions on The decoding computational complexity of Computers, 2006, 54(12): 1473-1483] is p(9k+95) XOR operation, and when r is greater than 4, the decoding computational complexity is large and the author does not give Exactly the number of XOR. When r information columns are lost in the cyclic Cauchy array code, the unit decoding computation complexity ND CC is as shown in equation (34).
Figure PCTCN2017087770-appb-000043
Figure PCTCN2017087770-appb-000043
当r=4时,且当参数p取值范围从11到37时,阵列码C(p-4,4,p)、 Rabin-Like码、柯西循环码和CRS码的单位解码计算复杂度如图2。图2的结果表明,循环柯西码、Rabin-Like码和阵列码C(p-4,4,p)均是随着参数p的增加而减少,而CRS码则是随着参数p的增加而增加。这是因为CRS码的解码优化算法对参数值小时性能较好,而当参数值较大时,其优化效果不佳。因此,当参数较大时,CRS码的解码计算复杂度是最大的,而当参数较小时,CRS码的解码计算复杂度相对较低。在阵列码C(p-4,4,p)、Rabin-Like码和柯西循环码中,阵列码C(p-4,4,p)的解码计算复杂度是最低的,无论是当参数p取值小还是取值大。When r=4, and when the parameter p takes values from 11 to 37, the array code C(p-4, 4, p), The unit decoding computational complexity of the Rabin-Like code, the Cauchy cyclic code, and the CRS code is shown in Figure 2. The results in Fig. 2 show that the cyclic Cauchy code, Rabin-Like code and array code C (p-4, 4, p) decrease with the increase of the parameter p, while the CRS code increases with the parameter p. And increase. This is because the decoding optimization algorithm of the CRS code performs better for the parameter value hourly, and when the parameter value is large, the optimization effect is not good. Therefore, when the parameter is large, the decoding computation complexity of the CRS code is the largest, and when the parameter is small, the decoding computation complexity of the CRS code is relatively low. In the array code C (p-4, 4, p), Rabin-Like code and Cauchy cyclic code, the decoding complexity of the array code C (p-4, 4, p) is the lowest, whether it is a parameter The value of p is small or large.
当r=5时,且当参数p取值范围从11到59时,阵列码C(p-5,5,p)、柯西循环码和CRS码的单位解码计算复杂度如图3。与r等于4的情况类似,CRS码的解码计算复杂度随着参数p的增加而变大,而阵列码C(p-5,5,p)和柯西循环码的计算复杂度则随着参数p的增加而变小。在所有测试的数据点,阵列码C(p-5,5,p)的解码计算复杂度均是最低的。当参数p大于47时,CRS码的解码计算复杂度大于循环柯西码的解码计算复杂度。相反,当参数p小于47时,CRS码的解码计算复杂度则小于循环柯西码的解码计算复杂度。When r=5, and when the parameter p takes a value ranging from 11 to 59, the unit decoding computational complexity of the array code C(p-5, 5, p), the Cauchy cyclic code and the CRS code is as shown in FIG. Similar to the case where r is equal to 4, the decoding computation complexity of the CRS code becomes larger as the parameter p increases, and the computational complexity of the array code C(p-5, 5, p) and the Cauchy cyclic code follows The parameter p increases and becomes smaller. The decoding computational complexity of the array code C(p-5, 5, p) is the lowest at all tested data points. When the parameter p is greater than 47, the decoding computation complexity of the CRS code is greater than the decoding computation complexity of the cyclic Cauchy code. Conversely, when the parameter p is less than 47, the decoding computational complexity of the CRS code is less than the decoding computational complexity of the cyclic Cauchy code.
阵列码C(k,r,p)相比于其他MDS码,如CRS码,最大的优势在于其编码计算复杂度和解码计算复杂度都低很多,而且对于原始信息数据块的数量没有固定,可取2到p内的任意整数。相比于能恢复两个结点的EVENODD码,阵列码C(k,r,p)在编解码复杂度几乎不变的情况下,提高了系统的容错性,最多能修复任意r个节点失效。Compared with other MDS codes, such as CRS codes, the array code C(k, r, p) has the greatest advantage that its coding computation complexity and decoding computation complexity are much lower, and the number of original information data blocks is not fixed. Any integer from 2 to p can be taken. Compared with the EVENODD code that can recover two nodes, the array code C(k, r, p) improves the fault tolerance of the system when the codec complexity is almost unchanged, and can repair any r nodes at most. .
阵列码C(k,r,p)拥有较优的编解码复杂度,同时大大提升了系统的容错能力,而且对原始信息数据块的数量没有固定,可取2到p内的任意整数,更加灵活,达到存储开销与系统可靠性的最优折中。The array code C(k, r, p) has better codec complexity, and greatly improves the fault tolerance of the system, and the number of original information data blocks is not fixed. It can take any integer from 2 to p, which is more flexible. , to achieve the optimal compromise between storage overhead and system reliability.
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。 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 (8)

  1. 一种修复多节点失效的MDS阵列码编码,其特征在于:其组成部分为C(k,r,p)码,通过构建一个(p-1)*(k+r)的矩阵来存储原始信息数据块和冗余块,其中p为质数,且p大于k和r,k和r小于为小于p大于0的任意整数;k列称为信息列,其对应为k个数据块;r列为冗余列,其对应为r个冗余块,C(k,r,p)码中的加法和减法运算均为异或运算。A MDS array code coding for repairing multi-node failures, characterized in that its component is a C(k, r, p) code, and a primitive (p-1)*(k+r) matrix is constructed to store original information. Data blocks and redundant blocks, where p is a prime number and p is greater than k and r, k and r are smaller than any integer less than p greater than 0; k columns are called information columns, which correspond to k data blocks; r columns are Redundant columns, which correspond to r redundant blocks, and the addition and subtraction operations in the C(k, r, p) code are XOR operations.
  2. 根据权利要求1所述的修复多节点失效的MDS阵列码编码,其特征在于:C(k,r,p)码的构造过程为:给定k(p-1)个信息比特,计算并添加k个校验比特,得到k个数据多项式,通过计算出编码多项式,存储多项式的次数为从0到p-2的多项式的系数。The MDS array code encoding for repairing multi-node failure according to claim 1, wherein the C (k, r, p) code is constructed by: adding k (p-1) information bits, calculating and adding k check bits are obtained, and k data polynomials are obtained. By calculating the coding polynomial, the number of times the polynomial is stored is a coefficient of a polynomial from 0 to p-2.
  3. 根据权利要求2所述的修复多节点失效的MDS阵列码编码,其特征在于:存储在第j信息列的p-1个信息比特和其校验比特表示的第一数据多项式为sj(x)=s0,j+s1,jx+…+sp-2,jxp-2+sp-1,jxp-1,其中,si,j表示阵列码C(k,r,p)的第j信息列的第i个比特;第三编码多项式为The MDS array code encoding for repairing multi-node failure according to claim 2, wherein the p-1 information bits stored in the jth information column and the first data polynomial represented by the check bits thereof are s j (x )=s 0,j +s 1,j x+...+s p-2,j x p-2 +s p-1,j x p-1 , where s i,j denotes array code C(k,r , p) the ith bit of the jth information column; the third coding polynomial is
    Figure PCTCN2017087770-appb-100001
    Figure PCTCN2017087770-appb-100001
  4. 根据权利要求1所述的修复多节点失效的MDS阵列码编码,其特征在于:C(k,r,p)码中的除法按以下方式进行:为每个数据多项式计算一个除法运算,然后把相应的数据多项式除法运算的结果相加。The MDS array code encoding for repairing multi-node failure according to claim 1, wherein the division in the C(k, r, p) code is performed in the following manner: calculating a division operation for each data polynomial, and then The results of the corresponding data polynomial division operations are added.
  5. 根据权利要求1所述的修复多节点失效的MDS阵列码编码,其特征在于:C(k,r,p)码为二进制柯西阵列码,其生成矩阵为G=[I C],其中矩阵I表示k×k的单位阵,矩阵C为的k×r柯西矩阵,The MDS array code encoding for repairing multi-node failure according to claim 1, wherein the C(k, r, p) code is a binary Cauchy array code, and the generator matrix is G=[I C], wherein the matrix I represents the unit matrix of k × k, and the matrix C is the k × r Cauchy matrix.
    Figure PCTCN2017087770-appb-100002
    Figure PCTCN2017087770-appb-100002
  6. 一种修复多节点失效的MDS阵列码编码的解码方法,其特征在于:包括如下步骤:当阵列码C(k,r,p)中有ρ≤r个列丢失时,设γ个信息列a1,a2,…,aγ和δ个冗余列b1,b2,…,bδ丢失,其中1≤a1<a2<…<aγ≤k,1≤b1<b2<…<bγ≤r,k≥γ≥0,r≥δ≥0且γ+δ=ρ≤r,把存活的没有丢失的信息列表示为 Μ={1,2,…,k}\{a1,a2,…,aγ},把没有丢失的冗余列表示为Ρ={1,2,…,r}\{b1,b2,…,bδ},首先下载存活的没有丢失的k-γ个信息列i1,i2,…,ik-γ∈Μ,和γ个冗余列l1,l2,…,lγ∈Ρ,恢复出丢失的γ个信息列,然后把丢失冗余列的编码向量与k个数据多项式相乘计算出丢失的冗余多项式。A decoding method for repairing multi-node failure MDS array code coding, comprising: the following steps: when ρ≤r columns are lost in the array code C(k, r, p), set γ information columns a 1, a 2, ..., a γ redundant columns and [delta] b 1, b 2, ..., b δ loss, wherein 1≤a 1 <a 2 <... < a γ ≤k, 1≤b 1 <b 2 <...<b γ ≤r,k≥γ≥0, r≥δ≥0 and γ+δ=ρ≤r, and the column of information that has not survived is represented as Μ={1,2,...,k}\ {a 1 , a 2 ,...,a γ }, denote redundant columns without loss as Ρ={1,2,...,r}\{b 1 ,b 2 ,...,b δ }, first download and survive There are no missing k-γ information columns i 1 , i 2 , ..., i k-γ ∈Μ, and γ redundant columns l 1 , l 2 , ..., l γ ∈Ρ, recovering the lost γ The information column then multiplies the coded vector of the missing redundant column by k data polynomials to calculate the missing redundant polynomial.
  7. 根据权利要求6所述的修复多节点失效的MDS阵列码编码的解码方法,其特征在于:为信息列iτ添加一个校验比特并形成数据多项式
    Figure PCTCN2017087770-appb-100003
    其中τ=1,2,…,k-γ;为冗余列lh添加比特零并形成编码多项式
    Figure PCTCN2017087770-appb-100004
    其中,h=1,2,…,γ;分别为γ个编码多项式减去k-γ个数据多项式所得到的多项式为
    The method for decoding a multi-node failure MDS array code code according to claim 6, wherein: adding a parity bit to the information column i τ and forming a data polynomial
    Figure PCTCN2017087770-appb-100003
    Where τ=1,2,...,k-γ; adding a bit zero to the redundant column l h and forming a coding polynomial
    Figure PCTCN2017087770-appb-100004
    Where h = 1, 2, ..., γ; the polynomial obtained by subtracting k-γ data polynomials from γ coding polynomials is
    Figure PCTCN2017087770-appb-100005
    Figure PCTCN2017087770-appb-100005
    通过求解线性方程组解出丢失的γ个数据多项式,其中线性方程组为Solving the missing γ data polynomials by solving linear equations, where the linear equations are
    Figure PCTCN2017087770-appb-100006
    Figure PCTCN2017087770-appb-100006
    然后获得γ个丢失的信息列。Then γ missing columns of information are obtained.
  8. 根据权利要求6所述的修复多节点失效的MDS阵列码编码的解码方法,其特征在于:丢失的δ个冗余列通过相应的编码向量与k个信息多项式相乘得到。 The method for decoding a multi-node failure MDS array code code according to claim 6, wherein the lost δ redundant columns are obtained by multiplying the corresponding coding vectors by k information polynomials.
PCT/CN2017/087770 2017-03-16 2017-06-09 Mds array code encoding and decoding method for repairing failure of multiple nodes WO2018166078A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710156631.6A CN107086870B (en) 2017-03-16 2017-03-16 Repair the MDS array code coding and coding/decoding method of more piece point failure
CN201710156631.6 2017-03-16

Publications (1)

Publication Number Publication Date
WO2018166078A1 true WO2018166078A1 (en) 2018-09-20

Family

ID=59615212

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/087770 WO2018166078A1 (en) 2017-03-16 2017-06-09 Mds array code encoding and decoding method for repairing failure of multiple nodes

Country Status (2)

Country Link
CN (1) CN107086870B (en)
WO (1) WO2018166078A1 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108199720B (en) * 2017-12-15 2021-02-19 深圳大学 Node repairing method and system for reducing storage overhead and improving repairing efficiency
CN108512553B (en) * 2018-03-09 2022-09-27 哈尔滨工业大学深圳研究生院 Truncated regeneration code construction method for reducing bandwidth consumption
WO2019227456A1 (en) * 2018-06-01 2019-12-05 东莞理工学院 Evenodd code constructing method
CN109257049B (en) * 2018-08-09 2020-11-06 东莞理工学院 Construction method for repairing binary array code check matrix and repairing method
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
CN109445990A (en) * 2018-10-29 2019-03-08 哈尔滨工业大学(深圳) MDS buffering scheme based on double rendition
CN110457161A (en) * 2019-07-26 2019-11-15 成都信息工程大学 A kind of efficiently highly reliable big data storage system, method, computer program
CN110289864A (en) * 2019-08-01 2019-09-27 东莞理工学院 The optimal reparation access transform method and device of binary system MDS array code
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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102684836A (en) * 2012-05-15 2012-09-19 哈尔滨工程大学 Network code repairing method based on network code
CN103650462A (en) * 2012-04-27 2014-03-19 北京大学深圳研究生院 Coding, decoding and data repairing method based on homomorphic self-repairing code and storage system thereof
CN103688514A (en) * 2013-02-26 2014-03-26 北京大学深圳研究生院 Coding method for minimum storage regeneration codes and method for restoring of storage nodes
CN103688515A (en) * 2013-03-26 2014-03-26 北京大学深圳研究生院 Method for encoding minimum bandwidth regeneration codes and repairing storage nodes
US20150303949A1 (en) * 2014-04-21 2015-10-22 The Regents Of The University Of California [01] cost-efficient repair for storage systems using progressive engagement

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8694866B2 (en) * 2011-03-15 2014-04-08 California Institute Of Technology MDS array codes with optimal building
CN102624866B (en) * 2012-01-13 2014-08-20 北京大学深圳研究生院 Data storage method, data storage device and distributed network storage system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103650462A (en) * 2012-04-27 2014-03-19 北京大学深圳研究生院 Coding, decoding and data repairing method based on homomorphic self-repairing code and storage system thereof
CN102684836A (en) * 2012-05-15 2012-09-19 哈尔滨工程大学 Network code repairing method based on network code
CN103688514A (en) * 2013-02-26 2014-03-26 北京大学深圳研究生院 Coding method for minimum storage regeneration codes and method for restoring of storage nodes
CN103688515A (en) * 2013-03-26 2014-03-26 北京大学深圳研究生院 Method for encoding minimum bandwidth regeneration codes and repairing storage nodes
US20150303949A1 (en) * 2014-04-21 2015-10-22 The Regents Of The University Of California [01] cost-efficient repair for storage systems using progressive engagement

Also Published As

Publication number Publication date
CN107086870B (en) 2019-10-22
CN107086870A (en) 2017-08-22

Similar Documents

Publication Publication Date Title
WO2018166078A1 (en) Mds array code encoding and decoding method for repairing failure of multiple nodes
CN103688514B (en) A kind of minimum memory regenerates the coding and memory node restorative procedure of code
Silberstein et al. Optimal locally repairable codes via rank-metric codes
WO2016058289A1 (en) Mds erasure code capable of repairing multiple node failures
Hou et al. Binary MDS array codes with optimal repair
Gad et al. Repair-optimal MDS array codes over GF (2)
CN105518996B (en) A kind of data decoding method based on binary field reed-solomon code
WO2018072294A1 (en) Method for constructing check matrix and method for constructing horizontal array erasure code
US20200382141A1 (en) Method and System for Repairing Reed-Solomon Codes
Yazdi et al. Optimal design of a Gallager B noisy decoder for irregular LDPC codes
WO2024098647A1 (en) Check-code recovery method and system, electronic device and storage medium
CN111682874A (en) Data recovery method, system, equipment and readable storage medium
Chiu et al. A new diskless checkpointing approach for multiple processor failures
Hou et al. Triple-fault-tolerant binary MDS array codes with asymptotically optimal repair
CN102843212A (en) Coding and decoding method and device
Zhang A new construction of optimal (r, δ) locally recoverable codes
WO2020029418A1 (en) Method for constructing repair binary code generator matrix and repair method
WO2017041232A1 (en) Encoding and decoding framework for binary cyclic code
Gligoroski et al. Repair duality with locally repairable and locally regenerating codes
WO2019227456A1 (en) Evenodd code constructing method
WO2017041233A1 (en) Encoding and storage node repairing method for functional-repair regenerating code
WO2014012246A1 (en) Encoding, reconstructing, and recovering methods used for self-repairing code stored by distributed network
Schindelhauer et al. Maximum distance separable codes based on circulant cauchy matrices
Song et al. A Low complexity design of reed solomon code algorithm for advanced RAID system
Hou et al. Towards efficient repair and coding of binary MDS array codes with small sub-packetization

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: 17900737

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: 17900737

Country of ref document: EP

Kind code of ref document: A1