一种修复二进制阵列码校验矩阵的构造方法及修复方法与流程

文档序号:16691762发布日期:2019-01-22 18:56阅读:224来源:国知局

本发明属于数据处理技术改进领域,尤其涉及一种修复二进制阵列码校验矩阵的构造方法及修复方法。



背景技术:

现代分布式存储系统部署擦除代码来维护数据可用性,以防止存储节点的故障。二进制最大距离可分(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)点,是由下式表示:(1);虽然最小的修复带宽是可以达到的,在一个足够大的有限域上,但是如何构造二进制的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个多项式作为编码多项式;假设给出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,expτ-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×kpk×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,其系数是有限域中的元素。加法是通常的逐项加法,乘法是用通过模x+1来执行的。在rpτ中,乘以x可以被解释为循环移位.这对于减少一个列故障的修复带宽是至关重要的。请注意,我们不需要将额外的位存储在磁盘上,它们只用于标记的方便性。

考虑由rpτ中具有因子xτ+1的多项式构成的rpτ的子环cpτ,

cpτ={a(x)(1+xτ)mod(1+x(pτ)|a(x)∈rpτ}(8)

事实上,cpτ是理想的,因为c(x)s(x)∈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)τ+…+x+xτ),

由于e(x)b(x)=(1+h(x))b(x)=b(x)mod(1+x)(9)

定理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τ+x+…+x(p-i-2)τ)。这便证明了多项式系数si(x)是在环cpτ中的。

相反,假设在环cpτ中。根据(8),si(x)可以被写成

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τ+x+…+x(p-2)τ,因此等式

(1+xτ)(xτ+x+…+x(p-2)τ)+1·h(x)=1

在限域中是成立的,1+x可被分解成两个互素因子1+xτ和h(x)的乘积。在下一个引理中将说明环rpτ和是同构的。

引理2:环rpτ和是同构的。

证明我们需要在rpτ和中找到一种同构。甚至,我们可以通过定义θ(f(x)):=(f(x)modxτ+1,f(x)modh(x))设置一种同构:

映射θ是一个环同态和双射,因为它有一个逆函数φ(a(x),b(x)),其中

φ(a(x),b(x))=[a(x)h(x)+b(x)e(x)]modx+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))]modx+1

=[h(x)(f(x)-g1(x)(1+xτ))+(1+h(x))(f(x)-g2(x)h(x))]modx+1

=[h(x)(f(x)-h(x)g1(x)(1+xτ))+f(x)+f(x)h(x)-e(x)g2(x)h(x)]modx+1

=[f(x)-h(x)g1(x)(1+xτ)-e(x)g2(x)h(x)]modx+1

=[f(x)-(1+xτ)(xτ+x+…+x(p-2)τ)g2(x)h(x)]modx+1

=f(x).

这样便是环rpτ的恒等映射,并且引理证明完毕。

通过引理2,我们有环cpτ和是同构的,这将在下一个引理中给出。

引理3:环cpτ和是同构的。

例如,当p=5和τ=2时,c10和是同构的,并且1+x8在环c10中可以映射为:

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)。

当τ=1时,cp在[16][17]中进行了讨论,并应用到一种具有低复杂度的再生码中。注意,当且仅当2是中的素元及τ=pi(i为非负整数)时[25],cpτ和有限域同构。

在引入所提出的阵列码的显式构造结构前,我们需要对e(x)-逆进行定义。

定义1:如果多项式f(x)∈rpτ有一个多项式使得那么多项式便称为多项式f(x)的e(x)-逆.在下一个引理中我们将说明1+xb在环rpτ中是可以e(x)-逆的。

引理4:让b(1≤b≤pτ)为一个整数,b和p的最大公约数为gcd(b,p)=1,gcd(b,τ)=α。1+xb在环rpτ中的e(x)-逆是

证明:在环rpτ中,我们可以验证

它被简化是为了证明上面的方程等于e(x),例如,

考虑一种整数模pτ的环,将其表示为中,有一个集合

现在对于i∈{1,2,…,p-1},我们考虑因此,

接下来对于i≠j∈{1,2,…,p-1},我们想要证明

τib/a≠jτb/amodpτ.

假设iτb/amodpτ=jτb/amodpτ,这样便存在一个整数l使得τib/a=lpτ+jτb/a.

上面的式子可以进一步被化简为

(i-j)b/a=lp.

因为gcd(b,p)=1,gcd(b/a,p)=1,因此我们有p|(i-j)。然而由于1≤j≤i≤p-1,这是不可能的。同样,

我们证明当1≤i≤p-1时iτb/amodpτ≠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+x))∈cpτ来替代f(x)而不会改变结果。这是由于1≤i≤k时,si(x)e(x)=si(x)mod(1+x)。因此,在用(f(x)e(x)mod(1+x))∈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,

首先,我们可以计算出数据多项式的周期移位后的总和,形式如下:

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+1=fbl+j+gb(l-1)+j(17)。

其中l=1,2,…,pτ/α-1,j=0,1,…,α-1。可以表明,对于

l1≠l2∈{1,2,…,pτ/α-1},bl1+jmodpτ≠bl2+jmodpτ。因此,我们可以通过(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).

然后,可以由(16)、(17)计算xs2(x):再把xs2(x)左移一位得到s2(x)。s1(x)可以由s2(x)+p1(x)得到。列5、6可以用同样的方式计算。

例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+x)替代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足够大。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1