CN109257049B - 一种修复二进制阵列码校验矩阵的构造方法及修复方法 - Google Patents
一种修复二进制阵列码校验矩阵的构造方法及修复方法 Download PDFInfo
- Publication number
- CN109257049B CN109257049B CN201810905963.4A CN201810905963A CN109257049B CN 109257049 B CN109257049 B CN 109257049B CN 201810905963 A CN201810905963 A CN 201810905963A CN 109257049 B CN109257049 B CN 109257049B
- Authority
- CN
- China
- Prior art keywords
- repairing
- polynomials
- matrix
- coding
- polynomial
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Classifications
-
- 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
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/154—Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
Description
技术领域
本发明属于数据处理技术改进领域,尤其涉及一种修复二进制阵列码校验矩阵的构造方法及修复方法。
背景技术
现代分布式存储***部署擦除代码来维护数据可用性,以防止存储节点的故障。二进制最大距离可分(MDS)阵列编码是一种特殊的擦除码,它可以实现最小存储冗余和低计算复杂度的容错。特别地,二进制数组代码由k+r列组成,每个列中都有L位。在k+r列中,k信息列存储信息位r奇偶列存储冗余位.每个列中的L位都存储在相同的存储节点中。我们将磁盘作为一个列或一个存储节点,并将数组中的一个条目作为一个比特。当一个节点发生故障时,数组代码的相应列被认为是一个擦除。如果k+r列中的任何k都可以重构所有k信息列(即:它可以容忍任何r失败的列),这样的编码称作MDS码。二进制MDS阵列码的示例包括双容错代码(即r=2)如x-code[2],RDP码[3]和EVENODD码[4],以及三重容错码(即r=3)如:STAR码[5],广义RDP码[6],和TIP码[7]。
当一个节点在分布式存储***中出现故障时,应该通过从d健康节点中下载片段来修复故障节点,其中k≤d≤k+r-1。最小化修复带宽,定义为在修复过程中下载的比特数量,对于加快修复操作和最小化漏洞的窗口是至关重要的,特别是在分布式存储中,网络传输是瓶颈。修复问题是由Dimakis等人[8]基于信息流动图的概念制定的。最小存储冗余的最小修复带宽在[8]中进行了陈述,也称为最小存储再生(MSR)点,是由下式表示:虽然最小的修复带宽是可以达到的,在一个足够大的有限域上,但是如何构造二进制的MDS阵列码来实现最小的修复带宽仍然是一个挑战。
一种传统的方法是从任何k幸存的列中下载所有的位元来重新生成故障列中的位元。因此,用于修复故障列的比特数的总数是故障位的k倍。在二进制MDS阵列代码中,有研究减少了单个失败列的修复带宽。一些方法最小化了RDP代码[10]的磁盘读取和d=k+1的x-code[11],但是它们的修复带宽是次优的,比d=k+1时(1)的最小值大50%。MDR码[12],[13]和ButterFly码[14],[15]是二进制的MDS阵列编码,达到最优修复;然而,它们只提供了双重容错(即r=2)。如何用最优修复和更好的容错(即r>2)来构造二进制MDS阵列码仍然是一个开放的问题。这样的结构将有利于在故障易发的分布式存储***中维护数据可用性。
基于专利【二进制阵列码编码框架】,本文通过选取合适的校验矩阵,提出了一种新的设计二进制MDS阵列编码的方法,该方法可以容忍r>3个磁盘故障。我们表明,当d足够大时,对于任何单个信息列故障的二进制阵列码的最小修复带宽(1)都可以渐进地实现。通过利用循环结构的商环和选择精心设计的校验矩阵,我们的结构最小化了修复带宽,这样在修复操作中访问的位元就会尽可能多地交叉。
大多数现有的二进制MDS阵列编码[2]、[3]、[5]、[6]的修复带宽是次优的。一些构造[12-15]的二进制MDS阵列码,具有最佳的修复带宽,只关注双容错(即r=2)。据我们所知,所提出的代码是第一个二进制的MDS阵列码,它具有渐进的最优修复带宽,并且具有大于2的容错能力。所提议的代码和现有的二进制MDS阵列码之间的关键区别如下。首先,与现有的结构,如[2]、[3]、[5]、[6],在校验列中(除了第一个校验列)的冗余位是通过对数组中特定的多边形线的对应来生成的。其次,在提议的代码中,数组的行数是k的指数函数。这两个属性对于减少修复带宽是非常重要的。双容错最优修复结构的[12-15]与建议结构之间的区别在于,采用了循环结构的商环,而[12-15]则没有采用。通过利用商环,我们可以选择设计良好的校验矩阵,并以更大的容错度来达到最优的修复带宽。
之前的研究[16]、[17]也利用类似的技术来减少再生码的计算复杂度。在本研究中,我们证明当τ(稍后介绍的一个参数)足够大且满足某些条件时,我们可以找到一些二元MDS阵列编码的结构,从而可以得到最优的修复。[16]、[17]的环可以看作是所提出的环在τ=1时的特殊情况。此外,[16]、[17]和这篇论文的主要结果是不同的。结果表明,在商环内,功能修复再生码的存储与修复带宽之间的基本权衡曲线在商环中也可以实现,而现有的再生码的产品矩阵结构仍在商环下工作,计算复杂度较低。在本文中,我们使用一个更一般的环来构造一个新的二进制MDS阵列码,通过选择设计良好的生成器矩阵或奇偶矩阵来构造一个渐进的最优修复带宽。虽然提出了二进制数组MDS码和结构的高数据率MSR编码[9],[18]-[24]都是基于矩阵构建生成器或校验矩阵,提出的编码在二进制中构建,校验矩阵在具有循环结构的环中选择。
发明内容
本发明的目的在于提供一种修复二进制阵列码校验矩阵的构造方法,旨在解决上述的技术问题。
本发明是这样实现的,一种修复二进制阵列码校验矩阵的构造方法,所述构造方法包括:在构造码为c2(k,r,d,p),构造矩阵
其中k≥2,r≥4是一个偶数,d=k+r/2和τ=(r/2)d-2;在行向量[s1(x),s2(x),…,sk+r(x)]中选择任何k个多项式作为数据多项式,其他的r个多项式作为编码多项式;假设给出γ=4的构造,c2(k,4,d,p)包含k+4个多项式s1(x),s2(x),…,sk+4(x),其中s3(x),s4(x),…,sk+2(x)是数据多项式,s1(x),s2(x),sk+3(x),sk+4(x)是编码多项式,校验矩阵H(k+4)×4,
本发明的进一步技术方案是:计算编码多项式需使线性方程组的编码系数是构造矩阵的子矩阵。
本发明的进一步技术方案是:在校验矩阵的构造中的编码多项式都在环Cpτ中。
本发明的另一目的在于提供一种修复二进制阵列码校验矩阵的修复方法,所述修复二进制阵列码校验矩阵的修复方法包括:对于0≤l≤pτ-1,i=1,2,…,r,第i列的第l个校验集合分别定义,其中,Pl,1={sl,1,sl,2,...,sl,k+r/2},i=1;
其中2≤i≤r/2;
其中r/2+1≤i≤r-1;
假设第f个信息列失效,如果因比特sl,f用第一个校验向量修复;有因t=1,2,…,r/2-1,其lmod(r/2)f∈{t(r/2)f-1,t(r/2)f-1+1,...,(t+1)(r/2)f-1-1},比特sl,f用第r/2-t+1个校验向量修复;如果因lmod(r/2)n+1-f∈{0,1,2,...,(r/2)n-f-1},比特sl,f用第r个校验向量修复,有因t=1,2,…,r/2-1,其lmod(r/2)n+1-f∈{t(r/2)n-f,t(r/2)n-f+1,...,(t+1)(r/2)n-f-1},比特Sl,f用第r/2+t个校验向量修复。
本发明的进一步技术方案是:对
lmod(r/2)f∈{0,1,2,...,(r/2)f-1-1}且l<(p-1)(r/2)d-2,比特sl,1可被校验集合Pl,1修复;需要列i下载(p-1)ηk-3个比特,其中i∈{1,2,...,f-1,f+1,...,d+1}且
lmod(r/2)f∈{0,1,2,...,(r/2)f-1-1}。
本发明的进一步技术方案是:
本发明的有益效果是:再生码的产品矩阵结构仍在商环下工作,计算复杂度较低,以更大的容错度来达到最有的修复带宽。
具体实施方式
考虑一个具有k≥2个信息列和r≥3个校验列的二进制MDS阵列码。该阵列码的每一列都存储L=(p-1)τ位元,其中p是一个素数,这样2是有限域中的一个原始元素,τ的值稍后将指定。考虑一个大小为k(p-1)τ的文件,用信息比特 来表示。这些信息比特可以用来生成r(p-1)τ个校验比特位元s0,i,s1,i,…,s(p-1)τ-1,i(i=1,2,...,k)存储在第i个信息列中,(p-1)τ个位元s0,j,s1,j,…,s(p-1)τ-1,j(j=k+1,k+2,…,k+r)存储在第j-k个校验列中。
对i=1,2,...,k和μ=0,1,...,τ-1,我们定义下面的简短表示法:
我们把s(p-1)τ+μ,i称为sμ,i,sτ+μ,i,…,s(p-2)τ+μ,i的额外比特。例如,当p=3,k=4,和τ=4,时,s0+μ,i,S4+μ,i的额外比特是s8+μ,i=s0+μ,i+s4+μ,i。对于j=k+1,k+2,…,k+r,τ个额外比特s(p-1)τ,j,s(p-1)τ+1,j,...,spτ-1,j将加在第j-k个校验列后。后面将会很明显,第j-k个校验列的冗余位元s(p-1)τ+μ,j将满足(2)对j=k+1,k+2,…,k+r和μ=0,1,...,τ-1。
对于l=1,2,...,k+r,我们用一个在环上的多项式sl(x)来表示第l列中的比特s0,l,s1,l,…,s(p-1)τ-1,l和τ个额外比特s(p-1)τ,l,s(p-1)τ+1,l,...,spτ-1,l。例如
sl(x)=s0,l+s1,lx+s2,lx2+...+spτ-1,lxpτ-1 (3)
把对应于第i(i=1,2,...,k)个信息列的多项式si(x)叫做信息多项式;把对应于第j-k个校验列的多项式sj(x)(j=k+1,k+2,…,k+r)叫做编码多项式。我们把k个信息多项式和r个编码多项式写成如下的行向量
[S1(x),S2(x),…,sk+r(x)] (4)
[S1(x),s2(x),…,sk+r(x)]=[s1(x),s2(x),…,sk(x)]·Gk×(k+r) (5)
其中k×(k+r)的生成矩阵G由k×k的单位矩阵I和k×r的编码矩阵P构成,计算如下:Gk×(k+r)=[Ik×k Pk×r] (6)
所提出的编码可以描述为一个校验矩阵H(k+r)×r。考虑(4),我们有[s1(x),s2(x),…,sk(x)]·H(k+r)×r=0 (7)
用Rpτ表示环Rpτ中的一个元素a(x)可以表示成a(x)=apτ-1xpτ-1+…+a1x+a0,其系数是有限域中的元素。加法是通常的逐项加法,乘法是用通过模xpτ+1来执行的。在Rpτ中,乘以x可以被解释为循环移位.这对于减少一个列故障的修复带宽是至关重要的。请注意,我们不需要将额外的位存储在磁盘上,它们只用于标记的方便性。
考虑由Rpτ中具有因子xτ+1的多项式构成的Rpτ的子环Cpτ,Cpτ={a(x)(1+xτ)mod(1+x(pτ)|a(x)∈Rpτ} (8)
事实上,Cpτ是理想的,因为我们可以验证h(x)=x(p-1)τ+x(p-2)τ+…+xτ+1和Cpτ中任意多项式的乘积为0。h(x)被成为Cpτ中的校验多项式。Cpτ中的乘法性质是e(x)=1+h(x)=x(p-1)τ+x(p-2)τ+…+xτ=(1+xτ)(x(p-2)τ+…+x3τ+xτ),
定理1当且仅当多项式的系数si(x)在Cpτ中时才满足(2)。
证明:假设多项式的系数si(x)满足(2),通过调整si(x)得,
这种化简是为了证明对于i=0,1,…,p-2和j=0,1,…,τ-1,xiτ+j+x(p-1)τ+j是xτ+1的倍数。这是由于xiτ+j+x(p-1)τ)+j=xiτ+j(1+x(p-i-1)τ)=xiτ+j(1+xτ)(1+xτ+x2τ+…+x(p-i-2)τ)。
这便证明了多项式系数si(x)是在环Cpτ中的。
si(x)=a(x)(1+xτ)mod(1+xτp)
=(a0+a(p-1)τ)+(a1+a(p-1)τ+1)x+…+(apτ-1+a(p-1)τ-1)xpτ-1。
因此,对于μ=0,1,…,τ-1,可以得到sμ,i=αμ+α(p-1)τ+μ,sτ+μ,i=ατ+μ+αμ,…,s(p-1)τ+μ,i=α(p-1)τ+μ+α(p-2)τ+μ,我们可以验证sμ,i+sτ+μ,i+…+s(p-2)τ+μ,i=(αμ+α(p-1)τ+μ)+(ατ+μ+αμ)+…+(α(p-2)τ+μ+α(p-3)τ+μ)
=α(p-1)τ+μ+α(p-2)τ+μ=s(p-1)τ+μ,i,
因此,多项式的系数si(x)满足(2)。
由于存在两个多项式1和xτ+x3τ+…+x(p-2)τ,因此等式
(1+xτ)(xτ+x3τ+…+x(p-2)τ)+1·h(x)=1
映射θ是一个环同态和双射,因为它有一个逆函数φ(a(x),b(x)),其中
φ(α(x),b(x))=[a(x)h(x)+b(x)e(x)]modxpτ+1。
下面将说明φ○θ是环Rpτ的恒等映射。
对于任意多项式f(x)∈Rpτ,存在两个多项式g1(x),g2(x)∈Rpτ,因此f(x)=g1(x)(1+xτ)+f(x)mod(1+xτ),f(x)=g2(x)h(x)+f(x)modh(x).那么我们可以有
φ(θ(f(x)))=[h(x)(f(x)mod(1+xτ))+e(x)(f(x)modh(x))]modxpτ+1
=[h(x)(f(x)-g1(x)(1+xτ))+(1+h(x))(f(x)-g2(x)h(x))]modxpτ+1
=[h(x)(f(x)-h(x)g1(x)(1+xτ))+f(x)+f(x)h(x)-e(x)g2(x)h(x)]modxpτ+1
=[f(x)-h(x)g1(x)(1+xτ)-e(x)g2(x)h(x)]modxpτ+1
=[f(x)-(1+xτ)(xτ+x3τ+…+x(p-2)τ)g2(x)h(x)]modxpτ+1
=f(x).
这样φ○θ便是环Rpτ的恒等映射,并且引理证明完毕。
1+x8mod(1+x2+x4+x6+x8)=x2+x4+x6。
如果我们将函数φ应用在x2+x4+x6上,我们可以恢复;
φ(0,x2+x4+x6)=(x2+x4+x6)(x2+x4+x6+x8)=1+x8mod(1+x10)。
在引入所提出的阵列码的显式构造结构前,我们需要对e(x)-逆进行定义。
引理4:让b(1≤b≤pτ)为一个整数,b和p的最大公约数为gcd(b,p)=1,gcd(b,τ)=α。1+xb在环Rpτ中的e(x)-逆是
证明:在环Rpτ中,我们可以验证
它被简化是为了证明上面的方程等于e(x),例如,
接下来对于i≠j∈{1,2,…,p-1},我们想要证明τib/a≠jτb/a modpτ.
假设iτb/amodpτ=jτb/a modpτ,这样便存在一个整数l便得τib/a=lpτ+jτb/a.
上面的式子可以进一步被化简为
(i-j)b/α=lp.
因为gcd(b,p)=1,gcd(b/a,p)=1,因此我们有p|(i-j)。然而由于1≤j≤i≤p-1,这是不可能的。同样,
我们证明当l≤i≤p-1时iτb/a modpτ≠0.
因此,我们可以得到(τb/a,2τb/a,…,(p-1)τb/a)三(τ,2τ,…,(p-1)τ)modpτ.所以(11)成立。
通过引理1,对于i=1,2,…k,我们有si(x)∈Cpτ。用f(x)表示生成矩阵或校验矩阵中的任何一项。如果便可以用(f(x)e(x)mod(1+xpτ))∈Cpτ来替代f(x)而不会改变结果。这是由于1≤i≤k时,si(x)e(x)=si(x)mod(1+xpτ)。因此,在用(f(x)e(x)mod(1+xpτ))∈Cpτ替代了生成矩阵或校验矩阵中的所有f(x)后,我们有了等效的生成矩阵或校验矩阵,这样(4)中的编码多项式可以通过(5)或(7)在环Cpτ上计算得到.
编码过程可以用如下多项式操作来描述.给定k(p-1)τ个信息位,通过(3),为每(p-1)τ个信息位附加τ个额外位,并形成属于Cpτ的k个数据多项式.在通过选择某种特定的编码矩阵或检查矩阵得到向量(4)后,将多项式中下标在0到(p-1)τ-1的系数存储起来,并将其余下标的系数丢掉。提出的阵列码可以被看作Cpτ上的一种***线性码。
本文的目的是寻找合适的检验矩阵H(k+r)×r,使之对应的编码是MDS编码,而单次故障的修复带宽是渐近最优的。在本节的其余部分,我们将给出二进制MDS阵列码的显式结构方法,该构造是由一个校验矩阵构成的。提出的二进制阵列码的修复带宽对于任何单个信息列或校验列故障都是渐进最优的。
A校验矩阵构造方法
构造码用c2(k,r,d,p)来表示,构造矩阵如(13),其中k≥2,r≥4是一个偶数,d=k+r/2和τ=(r/2)d-2。我们可以在(4)中选择任何k个多项式作为数据多项式,而其他的r个多项式作为编码多项式。为了计算编码多项式,我们应该解决一个线性方程组,它的编码系数是(13)的子矩阵。下面,我们首先给出r=4的构造。以后将会给出r大于4的情况.c2(k,4,d,p)包含k+4个多项式s1(x),s2(x),…,sk+4(x),其中s3(x),s4(x),…,sk+2(x)是数据多项式,s1(x),s2(x),sk+3(x),sk+4(x)是编码多项式,校验矩阵H(k+4)×4如下:
根据H(k+4)×4的前两列,我们有:s1(x)+s2(x)+…+sk+1(x)+sk+2(x)=0,xs1(x)+x2s2(x)+…+x2ksk+1(x)+sk+2(x)=0.
首先,我们可以计算出数据多项式的周期移位后的总和,形式如下:p1(x)=s3(x)+s4(x)+…+sk+1(x)+sk+2(x),然后,我们可以把xs2(x)向左循环移位来解出s2(x),其中很明显,p1(x),p2(x)∈Cpτ,因此xp1(x)+p2(x)∈Cpτ.通过引理4,1+xb是可以e(x)-逆的,然后可以由(1+xb)g(x)=f(x)计算出g(x):
其中f(x)∈Cpτ,gcd(b,τ)=α。由于f(x)∈Cpτ,(15)中的多项式g(x)也在环Cpτ中,因此编码多项式s1(x),s2(x)都在环Cpτ中。另外两个编码多项式sk+3(x),sk+4(x)同样也在环Cpτ中,并可以通过类似的方法计算出来。
尤其是,对于j=0,1,…,α-1,可以计算出系数gj:
表1例2的前4列.列3和4是信息列,列1和2是校验列
因此对于(1+xb)g(x)=f(x),一旦计算出g0,g1,…,g(α-1),g(x)的其他系数可以通过(17)迭代地计算出来,其计算式:gbl+j=fbl+j+gb(l-1)+j (17)。其中l=1,2,…,pτ/α-1,j=0,1,…,α-1。可以表明,对于l1≠l2∈{1,2,…,pr/α-1},bl1+j modpτ≠bl2+j modpτ。因此,我们可以通过(17)来计算g(x)的所有其他系数.从(1+xb)g(x)=f(x)计算g(x)总共有:个异或操作.因此我们可以通过上面的方法计算xs2(x)(然后是s2(x))。一旦s2(x)计算出,便可以通过s2(x)+p1(x)计算出s1(x)。另外两个编码多项式sk+3(x),sk+4(x)同样可以通过类似的方法得到。
例1:考虑一个k=2,p=5,r=4。因此d=2+2=4,τ=4的构造,每列存储(p-1)(r/2)(d-2)=16个比特位,共有k+r=6列。可以得到6个多项式假设s3(x),s4(x)是两个数据多项式.首先,我们可以计算出p1(x),p2(x):
p1(x)=s3(x)+s4(x),p2(x)=x4s3(x)+s4(x).
例1的前4列的计算详细情况见表1,其中加粗的是附加位.由于空间有限,最后两列未列出。
r>4的编码过程如下所述.由于我们将证明c2(k,r,d,p)满足了定理6中的MDS条件(在第3部分),编码过程可以作为一个特殊的解码过程来实现.共有k+r个多项式s1(x),s2(x),…,sk+r(x),假设k个数据多项式是sr/2+1(x),sr/2+2(x),…,sk+r/2(x)。首先用f(x)e(x)mod(1+xpτ)替代H(k+r)×r中的所有元素f(x),然后根据在环Cpτ上修改后的校验矩阵解出r个多项式对应的r个线性方程.由于满足MDS特性,我们总可以计算出r个编码多项式。
4高效修复单列故障
在本节中,我们将展示如何在本文提出的二进制阵列码中恢复存储在任何列中的位,并具有渐进最优的修复带宽。
假设列f被擦除,其中1≤f≤r+k。我们希望通过从d=k+r/2个存活列获取位元来恢复位元s0,f,s1,f,...,s(p-1)τ-1,f。我们将列i中的pτ位看作s0,i,s1,i,…,spτ-1,i,就像第一个结构中的修复一样。
在检查矩阵的第一列(13)中,我们有sl,1+sl,2+,...,+sl,k+r/2=0,其中l=0,1,2,...,pτ-1。对于i=2,…,r/2,从校验矩阵(13)中的第i列,我们有其中l=0,1,2,...,pτ-1。注意,这一节和整个论文的所有索引都采用了模p。对于f≤k+r/2,位元sl,f的恢复可以通过获取k+r/2-1个位元
Sl,1,Sl,2,S2,l,...,Sl,f+1,...,Sl,k+r/2 (27)或获取k+r/2-1个位元,
其中i∈{2,3,...,r/2}。为了方便地描述修复算法,我们定义了如下的奇偶校验集。
定义3:对于0≤l≤pτ-1,i=1,2,…,r,第i列的第l个校验集合分别定义如下:
Pl,1={sl,1,sl,2,...,sl,k+r/2},i=1;
其中2≤i≤r/2;
其中r/2+1≤i≤r-1;
Pl,1={sl,1,sl,2,...,sl,k+r/2},
其中2≤j≤r/2,
其中r/2+1≤i≤r-1,
从定义3中,奇偶校验集揭示了由检查矩阵(13)列i所确定的位元之间的关系。当我们说一个位元被一个校验向量修复时,它意味着我们访问奇偶校验位中除了擦除的位的所有位元,这是由检查矩阵(13)的列向量决定的。
算法2中规定了修复算法.让我们考虑一下表1中给出的示例,以详细说明修复算法。在这个例子中,k=2,d=4,r=4。假设第一个列被擦除,即f=1。在算法2中的步骤3和步骤4中,我们可以通过第一个检查向量来修复位元s0,1,s2,1,s4,1,s6,1,s8,1,s10,1,s12,1,s14,1,即,
s0,1=(s18,3+s19,3+s0,3+s1,4)+s0,3+s0,4
s2,1=(s0,3+s1,3+s2,3+s3,4)+s2,3+s2,4
s4,1=(s2,3+s3,3+s4,3+s5,4)+s4,3+s4,4
s6,1=(s4,3+s5,3+s6,3+s7,4)+s6,3+s6,4
s8,1=(s6,3+s7,3+s8,3+s9,4)+s8,3+s8,4
s10,1=(s8,3+s9,3+s10,3+s11,4)+s10,3+s10,4
s12,1=(s10,3+s11,3+s12,3+s13,4)+s12,3+s12,4
s6,1=(s12,3+s13,3+s14,3+s15,4)+s14,3+s14,4
其他位元s1,1,s3,1,s5,1,s7,1,s9,1,s11,1,s13,1,s15,1由第二个校验向量修复,即,
s1,1=(s18,3+s19,3+s0,3+s1,4)+s18,3+s2,4
s3,1=(s0,3+s1,3+s2,3+s3,4)+s0,3+s4,4
s5,1=(s2,3+s3,3+s4,3+s5,4)+s2,3+s6,4
s7,1=(s4,3+s5,3+s6,3+s7,4)+s4,3+s8,4
s9,1=(s6,3+s7,3+s8,3+s9,4)+s6,3+s10,4
s11,1=(s8,3+s9,3+s10,3+s11,4)+s8,3+s12,4
s13,1=(s10,3+s11,3+s12,3+s13,4)+s10,3+s14,4
s15,1=(s12,3+s13,3+s14,3+s15,4)+s12,3+s16,4
因为我们可以用s6,3+s2,3+s10,3+s14,3和s4,4+s0,4+s8,4+s12,4来分别计算s18,3、s16,4,所以我们不需要下载这两个比特。因此,我们只需要从三列中下载总共24个比特来修复第一列。也就是说,第一列的修复带宽是最优的。在下一个定理中,我们证明了一个故障列的修复带宽是一般参数的渐近最优。
定理12当f≤n/2时,由算法2知,第f列的修复带宽是
证明:对lmod(r/2)f∈{0,1,2,...,(r/2)f-1-1}且l<(p-1)(r/2)d-2,比特sl,1可被校验集合Pl,1修复。因此,我们需要列i下载(p-1)ηk-3个比特sl,f,其中i∈{1,2,...,f-1,f+1,...,d+1}且lmod(r/2)f∈{0,1,2,...,(r/2)f-1-1}。
对于t=1,2,…,r/2-1,lmod(r/2)f∈{t(r/2)f-1,t(r/2)f-1+1,...,(t+1)(r/2)f-1-1},比特sl,f可被第r/2-t+1个校验向量修复。所以对于列i∈{1,2,…,f-1},及对于lmod(r/2)f在集合{0,1,…,(r/2)f-1-(r/2-t)(r/2)i-1-1,(r/2)f-(r/2-t)(r/2)i-1,(r/2)f-(r/2-t)(r/2)i-1+1,…,(r/2)f-1}
中的所有值,需要(p-1)(r/2)d-3个比特sl,i.而对于列i∈{f+1,f+2,…,d+1},及对于lmod(r/2)f在集合{0,1,2,...,(r/2)f-1-1}中的所有值,需要(p-1)(r/2)d-3个比特sl,i。
注意,对于lmod(r/2)f∈{0,1,2,...,(r/2)f-1-1}和l<(p-1)(r/2)d-2的比特Sl,i在修复中已经被第一个校验向量下载了,因此只需要从列i(i=1,2,…,f-1)下载(r/2-1)(p-1)(r/2)d+i-f-3个比特位。为了修复列f,从d=k+r/2个列中下载的比特总数是
注意,当根据(13)中的编码矩阵和算法2,列n+1-f的修复带宽与列f相同。当f=1时,修复带宽是d(p-1)(r/2)d-3,它达到了(1)的最佳值。即使在最坏的情况下,修复带宽是它严格小于(1)中的值(d+1)/d倍。因此,任何一个信息故障的修复带宽都可以渐近达到(1)中的最优修复,只要d足够大。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (5)
其中k≥2,r≥4是一个偶数,d=k+r/2和τ=(r/2)d-2;在行向量[s1(x),s2(x),…,sk+r(x)]中选择任何k个多项式作为数据多项式,其他的r个多项式作为编码多项式;通过线性方程组计算编码多项式获取的编码系数为构造矩阵的子矩阵;假设给出r=4的构造,c2(k,4,d,p)包含k+4个多项式s1(x),s2(x),…,sk+4(x),其中s3(x),s4(x),…,sk+2(x)是数据多项式,s1(x),s2(x),sk+3(x),sk+4(x)是编码多项式,根据构造码、编码多项式及构造矩阵关系,得到校验矩阵H(k+4)×4,
2.根据权利要求1所述的修复二进制阵列码校验矩阵的构造方法,其特征在于,计算编码多项式需使线性方程组的编码系数是构造矩阵的子矩阵。
3.根据权利要求2所述的修复二进制阵列码校验矩阵的构造方法,其特征在于,在校验矩阵的构造中的编码多项式都在环Cpτ中。
4.一种修复二进制阵列码校验矩阵的修复方法,其特征在于,所述修复二进制阵列码校验矩阵的修复方法包括:对于0≤l≤pτ-1,i=1,2,…,r,第i列的第l个校验集合分别定义,其中,Pl,1={sl,1,sl,2,...,sl,k+r/2},i=1;
其中2≤i≤r/2;
其中r/2+1≤i≤r-1;
5.根据权利要求4所述的修复二进制阵列码校验矩阵的修复方法,其特征在于,对lmod(r/2)f∈{0,1,2,...,(r/2)f-1-1}且l<(p-1)(r/2)d-2,比特sl,1可被校验集合Pl,1修复;需要列i下载(p-1)ηk-3个比特,其中i∈{1,2,...,f-1,f+1,...,d+1}且lmod(r/2)f∈{0,1,2,...,(r/2)f-1-1}。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810905963.4A CN109257049B (zh) | 2018-08-09 | 2018-08-09 | 一种修复二进制阵列码校验矩阵的构造方法及修复方法 |
PCT/CN2018/110471 WO2020029423A1 (zh) | 2018-08-09 | 2018-10-16 | 一种修复二进制阵列码校验矩阵的构造方法及修复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810905963.4A CN109257049B (zh) | 2018-08-09 | 2018-08-09 | 一种修复二进制阵列码校验矩阵的构造方法及修复方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109257049A CN109257049A (zh) | 2019-01-22 |
CN109257049B true CN109257049B (zh) | 2020-11-06 |
Family
ID=65050130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810905963.4A Active CN109257049B (zh) | 2018-08-09 | 2018-08-09 | 一种修复二进制阵列码校验矩阵的构造方法及修复方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109257049B (zh) |
WO (1) | WO2020029423A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750382B (zh) * | 2019-09-18 | 2020-10-30 | 华中科技大学 | 用于提高数据修复性能的最小存储再生码编码方法及*** |
CN111585581B (zh) * | 2020-05-14 | 2023-04-07 | 成都信息工程大学 | 一种基于二元域运算且支持任意码距的编码方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015180038A1 (zh) * | 2014-05-27 | 2015-12-03 | 北京大学深圳研究生院 | 部分复制码的构建方法、装置及其数据修复的方法 |
CN105915317A (zh) * | 2016-06-15 | 2016-08-31 | 浙江大学 | 可Zigzag解码的前向纠删码编码系数矩阵构造方法 |
CN106788454A (zh) * | 2016-11-29 | 2017-05-31 | 陕西尚品信息科技有限公司 | 一种局部性不相等码的构造方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7219289B2 (en) * | 2005-03-15 | 2007-05-15 | Tandberg Data Corporation | Multiply redundant raid system and XOR-efficient method and apparatus for implementing the same |
US9113470B2 (en) * | 2011-08-26 | 2015-08-18 | Texas Instruments Incorporated | Systems and methods for network coding using maximum distance separable (MDS) linear network codes |
US9112916B2 (en) * | 2011-08-26 | 2015-08-18 | Texas Instruments Incorporated | Systems and methods for construction of and network coding using near-maximum distance separable (MDS) linear network codes |
CN108352845B (zh) * | 2015-11-10 | 2021-02-23 | 华为技术有限公司 | 用于对存储数据进行编码的方法以及装置 |
CN107086870B (zh) * | 2017-03-16 | 2019-10-22 | 东莞理工学院 | 修复多节点失效的mds阵列码编码以及解码方法 |
CN107395207B (zh) * | 2017-07-12 | 2019-11-22 | 紫晟科技(深圳)有限公司 | 多容错性的mds阵列码编码以及修复方法 |
-
2018
- 2018-08-09 CN CN201810905963.4A patent/CN109257049B/zh active Active
- 2018-10-16 WO PCT/CN2018/110471 patent/WO2020029423A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015180038A1 (zh) * | 2014-05-27 | 2015-12-03 | 北京大学深圳研究生院 | 部分复制码的构建方法、装置及其数据修复的方法 |
CN105915317A (zh) * | 2016-06-15 | 2016-08-31 | 浙江大学 | 可Zigzag解码的前向纠删码编码系数矩阵构造方法 |
CN106788454A (zh) * | 2016-11-29 | 2017-05-31 | 陕西尚品信息科技有限公司 | 一种局部性不相等码的构造方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2020029423A1 (zh) | 2020-02-13 |
CN109257049A (zh) | 2019-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2467942B1 (en) | Methods employing fec codes with permanent inactivation of symbols for encoding and decoding processes | |
Gad et al. | Repair-optimal MDS array codes over GF (2) | |
Lin et al. | A reduced latency list decoding algorithm for polar codes | |
Sung et al. | A ZigZag-decodable code with the MDS property for distributed storage systems | |
WO2018171111A1 (zh) | 多容错性的mds阵列码编码以及修复方法 | |
CN105356968B (zh) | 基于循环置换矩阵的网络编码的方法及*** | |
JP2011514743A (ja) | 受信したシンボル列におけるフェーズドバーストエラー、消失、シンボルエラー、及び、ビットエラーを検出及び訂正するための方法及びシステム | |
US20070162821A1 (en) | Parity check matrix, method of generating parity check matrix, encoding method and error correction apparatus | |
Hou et al. | A new design of binary MDS array codes with asymptotically weak-optimal repair | |
US9548761B2 (en) | Coding and decoding of error correcting codes | |
CN109257049B (zh) | 一种修复二进制阵列码校验矩阵的构造方法及修复方法 | |
WO2020029418A1 (zh) | 一种修复二进制码生成矩阵构造方法及修复方法 | |
CN113258936B (zh) | 一种基于循环移位的双重编码的构造方法 | |
Yang et al. | Hierarchical coding to enable scalability and flexibility in heterogeneous cloud storage | |
JP7429223B2 (ja) | ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体 | |
WO2020029417A1 (zh) | 一种二进制mds阵列编码的编码框架方法 | |
US20170288697A1 (en) | Ldpc shuffle decoder with initialization circuit comprising ordered set memory | |
Chen et al. | A new Zigzag MDS code with optimal encoding and efficient decoding | |
CN108199720B (zh) | 一种减小存储开销和提高修复效率的节点修复方法及*** | |
CN108628697B (zh) | 一种基于二进制的节点修复方法及*** | |
CN112534724B (zh) | 用于解码极化码和乘积码的解码器和方法 | |
Lan et al. | Efficient Repair Algorithm for Information Column of EVENODD (p, 4) Codes | |
CN105955839B (zh) | 一种基于有限域二进制加法移位的再生码容错方法 | |
Puchinger et al. | Decoding high-order interleaved rank-metric codes | |
US20140344652A1 (en) | Method for generating a maximized linear correcting code, method and device for decoding such a code |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |