CN116974810A - 扩展evenodd码的编码方法、解码方法及电子装置、存储介质 - Google Patents
扩展evenodd码的编码方法、解码方法及电子装置、存储介质 Download PDFInfo
- Publication number
- CN116974810A CN116974810A CN202310812051.3A CN202310812051A CN116974810A CN 116974810 A CN116974810 A CN 116974810A CN 202310812051 A CN202310812051 A CN 202310812051A CN 116974810 A CN116974810 A CN 116974810A
- Authority
- CN
- China
- Prior art keywords
- column
- information
- check
- columns
- extended
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000003860 storage Methods 0.000 title claims abstract description 23
- 239000011159 matrix material Substances 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 9
- 238000009826 distribution Methods 0.000 claims description 9
- 238000000354 decomposition reaction Methods 0.000 claims description 7
- 238000011084 recovery Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 9
- YBJHBAHKTGYVGT-ZKWXMUAHSA-N (+)-Biotin Chemical compound N1C(=O)N[C@@H]2[C@H](CCCCC(=O)O)SC[C@@H]21 YBJHBAHKTGYVGT-ZKWXMUAHSA-N 0.000 description 6
- 238000007792 addition Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- FEPMHVLSLDOMQC-UHFFFAOYSA-N virginiamycin-S1 Natural products CC1OC(=O)C(C=2C=CC=CC=2)NC(=O)C2CC(=O)CCN2C(=O)C(CC=2C=CC=CC=2)N(C)C(=O)C2CCCN2C(=O)C(CC)NC(=O)C1NC(=O)C1=NC=CC=C1O FEPMHVLSLDOMQC-UHFFFAOYSA-N 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 101100457838 Caenorhabditis elegans mod-1 gene Proteins 0.000 description 3
- 101150110972 ME1 gene Proteins 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 229920002430 Fibre-reinforced plastic Polymers 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000011151 fibre-reinforced plastic Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000000465 moulding Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/373—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明提供了扩展EVENODD码的编码方法、解码方法及电子装置、存储介质。通过获取待构造的扩展EVENODD码的信息比特数据,并确定扩展EVENODD码的校验列;执行编码得到所述扩展EVENODD码的校验列;水平校验列为所有信息磁盘中相同位置的信息比特数据的异或和;第一斜校验列为以第一列信息列中与斜校验比特数据同一行的信息比特为起点的斜率为1的所有信息比特数据的异或和,并将斜校验位与该列的一个公因子相异或;第二斜校验列为以第一列信息列中与斜校验比特数据同一行的信息比特为起点的斜率为2的所有信息比特数据的异或和,并将斜校验位与该列的一个公因子相异或。相比于现有技术,扩展EVENODD码的结构降低了编码复杂度,可以有效的恢复数据。
Description
技术领域
本实施例涉及数据存储技术领域,具体而言,涉及一种扩展EVENODD码的编码方法、解码方法及电子装置、存储介质。
背景技术
随着计算机技术和物联网技术的发展,在这些技术与本实施例的生活交汇融合带来便利的同时,也产生了大量的数据,随着数据量的不断增加,存储系统出错的可能性越来越大,因此,人们对存储系统的可靠性的要求越来越高,最常见的容错技术包括多副本技术和纠删码技术。多副本技术将所有数据信息拷贝多份完全一样的副本分别存放在多个不同的节点上,当某个节点数据失效或损坏时可以从其他节点恢复数据以保证数据的可用性,但存储开销大,并且副本数越多,存储开销越大,成本高。在保障数据的可靠性的前提下节省存储开销,通常选择3副本技术。纠删码技术保证数据可靠性的前提下,在一定程度上解决了多副本技术带来的空间和资源消耗问题,通过调节信息数据块和冗余数据块的数量可以使存储系统在保证容错能力的前提下节省存储开销。
阵列码是一个被广泛用于提高存储系统中数据可靠性的m×n的阵列,独立冗余磁盘阵列(RAID)是一种典型的可以提高数据可靠性的阵列码。其中RAID-6是一种具有两个校验磁盘并且可以容忍任意两个磁盘故障的阵列码。二进制最大距离可分离码(MDS)是一种特殊的阵列码,它的编码/解码只涉及循环移位和异或(XOR)操作,具有操作简单,可靠性高的特点。
通常,现有技术中衡量一个阵列码的好坏是通过权衡其容错能力(最多可以容忍的失效磁盘数)、编码复杂度(编码得到校验磁盘数据时用到的异或个数)、解码复杂度(解码失效磁盘数据时用到的异或个数)等。典型的二进制MDS阵列码如EVENODD码、RDP码,它们可以容忍两列磁盘失效。其中,EVENODD码具有渐进最优的编、解码复杂度,但它要求每个磁盘存储奇素数减一个比特数据,存储性能低。
发明内容
有鉴于此,本实施例的目的在于改善EVENODD码参数范围受限、存储参数更加灵活的问题,将扩展EVENODD编解码方法的纠删码技术应用在分布式存储系统中,使得存储系统的性能得到提高。
本实施例的第一方面提供了一种扩展EVENODD码的编码方法,所述方法包括:
获取待构造的扩展EVENODD码的信息比特数据;
执行编码得到所述扩展EVENODD码的校验列;所述校验列包括水平校验列、第一斜校验列和第二斜校验列;
其中,水平校验列为所有信息磁盘中相同位置的信息比特数据的异或和;第一斜校验列为以第一列信息列中与斜校验比特数据同一行的信息比特为起点的斜率为1的所有信息比特数据的异或和,并将斜校验位与该列的一个公因子相异或;第二斜校验列为以第一列信息列中与斜校验比特数据同一行的信息比特为起点的斜率为2的所有信息比特数据的异或和,并将斜校验位与该列的一个公因子相异或。
优选地,所述获取待构造的扩展EVENODD码的信息比特数据,包括:
将待构造的扩展EVENODD码表示成一个(p-1)τ×(k+3)阵列,其中p是一个奇素数,k表示信息列的列数,τ表示虚拟行行数,k,p满足k≤pτ;
在(p-1)τ×(k+3)阵列中,用ai,j表示第i行第j列的数据块,其中ai,j(0≤i≤(p-1)τ-1,0≤j≤k-1)表示信息位,ai,j(0≤i≤(p-1)τ-1,j=k,k+1,k+2)表示校验位,定义τ行虚拟行,即a(p-1)τ+μ,j=0,(0≤μ≤τ-1,0≤j≤k+2)。
此外,本实施例的第二方面提供了一种扩展EVENODD码的解码方法,所述方法包括:
获取待解码的扩展EVENODD码;
确定待解码的扩展EVENODD码的幸存磁盘分布;所述幸存磁盘分布包括幸存的信息列和校验列;所述校验列包括水平校验列、第一斜校验列和第二斜校验列;
根据幸存的信息列和校验列恢复出失效的信息列或检验列,从而获得原始的扩展EVENODD码。
优选地,所述根据幸存的信息列和校验列恢复出失效的信息列或检验列,包括:
当信息列全部幸存而校验列全部失效时,通过幸存的信息列重新进行编码,恢复出失效的校验列;
或者,当一列信息列和两列斜校验列失效时,通过幸存的信息列和水平校验列恢复出失效的信息列;通过全部信息列恢复出失效的校验列;
或者,当一列信息列和两列校验列失效且失效校验列包含水平校验列时,通过幸存的信息列和斜校验列恢复失效的信息列;通过全部信息列编码恢复出失效的校验列;
或者,当两列信息列和一列校验列失效时,通过幸存的信息列和校验列恢复失效的信息列;通过全部信息列编码恢复出失效水平校验列;
或者,三列信息列失效时,通过矩阵分解恢复失效的信息列。
此外,本实施例的第三方面提供了一种电子装置,所述电子装置包括:一个或多个处理器,存储器,所述存储器用于存储一个或多个计算机程序;所述计算机程序被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上第一方面所述的扩展EVENODD码的编码方法或第二方面所述的扩展EVENODD码的解码方法。
此外,本实施例的第四方面提供了一种存储介质,所述存储介质存储有计算机程序;所述程序由处理器加载并执行以实现如上第一方面所述的扩展EVENODD码的编码方法或第二方面所述的扩展EVENODD码的解码方法。
本实施例的方案中,通过获取待构造的扩展EVENODD码的信息比特数据;执行编码得到所述扩展EVENODD码的校验列;所述校验列包括水平校验列、第一斜校验列和第二斜校验列;其中,水平校验列为所有信息磁盘中相同位置的信息比特数据的异或和;第一斜校验列为以第一列信息列中与斜校验比特数据同一行的信息比特为起点的斜率为1的所有信息比特数据的异或和,并将斜校验位与该列的一个公因子相异或;第二斜校验列为以第一列信息列中与斜校验比特数据同一行的信息比特为起点的斜率为2的所有信息比特数据的异或和,并将斜校验位与该列的一个公因子相异或。相比于现有技术,扩展EVENODD码的结构降低了τ>1时的编码复杂度,针对列失效的情况下有效的恢复数据。
附图说明
为了更清楚地说明本实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本实施例的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本实施例公开的扩展EVENODD码的编码方法流程示意图;
图2是本实施例公开的扩展EVENODD码(p=3,k=5,r=3,τ=3)的实例中信息数据块和校验数据块在条带中的分布情况;
图3是本实施例公开的扩展EVENODD码的解码方法流程示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
需要说明的是:在本实施例中提及的“多个”是指两个或两个以上。
以下对本申请实施例的技术方案的实现细节进行详细阐述:
实例中所述的信息列、信息多项式也可称为信息磁盘;同理,校验列、校验多项式、校验磁盘释义相同;信息位、信息块、信息比特数据释义相同;校验位、校验块、校验比特数据释义也相同。
本实施例提供了一种扩展EVENODD码的几何形式的编码方法。在本实施例中,用<a>b表示a mod b的值。
本实施例的第一方面提供了一种扩展EVENODD码的编码方法,如图1所示为本实施例公开的扩展EVENODD码的编码方法流程示意图。所述方法包括:
S101,获取待构造的扩展EVENODD码的信息比特数据;
S102,执行编码得到所述扩展EVENODD码的校验列;所述校验列包括水平校验列、第一斜校验列和第二斜校验列;
其中,水平校验列为所有信息磁盘中相同位置的信息比特数据的异或和;第一斜校验列为以第一列信息列中与斜校验比特数据同一行的信息比特为起点的斜率为1的所有信息比特数据的异或和,并将斜校验位与该列的一个公因子相异或;第二斜校验列为以第一列信息列中与斜校验比特数据同一行的信息比特为起点的斜率为2的所有信息比特数据的异或和,并将斜校验位与该列的一个公因子相异或。
具体地,本实施例,获取待构造的扩展EVENODD码并确定校验列的分布情况;水平校验列由所有信息列中相同位置的信息位的异或构成,其中信息列的个数为k。
其中,第一斜校验列由斜率为1的信息位和该列的某个公因子的异或和构成,第一斜校验列的公因子有τ个,第0个公因子加在第0,τ,…,(p-2)τ位校验位上,类似的,第i(0≤i≤τ-1)个公因子异或在第i,τ+i,…,(p-2)τ+i位校验位上;第二斜校验列由斜率为2的信息位和该列的某个公因子的异或和构成,第二斜校验列的公因子有τ个,与第一斜校验列类似,第i(0≤i≤τ-1)个公因子异或在第i,τ+i,…,(p-2)τ+i位校验位上。
待构造的扩展EVENODD码可以表示成一个(p-1)τ×(k+3)阵列,其中p是一个奇素数,k表示信息列的列数,k,p满足k≤pτ,在(p-1)τ×(k+3)阵列中,用ai,j表示第i行第j列的数据块,其中ai,j(0≤i≤(p-1)τ-1,0≤j≤k-1)表示信息位,ai,j(0≤i≤(p-1)τ-1,j=k,k+1,k+2)表示校验位,定义τ行虚拟行,即a(p-1)τ+μ,j=0,(0≤μ≤τ-1,0≤j≤k+2)。
三个校验列bi,k,bi,k+1和bi,k+2由以下编码公式得到:
水平校验列:
第一斜校验列:
其中,
第二斜校验列:
其中,
若是需要提高其容错能力,可以继续添加斜校验列,编码方式与上述斜校验列构造类似,但斜率不再是1或2,第l列斜校验列公式如下:
其中为该列的τ个公因子,几何意义为以a(p-1)τ+μ,0,0≤μ≤τ-1为起点的斜率为l的直线上,所有信息位的异或和。
为了更形象的解释本例,图2给出了扩展EVENODD码(p=3,k=5,r=3,τ=3)的实例中信息数据块和校验数据块在条带中的分布情况。如图2所示,水平校验列的校验位存储所有信息磁盘上的相同位置信息位的异或和,第一斜校验列上的斜校验位存储斜率为1的信息位的异或,其中第0,3位校验位即a0,6,a3,6异或上该列的第1个公因子S0,6=a5,1+a4,2+a3,3+a2,4,第1,4位校验位即a1,6,a4,6异或上该列的第2个公因子S1,6=a5,2+a4,3+a3,4,第2,5位校验位即a2,6,a5,6异或上该列的第3个公因子S2,6=a5,3+a4,4,第二斜校验列上的斜校验位存储斜率为2的信息位的异或,其中第0,3位校验位即a0,7,a3,7异或上该列的第1个公因子S0,7=a4,1+a2,2+a0,3,第1,4位校验位即a1,7,a4,7异或上该列的第2个公因子S1,7=a5,1+a3,2+a1,3,第2,5位校验位即a2,7,a5,7异或上该列的第3个公因子S2,7=a4,2+a2,3+a0,4。
为了描述更加简便清晰,本实施例还提供了一种代数形式的编码方法。
在环上用多项式表示每一列数据,Mpτ(x)=1+xτ+…+x(p-1)τ,本实施例将(p-1)τ×(k+r)阵列表示成k+r个多项式,其中前k个多项式为信息多项式,后r个多项式为校验多项式,ai,j表示第j列的第i个比特数据,其中0≤i≤(p-1)τ-1,0≤j≤k+r-1,则每一个多项式表示为:
信息多项式和校验多项式之间的关系如下:
Hr×(k+r)·[a0(x) a1(x) … ak+r-1(x)]T=0T mod Mpτ(x),
其中0T是一个长度为r的0向量,Hr×(k+r)为校验矩阵:
无论采用哪一种编码方式,其编码复杂度是一致的,本实施例采用几何形式的编码方式计算扩展EVENODD码的编码复杂度,计算水平校验多项式时需要(k-1)(p-1)τ个XORs,计算第一斜校验列时产生的异或个数为 即计算斜率为2的第二斜校验列时产生的异或个数为因此,扩展EVENODD码的编码复杂度为而EVENODD码的编码复杂度为rkp-p-k-2r+3。
归一化编码复杂度是编码复杂度与原始信息位个数的比值,本实施例所述的扩展EVENODD码有(p-1)τ×k个信息数据块,故扩展EVENODD码的归一化编码复杂度为而EVENODD码的归一化编码复杂度为扩展EVENODD码的解码复杂度范围时解码复杂度范围为至当τ=1时,EVENODD码就是本实施例所述的扩展EVENODD码,τ=1时,EVENODD码和扩展EVENODD码的编码复杂度一致,当τ≥2时,扩展EVENODD码的编码复杂度比EVENODD码更低。
表1 EVENODD码与扩展EVENODD码的编码复杂度比较
表1清晰明了的显示了,r=3时扩展EVENODD码的归一化编码复杂度不大于EVENODD码的归一化编码复杂度,当且仅当τ=1时,二者归一化编码复杂度相等。相比之下,本实施例降低了EVENODD码的编码复杂度,使得编码开销更小,速度更快。
在一些实施例中,进一步给出了扩展EVENODD码的MDS属性的条件,并给出该条件下能纠正任意r列失效情况的解码方法。
在给出扩展EVENODD码具有的MDS特性的条件前,本实施例先介绍几个相关的环,用Rpτ表示商环另一个商环其中Mpτ(x)=1+xτ+…+x(p-1)τ,上的多项式系数均在上且最高次项次数不超过(p-1)τ,是的子环;Cpτ是Rpτ的子环,且Cpτ上的多项式都是1+xτ的倍式,即Cpτ={a(x)(1+xτ)mod 1+xpτ|a(x)∈Rpτ}。
以下引理已有学者证明,故在此不再给出证明,直接使用。
引理1:环Cpτ和环同构,且Cpτ到的映射定义为θ(f(x))=f(x)mod Mpτ(x),到Cpτ的映射定义为
根据引理1以及Cpτ上的多项式c(x)的系数关系 可以得到下述推论以便于到Cpτ的映射。
推论1:设 计算giτ+j=fiτ+j+g(p-1)τ+j,0≤i≤p-2,0≤μ≤τ-1,所得g(x)=φ(f(x))。
推论1将多项式从映射到Cpτ最多需(2p-3)τ个XORs。
根据环Cpτ和环的同构关系,本实施例在定理1给出扩展EVENODD码具有MDS特性的条件。
定理1:在参数为(p,k,r,τ)的扩展EVENODD码中,若τ=ups,其中u≥1,gcd(u,p)=1并且s≥0,那么扩展EVENODD码具有MDS特性“当且仅当”k≤ps+1。
证明:证明扩展EVENODD码具有MDS特性,本实施例需要证明k≤ps+1时,扩展EVENODD码可以任意k个磁盘恢复任意r=n-k个失效磁盘;反之,k>ps+1时则不能恢复。
首先考虑k≤ps+1的情况,Hr×(k+r)中,当r=2,3时,其行列式为xi(0≤i≤k-1)或xi+xj(0≤i<j≤k-1),扩展EVENODD码具有MDS特性的充要条件是任意r阶行列式不为0。
由于xi的常数系数不为0,故对任意0≤i≤k-1,有gcd(Mpτ(x),xi)=1,因此,只需要找到使得gcd(Mpτ(x),xi+xj)=1成立的条件即可证明扩展EVENODD码的任意r阶行列式不为0。当正整数τ=ups,u≥1,gcd(u,p)=1,且s≥0时,扩展EVENODD码具有MDS特性。
要证明扩展EVENODD码具有MDS特性,需要证明(1+xi)g(x)=f(x)mod Mpτ(x)所得有唯一解,其中 由于与Cpτ同构,也可证明(1+xi)g(x)=f(x)mod 1+xpτ所得g(x)∈Cpτ有唯一解,其中f(x)∈Cpτ,i∈{1,2,…,k-1}。
显然,当g(x)=0时f(x)=0成立,当f(x)=0时,本实施例定义到的映射si:si(g(x))=(1+xi)g(x)mod(1+xpτ),g(x)∈Cpτ,很明显这是一种线性变换。由于(1+xi)g(x)=f(x)=0有唯一解g(x)=0,故线性变换si的核的维数是0。根据秩定理,si的维数与Cpτ相同,因此si是一个双射变换,即si(g(x))=c(x),故(1+xi)g(x)=f(x)mod(1+xpτ),f(x)∈Cpτ时,所得g(x)∈Cpτ有唯一解,又Cpτ与同构,故(1+xi)g(x)=f(x)mod(1+xpτ),时,所得有唯一解。
假设存在非零多项式g(x)∈Cpτ使得(1+xi)g(x)=0mod 1+xpτ,会产生以下矛盾。假设g0=1,本实施例有
g((l-1)i)modpτ+g(li)modpτ=0,0≤l≤pτ-1
由g0=1可得g(li)modpτ=1,令c=gcd(i,pτ),1≤i≤ps+1-1,有c=gcd(i,pτ)=gcd(i,ups+1)=gcd(i,ups)=gcd(i,τ),那么:
特别地,c整除τ,有:
那么这与相矛盾,故g(x)∈Cpτ使得(1+xi)g(x)=0mod 1+xpτ成立的唯一解为g(x)=0,由同构关系,当且仅当g(x)=0使得(1+xi)g(x)=0mod Mpτ(x)。
接下来考虑k>ps+1的情况,本实施例将给出当f(x)=0,i={1,2,…,k-1}时(1+xi)g(x)=f(x)mod 1+xpτ有唯一非零解g(x)∈Cpτ。
令m=pτ=ups+1,那么:
且g(x)=g0(x)+g1(x)mod(1+xm),本实施例首先证明g(x)∈Cpτ:
本实施例注意到 又整除由于gcd(u,p)=1,根据欧几里得算法有又 本实施例有 因此 也被整除,即g(x)∈Cpτ,显然g0(x)+g1(x)≠0。
根据g0(x)和g1(x)的定义,本实施例有
第二个等式来源于类似的,本实施例可以得到故, 并且g(x)≠0是的解。由于Cpτ与同构,当f(x)=0,i={1,2,…,k-1}时(1+xi)g(x)=f(x)mod Mpτ(x)有唯一非零解至此,定理1得证。
当r=2,3时,对于所有的p,满足上述条件的扩展EVENODD码都具有MDS特性。
本实施例第二方面还提供了扩展EVENODD码的解码方法,接下来本实施例以r=3为例介绍本实施例的解码方法。
如图3所示为本实施例的扩展EVENODD码的解码方法的流程图,所述方法包括:
S301,获取待解码的扩展EVENODD码;
S302,确定待解码的扩展EVENODD码的幸存磁盘分布;所述幸存磁盘分布包括幸存的信息列和校验列;所述校验列包括水平校验列、第一斜校验列和第二斜校验列;
S303,根据幸存的信息列和校验列恢复出失效的信息列或检验列,从而获得原始的扩展EVENODD码。
本实施例的实施例中获取的待解码扩展EVENODD码包含三个校验列,即水平校验列、第一斜校验列和第二斜校验列。其中,扩展EVENODD码具有MDS特性,即:n个磁盘中有k个信息磁盘和r=n-k个校验磁盘,当有m(m≤n)个磁盘失效时,可以从剩下的n-m个磁盘中任意k个磁盘恢复全部磁盘信息。
k个信息节点和r个校验节点可以看作是整个系统,每个节点可以是一个磁盘,将一个磁盘看作是一列信息列或校验列。可以参看图2:D0-D4是5个信息磁盘,P5-P7代表3个校验磁盘。
其中,待解码扩展EVENODD码包含k个信息列和三个校验列,待解码扩展EVENODD码中失效信息列或失效校验列的恢复是通过失效信息位的恢复来完成的,通常本实施例用解码复杂度来衡量解码的性能,需要注意的是,本实施例将解码效率定义为:修复一个失效信息块所需要进行的异或运算数。根据信息列和校验列的失效排列组合,包括以下多种幸存情况的实施例。本实施例将以代数形式的编码方式进行解码方法的介绍,其中每个磁盘数据可以表示为多项式aj(x)=a0,j+a1,jx+…+a(p-1)τ-1,jx(p-1)τ-1,0≤j≤k+2,前k个多项式为信息多项式,后3个多项式为校验多项式,且Mpτ(x)=1+xτ+…+x(p-1)τ。
当仅一列信息列失效时,可以通过水平校验列和其他幸存的信息列恢复失效信息列,恢复方法如下,其中m表示失效信息列的位置;
当仅一列校验列失效时,可以通过全部信息列重新编码恢复失效校验列,恢复方法如下,其中m表示失效校验列所在位置;
当两列校验列失效时,可通过全部信息列重新编码恢复失效的校验列,恢复方法如下,其中m,n(0≤m<n≤k-1)表示失效校验列所在位置;
当一列信息列和一列斜校验列失效时,可以通过水平校验列和幸存信息列恢复失效的信息列,再通过全部信息列编码得到失效的斜校验列,恢复方法如下,其中m,n分别表示失效信息列和校验列所在位置;
当一列信息列和一列水平校验列失效时,可以通过任意斜校验列恢复失效的信息列,再通过全部信息编码恢复水平校验列,其中m,n分别表示失效信息列和水平校验列所在位置,f∈{k+1,k+2}表示解码选择使用的幸存的校验磁盘位置;
当两列信息列失效时,可以通过解下列方程组恢复失效的信息列,其中m,n(0≤m<n≤k-1)表示两列失效信息列的位置,通常选用一列水平校验列和一列斜校验列进行恢复,f∈{k+1,k+2}表示解码时选择使用的幸存的斜校验磁盘位置:
当有三个磁盘失效时,是本实施例介绍的重点,本实施例将以图文结合的方式详细介绍有三列磁盘失效的各个情况的恢复方法。
优选地,所述根据幸存的信息列和校验列恢复出失效的信息列或检验列,包括:
当信息列全部幸存而校验列全部失效时,通过幸存的信息列重新进行编码,恢复出失效的校验列。
具体地,当信息列全部幸存而校验列全部失效时,通过幸存的所有信息列进行再次编码即可恢复出失效的三个检验列,其恢复方法可表示如下:
在一些实施例中,所述根据幸存的信息列和校验列恢复出失效的信息列或检验列,包括:当一列信息列和两列斜校验列失效时,通过幸存的信息列和水平校验列恢复出失效的信息列;通过全部信息列恢复出失效的校验列;
具体地,通过幸存的水平校验列和其他信息列来求解失效的信息列,进而再次编码恢复出失效校验列。其中m,n,h分别表示失效的信息列位置、第一斜校验列位置和第二斜校验列的位置,恢复信息列方式如下:
随后编码恢复两个斜校验列:
在一些实施例中,所述根据幸存的信息列和校验列恢复出失效的信息列或检验列,包括:当一列信息列和两列校验列失效且失效校验列包含水平校验列时,通过幸存的信息列和斜校验列恢复失效的信息列;通过全部信息列编码恢复出失效的校验列。
具体地,当一列信息列、水平校验列和任意斜校验列失效时,可以通过幸存的校验列恢复信息列,再通过编码恢复两个失效的校验列,其中m,n,h,f分别表示失效的信息列的位置、水平校验列的位置、斜校验列位置和幸存的斜校验列位置,恢复失效的信息列方式如下:
随后通过所有信息列恢复水平校验列和斜校验列:
在一些实施例中,所述根据幸存的信息列和校验列恢复出失效的信息列或检验列,包括:当两列信息列和一列校验列失效时,通过幸存的信息列和校验列恢复失效的信息列;通过全部信息列编码恢复出失效水平校验列。
当两列信息列和一列校验列失效时,通过幸存的另外两个校验列恢复失效的信息列,再通过全部信息列的编码恢复失效的校验列,其中,m,n(0≤m<n≤k-1)表示失效的信息列的位置,f,g(k≤f<g≤k+2)表示幸存的校验列位置,恢复信息列的方式如下:
恢复失效信息列后,用全部信息列编码可以恢复失效的校验列。
在一些实施例中,所述根据幸存的信息列和校验列恢复出失效的信息列或检验列,包括:当三列信息列失效时,通过矩阵分解恢复失效的信息列。
当三列信息列失效时,可以通过解下列方程组恢复失效的信息列,其中m,n,h(0≤m<n<h≤k-1)表示失效的信息列的位置:
将其改写为矩阵形式即为:
其中,
在该实施例中,未知多项式的系数矩阵是一个范德蒙矩阵,对该矩阵进行LU分解可以获得计算的简便,最终可以简化为以下问题:
在环上,当l是一个整数或τ的一个因子,1+xl和Mpτ(x)没有公因子,给定一个多项式在上求解g(x):
(1+xl)g(x)=f(x)mod Mpτ(x)
求解上述除法有两种方式,1)在环Cpτ上求解上述除法,将所得结果转换到环上即可;2)直接在上求解上述除法。
在环Cpτ上求解上述方程时,若f(x)∈Cpτ,则直接使用引理2进行求解,反之,先将f(x)通过推论1映射到Cpτ上,再使用引理2进行求解。
引理2:给定整数l,1≤l<pτ,l和p的最大公因子是1,即gcd(l,p)=1,且gcd(l,τ)=a,f(x)∈Cpτ,本实施例可以首先计算出g(x)的a个系数:
其中0≤j≤a-1,g(x)的其他系数可表示为:
当τ=pv,v是一个正整数,令l=ups,gcd(u,p)=1,1≤s≤v时,可以计算g(x)的以下系数:
其他系数可表示为:
当τ=pv,l=ups,gcd(u,p)=1,1≤s≤v时,可以首先计算g(x)的以下系数:
其他系数可迭代求得:
其中1≤b≤pv-s+1-1,且下标需模m=pτ=pv+1.
所得的g(x)∈Cpτ,将所得结果模Mpτ(x)即可得到上的结果,所得结果模Mpτ(x)需(p-1)τ个XORs。
将f(x)通过推论1映射到Cpτ最多需要(2p-3)τ个XORs,随后使用引理2求解g(x),并将所得结果模Mpτ(x),gcd(l,p)=1时所需的异或个数为其中a=gcd(l,τ),l=ups时所需的异或个数为
在特定情况下,可直接根据Cpτ上的f(x)求得F2[x]/Mpτ(x)上的g(x)。
引理3:当l=λτ,b是一个正整数时,求解(1+xl)g)x)=f'(x)mod Mpτ(x),其中f'(x)=φ(f(x)),那么系数如下:
g(p-λ-1)τ+l+μ=0
g(p-λ-1)τ+l-il+μ=f'(p-λ-1)τ+l-(i-1)l+μ+g(p-λ-1)τ+l-(i-1)l+μ,
其中1≤i≤p-1,0≤μ≤τ-1,
证明:首先计算f'(x)=φ(f(x))∈Cpτ,再计算g'(x)=φ(g(x))∈Cpτ,最后计算得到g(x)=θ(g'(x))。由于l是τ的倍数,故g'(x)满足如下等式:
g'(p-λ-1)τ+l+μ=g'μ+g'τ+μ+...+g'(p-2)τ+μ,
其中μ=0,1,...,τ-1,根据(1+xl)g'(x)=f'(x)有如下关系:
f'iτ+μ=g'iτ+μ+g'iτ-l+μ
其中1≤i≤p-1,0≤μ≤τ-1,由g'(x)=φ(g(x))可得:
giτ+μ=g'iτ+μ+g'(p-λ-1)τ+l+μ
其中1≤i≤p-2,0≤μ≤τ-1,根据上述关系可得:
g(p-λ-1)τ+l-il+μ+g(p-λ-1)τ+l-(i-1)l+μ
=g'(p-λ-1)τ+l-il+μ+g'(p-λ-1)τ+l+μ+
g'(p-λ-1)τ+l-(i-1)l+μ+g'(p-λ-1)τ+l+μ
=g'(p-λ-1)τ+l-il+μ+g'(p-λ-1)τ+l-(i-1)l+μ
=f'(p-λ-1)τ+l-(i-1)l+μ
至此,引理3得证。将f(x)通过推论1映射到Cpτ得到f'(x)最多需要(2p-3)τ个XORs,随后使用引理3求解g(x)所需的异或个数为(3p-4)τ。
直接在环上求解上述除法,可通过引理4进行求解。
引理4:给定整数l使得bl=τ-l,f(x)是环上的一个具有偶数项的多项式,当b=0,b=1,b≥2时本实施例可以得到
当b=0,即l=τ,本实施例可以先计算g(x)的τ个系数:
g(p-3)τ+j=f(p-2)τ+j,0≤j≤τ-1
其中一些系数为:
g(p-3-2m)τ+j=g(p-1-2m)τ+j+f(p-1-2m)τ+j+f(p-2-2m)τ+j
其中m=1,2,…,j=0,1,…,τ-1,当时:
gj=g2τ+j+f2τ+j+fτ+j,0≤j≤τ-1
g(p-2)τ+j=gj+fj,0≤j≤τ-1
其他系数为:
g(p-2-2m)τ+j=g(p-2m)τ+j+f(p-2m)τ+j+f(p-2m-1)τ+j
其中0≤j≤τ-1。
当b=1,即τ=2l,本实施例可以先计算g(x)的l个系数:
其中τ个系数为:
另外l个系数为:
g(p-2)τ+j=g(p-2)τ+l+j+f(p-2)τ+l+j,0≤j≤l-1
当m=1,2,..,p-3时,系数如下:
gmτ+j=fmτ+j+gmτ+j-l+g(p-1)τ-l+j,0≤j≤l-1
gmτ+j+l=gmτ+j+
上述两个式子交替计算即可得到其余未知系数。
其中m=1,2,…,j=0,1,…,τ-1,当时:
gj=g2τ+j+f2τ+j+fτ+j,0≤j≤τ-1
g(p-2)τ+j=gj+fj,0≤j≤τ-1
其他系数为:
g(p-2-2m)τ+j=g(p-2m)τ+j+f(p-2m)τ+j+f(p-2m-1)τ+j
其中0≤j≤τ-1。
当b≥2,即bl=τ-l,本实施例可以先计算g(x)的l个系数:
前τ个系数为:
其他系数为:
gmτ+j=fmτ+j+gmτ+j-l+g(p-1)τ-l+j
其中m=1,2,…,p-2,j=0,1,…,l-1.
gmτ+j=gmτ+j-l+fmτ+j
其中m=1,2,…,p-3,l≤j≤τ-1,或m=p-2,l≤j≤τ-l-1.
g(p-3-2m)τ+j=g(p-1-2m)τ+j+f(p-1-2m)τ+j+f(p-2-2m)τ+j
上述两个式子交替进行可以得到一些系数。
引理4是通过待求解方程中多项式系数与已知多项式系数的关系,将某些特定的系数相加可以得到某个系数,随后迭代解出其他系数,接下来,本实施例给出其证明。
证明:当b=0,即l=τ时,本实施例先证g(p-3)τ=f(p-2)τ,根据(1+xl)g(x)=f(x)modMpτ(x),由系数关系有:
当j=(p-2)τ时,有g(p-2)τ+g(p-3)τ+g(p-2)τ=f(p-2)τ,即g(p-3)τ=f(p-2)τ,若本实施例将j=(p-3)τ和j=(p-4)τ对应的系数相加,可得g(p-5)τ,类似的,由b=0时所得的系数关系可得g(p-7)τ,…,g0,一旦得到g0即可得到g(p-2)τ,类似可得g(p-4)τ,g(p-6)τ,…,g1。那么用同样的方法j=0,1,…,τ-1时也成立,各系数关系公式交替使用可得到b=0时g(x)的全部系数。
当b=1,即τ=2l,本实施例先证根据(1+xl)g(x)=f(x)modMpτ(x),由系数关系有:
根据上述关系,将j=0,τ,…,(p-2)τ;l,τ+l,…,(p-2)τ+l时左右两式相加有:
其中最后一个等式来源于τ=2l,本实施例可得到g0和g(p-2)τ,一旦得到g0便可得到gl,交替使用b=1时的系数关系公式可以得到其他一部分系数,类似的,j=0,1,…,τ-1时也成立,各系数关系公式交替使用可得到b=1时g(x)的全部系数。
当b≥2,即τ=(b+1)l,本实施例先证根据(1+xl)g(x)=f(x)modMpτ(x),由系数关系有:
根据上述关系,将j=0,τ,…,(p-2)τ;l,τ+l,…,(p-2)τ+l;bl,τ+bl,…,(p-2)τ+bl时左右两式相加有:
其中最后一个等式来源于bl=τ-l,交替使用b≥2时的系数关系可得到g0,gl,…,gbl,以及其他一部分系数,类似的,j=0,1,…,l-1时也成立,各系数关系公式交替使用可得到b≥2时g(x)的全部系数。
引理4中,b=0时,求解g(x)需要(2p-5)τ个XORs,b=1时需要个XORs,b≥2时需要2pτ+pl-2τ-4l个XORs。
通过蒙德矩阵LU分解方法恢复失效的信息列过程如下:
根据由编码公式有:
[ak(x) ak+1(x) … ak+r-1(x)]=[a0(x) a1(x) … ak-1(x)]·Vk×r
Vk×r是一个k×r阶范德蒙德矩阵:
Vr×r(a)表示的r×r阶范德蒙德矩阵如下:
其中a=(a1,a2,…,ar),a1,a2,…,ar是区间[1,k-1]上互不相等的整数。
令 恢复r列失效的信息列可以通过解下列方程组恢复:
uVr×r(a)=vmod Mpτ(x)
其中Vr×r(a)可以作如下分解:
上三角矩阵表示如下:
下三角矩阵表示如下:
其中λ=1,2,…,r-1.
在r=3的扩展EVENODD码三列信息列失效的实施列中,可以将下列原始矩阵方程进行分解,原始矩阵方程如下:
将系数矩阵分解如下:
对方程应用引理2或引理3或引理4进行求解即可恢复原始信息列。
为使该方法更加一般化,若扩展EVENODD码的实施例中有r个信息列失效,假设丢失的信息列分别是u1(x),u2(x),…,ur(x),各斜率下幸存多项式的典型值为v1(x),v29x),…,vr(x),例如在r=3的扩展EVENODD码丢失3列信息列的实施例中,其典型值为v1(x)=a'k(x),v2(x)=a'k+1(x),v3(x)=a'k+2(x)。令u=(u1(x),u2(x),…,ur(x)),v=(v1(x),v2(x),…,vr(x)),恢复失效信息列即可简化为求解下列方程组:
求解上述方程算法如下:
输入:正整数r,素数p,整数a1,a2,…,ar,且 其中Mpτ(x)=1+xτ+…+x(p-1)τ.
输出:且满足uVr×r(a)=v mod(1+xτ+…+x(p-1)τ),其中a=(a1,a2,…,ar)。
要求:对所有1≤i1≤i2≤r,与Mpτ(x)在上无公因子。
1:赋值u←v
2:for i from 1to r-1do
3:forj from r-i+1to r do
4:uj(x)←uj(x)+uj-1(x)xi+j-r
5:for i from r-1downto 1do
6:通过引理2或引理3或引理4求解中的g(x)
7:ur(x)←g(x)
8:for j from r-1down to r-i+1do
9:通过引理2或引理3或引理4求解 中的g(x)
10:uj(x)←g(x)
11:ur-i(x)←ur-i(x)+ur-i+1(x)
12:returnu=(u1(x),u2(x),…,ur(x))
上述算法步骤中,2-4需要r(r-1)/2次加法和乘法,其中每个加法需要(p-1)τ个XORs,且需将结果模Mpτ(x),需(p-1)τ个XORs,即此处每个加法需2pτ-2τ个XORs;5-11需要r(r-1)/2次加法和r(r-1)/2次因子为的除法,此处每个加法(p-1)τ个XORs;引理2中gcd(l,p)=1时,每个除法需个XORs,l=ups时每个除法需个XORs;引理3中每个除法3pτ-4τ个XORs;引理4中每个除法需要的异或个数如下,设l=ar-i+aj,b是一个整数,有τ=(b+1)l,当b=0时,需要(2p-5)τXORs,b=1时,需要个XORs,b>1时,需要2pτ+pl-2τ-4l个XORs。故,解码复杂度范围为至
接下来本实施例给出一个参数为(p=3,k=5,r=2,τ=3)的扩展EVENODD的实施例,其中信息多项式为a0(x),a1(x),a2(x),a3(x),a4(x),校验多项式为a5(x),a6(x),a7(x),M3·3(x)=1+x3+x6,a0(x)=1+x,a1(x)=x,a2(x)=x2+x5,a3(x)=x2+x3+x4,a4(x)=1+x4,a5(x)=x3+x5,a6(x)=x+x3,a7(x)=x3。
假设a0(x),a2(x),a3(x)被擦除,那么问题转化为求解下列方程组:
将上述进行LU分解:
右边两个矩阵仅涉及加法操作,较为简单,那么原式可化为:
解(1+x3)a'3(x)=x+x4,l=τ=3,且具有偶数项,令g(x)=a'3(x),f(x)=x+x4,可用引理4进行求解,根据引理4中g(p-3)τ+j=f(p-2)τ+j,0≤j≤τ-1,本实施例有gj=f3+j,0≤j≤2,可得:
g0=f3=0,g1=f4=1,g2=f5=0
引理4中还有g(p-3-2m)τ+j=g(p-1-2m)τ+j+f(p-1-2m)τ+j+f(p-2-2m)τ+j,其中m=1,2,…,j=0,1,…,τ-1;当时,有gj=g2τ+j+f2τ+j+fτ+j,0≤j≤τ-1;以及g(p-2-2m)τ+j=g(p-2m)τ+j+f(p-2m)τ+j+f(p-2m-1)τ+j,其中0≤j≤τ-1由于本实施例中p=3,故不在该公式的计算范围内,跳过上述公式。根据引理4有:g(p-2)τ+j=gj+fj,0≤j≤τ-1,在本实施列中即为g3+j=gj+fj,j=0,1,2,可得
g3=g0+f0=0,g4=g1+f1=0,g5=g2+f2=0
即a'3(x)=g(x)=x.
解(1+x2)a'2(x)=1+a'3(x)=1+x,l=2,使用引理2进行求解,令g(x)=a'2(x),故令f(x)=(1+x)·(1+M3·3(x))=x3+x4+x6+x7,a=gcd(l,τ)=1,由引理2有
其中0≤j≤a-1,在此处即为
g(x)的其他系数为gbl+j=fbl+j+g(b-1)l+j,0≤j≤a-1,在此处为g2b=f2b+g2(b-1),1≤b≤8,可得:
g1=g2=g6=g7=g8=1
g3=g4=g5=0
那么a'2(x)=g(x)modM3.3(x)=1+x+x2+x6+x7+x8modM3·3(x)=x3+x4+x5.
原式可化简为求解(x2+x3)a3(x)=x同样是使用引理2,可得a3(x)=x2+x3+x4,解得其中一项后,可迭代解出a0(x)和a2(x),即:
a0(x)=1+x,a2(x)=x2+x5,a3(x)=x2+x3+x4
由于前文所属的基于范德蒙矩阵的LU分解使用不同的引理求解时,加法和乘法所需的异或个数不一致,其解码复杂度范围为至下面,本实施例给出r=2时,扩展EVENODD码和EVENODD码的归一化复杂度比较。
表2 r=2时扩展EVENODD码和EVENODD码的归一化复杂度比较
(上表中,b是满足bl=τ-l的整数,l表示2列失效列的位置距离。)
从表2可得,当r=2时,扩展EVENODD码的归一化复杂度与EVENODD码近似相等,τ=1时EVENODD码是扩展EVENODD码的一个特例。此外,τ越大,扩展EVENODD码的编码复杂度越低。由p和τ两个参数调节码字结构大小的扩展EVENODD码的存储灵活性比EVENODD码更好。
此外,本实施例的第三方面提供了一种电子装置,所述电子装置包括:一个或多个处理器,存储器,所述存储器用于存储一个或多个计算机程序;其特征在于,所述计算机程序被配置成由所述一个或多个处理器执行,所述程序包括用于执行如第一方面所述的扩展EVENODD码的编码方法或第二方面所述的扩展EVENODD码的解码方法。
此外,本实施例的第四方面提供了一种存储介质,所述存储介质存储有计算机程序;所述程序由处理器加载并执行以实现第一方面所述的扩展EVENODD码的编码方法或第二方面所述的扩展EVENODD码的解码方法。
本领域普通技术人员可以意识到,结合本实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本实施例的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
另外,在本实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网格设备等)执行本实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述的具体实施方式,对本实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本实施例的具体实施方式而已,并不用于限定本实施例的保护范围,凡在本实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本实施例的保护范围之内。
Claims (6)
1.一种扩展EVENODD码的编码方法,其特征在于,所述方法包括:
获取待构造的扩展EVENODD码的信息比特数据;
执行编码得到所述扩展EVENODD码的校验列;所述校验列包括水平校验列、第一斜校验列和第二斜校验列;
其中,水平校验列为所有信息磁盘中相同位置的信息比特数据的异或和;第一斜校验列为以第一列信息列中与斜校验比特数据同一行的信息比特为起点的斜率为1的所有信息比特数据的异或和,并将斜校验位与该列的一个公因子相异或;第二斜校验列为以第一列信息列中与斜校验比特数据同一行的信息比特为起点的斜率为2的所有信息比特数据的异或和,并将斜校验位与该列的一个公因子相异或。
2.根据权利要求1所述的扩展EVENODD码的编码方法,其特征在于,所述获取待构造的扩展EVENODD码的信息比特数据,包括:
将待构造的扩展EVENODD码表示成一个p-1τ×(k+3)阵列,其中p是一个奇素数,k表示信息列的列数,τ表示虚拟行行数,k,p满足k≤pτ;
在p-1τ×(k+3)阵列中,用ai,j表示第i行第j列的数据块,其中ai,j(0≤i≤p-1τ-1,0≤j≤k-1)表示信息位,ai,j(0≤i≤p-1τ-1,j=k,k+1,k+2)表示校验位,定义τ行虚拟行,即ap-1τ+μ,j=0,(0≤μ≤τ-1,0≤j≤k+2)。
3.一种扩展EVENODD码的解码方法,其特征在于,所述方法包括:
获取待解码的扩展EVENODD码;
确定待解码的扩展EVENODD码的幸存磁盘分布;所述幸存磁盘分布包括幸存的信息列和校验列;所述校验列包括水平校验列、第一斜校验列和第二斜校验列;
根据幸存的信息列和校验列恢复出失效的信息列或检验列,从而获得原始的扩展EVENODD码。
4.根据权利要求3所述的扩展EVENODD码的解码方法,其特征在于,所述根据幸存的信息列和校验列恢复出失效的信息列或检验列,包括:
当信息列全部幸存而校验列全部失效时,通过幸存的信息列重新进行编码,恢复出失效的校验列;
或者,当一列信息列和两列斜校验列失效时,通过幸存的信息列和水平校验列恢复出失效的信息列;通过全部信息列恢复出失效的校验列;
或者,当一列信息列和两列校验列失效且失效校验列包含水平校验列时,通过幸存的信息列和斜校验列恢复失效的信息列;通过全部信息列编码恢复出失效的校验列;
或者,当两列信息列和一列校验列失效时,通过幸存的信息列和校验列恢复失效的信息列;通过全部信息列编码恢复出失效水平校验列;
或者,三列信息列失效时,通过矩阵分解恢复失效的信息列。
5.一种电子装置,所述电子装置包括:一个或多个处理器,存储器,所述存储器用于存储一个或多个计算机程序;其特征在于,所述计算机程序被配置成由所述一个或多个处理器执行,所述程序包括用于执行如权利要求1-2任一项所述的扩展EVENODD码的编码方法或如权利要求3-4任一项所述的扩展EVENODD码的解码方法。
6.一种存储介质,所述存储介质存储有计算机程序;所述程序由处理器加载并执行以实现如权利要求1-2任一项所述的扩展EVENODD码的编码方法或如权利要求3-4任一项所述的扩展EVENODD码的解码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310812051.3A CN116974810A (zh) | 2023-07-04 | 2023-07-04 | 扩展evenodd码的编码方法、解码方法及电子装置、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310812051.3A CN116974810A (zh) | 2023-07-04 | 2023-07-04 | 扩展evenodd码的编码方法、解码方法及电子装置、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116974810A true CN116974810A (zh) | 2023-10-31 |
Family
ID=88484178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310812051.3A Pending CN116974810A (zh) | 2023-07-04 | 2023-07-04 | 扩展evenodd码的编码方法、解码方法及电子装置、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116974810A (zh) |
-
2023
- 2023-07-04 CN CN202310812051.3A patent/CN116974810A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10146618B2 (en) | Distributed data storage with reduced storage overhead using reduced-dependency erasure codes | |
Blaum et al. | Array codes | |
Blaum et al. | Partial-MDS codes and their application to RAID type of architectures | |
Greenan et al. | Flat XOR-based erasure codes in storage systems: Constructions, efficient recovery, and tradeoffs | |
Blaum et al. | MDS array codes with independent parity symbols | |
Gad et al. | Repair-optimal MDS array codes over GF (2) | |
US8522125B1 (en) | System and method for efficient horizontal maximum distance separable raid | |
EP1547252A2 (en) | Multi-dimensional data protection and mirroring method for micro level data | |
US20100299575A1 (en) | Method and system for detection and correction of phased-burst errors, erasures, symbol errors, and bit errors in a received symbol string | |
US20200081778A1 (en) | Distributed storage system, method and apparatus | |
Hou et al. | A new design of binary MDS array codes with asymptotically weak-optimal repair | |
Hou et al. | A new construction and an efficient decoding method for Rabin-like codes | |
Hou et al. | Triple-fault-tolerant binary MDS array codes with asymptotically optimal repair | |
Huang et al. | XI-Code: a family of practical lowest density MDS array codes of distance 4 | |
Hou et al. | New MDS array code correcting multiple disk failures | |
WO2019246527A1 (en) | Method and apparatus for improved data recovery in data storage systems | |
CN114465627B (zh) | 一种数据存储方法、系统、设备及存储介质 | |
Tang et al. | Fast en/decoding of Reed-Solomon codes for failure recovery | |
WO2020029418A1 (zh) | 一种修复二进制码生成矩阵构造方法及修复方法 | |
WO2017041232A1 (zh) | 一种二进制循环码的编解码框架 | |
Wu et al. | Generalized expanded-Blaum-Roth codes and their efficient encoding/decoding | |
Schindelhauer et al. | Maximum distance separable codes based on circulant cauchy matrices | |
Yang et al. | Hierarchical coding to enable scalability and flexibility in heterogeneous cloud storage | |
Chen et al. | A new Zigzag MDS code with optimal encoding and efficient decoding | |
CN116974810A (zh) | 扩展evenodd码的编码方法、解码方法及电子装置、存储介质 |
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 |