CN114625571A - 一种用于数据恢复的三冗余mds阵列码编译方法 - Google Patents
一种用于数据恢复的三冗余mds阵列码编译方法 Download PDFInfo
- Publication number
- CN114625571A CN114625571A CN202210249270.0A CN202210249270A CN114625571A CN 114625571 A CN114625571 A CN 114625571A CN 202210249270 A CN202210249270 A CN 202210249270A CN 114625571 A CN114625571 A CN 114625571A
- Authority
- CN
- China
- Prior art keywords
- data
- data packet
- packets
- matrix
- lost
- 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
Images
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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Abstract
本发明公开了一种用于数据恢复的三冗余MDS阵列码编译方法,涉及数据还原技术领域,在简编码译码过程复杂度降低的基础上实现可以对3个丢失数据的修复,包括以下步骤:获取k个原始数据包;获取每个原始数据包mj所对应的二元编码系数矩阵Aj;生成3个编码数据包,分别表示为p、q和r;当原始数据包出现数据丢失,用剩余数据的原始数据包和编码数据包进行数据译码恢复。本发明具有计算简单、异或操作数目逼近最优的情况下可以容许三个数据包丢失的优点。
Description
技术领域
本发明涉及数据还原技术领域,更具体的是涉及基于三冗余MDS阵列码的数据恢复方法技术领域。
背景技术
随着互联网和物联网技术的飞快发展,商业界和学术界等产生的数据量正与日俱增。在学术界中,生物学、天文学、地球科学等领域所产生的数据总量早已达到PB级别。在商业界,网页搜素、云存储与云计算等需要处理和存储的数据总量异常庞大。随着存储系统的规模在逐渐扩大,复杂性也不断增加,其可靠性很难得到保证。
为防止存储系统中的各类硬件故障造成数据丢失,用于生产环境的存储管理软件都使用了某种数据冗余技术来对数据进行保护。数据冗余技术通常包括多路镜像和纠删码技术两种。多路镜像将数据复制多份,并将多个副本分布在存储系统的不同节点上,仅存放数据副本的所有存储节点同时故障才会导致数据丢失,牺牲存储效率以保障数据的可靠性。例如,谷歌公司的GFS及其开源版本HDFS对每一份数据均存有三份副本,即系统中的任意两个节点同时故障不会造成数据丢失。
现有的一些可以实现3个数据恢复的编码方法在编码过程操作复杂,部分解决过程简单的只能容忍2个数据的丢失。
发明内容
本发明的目的在于:在简编码译码过程复杂度降低的基础上实现可以对3 个丢失数据的修复。为了解决上述技术问题,本发明提供一种用于数据恢复的三冗余MDS阵列码编译方法。
本发明为了实现上述目的具体采用以下技术方案:
一种用于数据恢复的三冗余MDS阵列码编译方法,包括以下步骤:
步骤S1:获取k个原始数据包,将k个原始数据包标记为mj,其中1≤j≤k,每个数据包由一个M*L矩阵表示,其中L满足以下条件:L+1为质数;
步骤S2:获取每个原始数据包mj所对应的二元编码系数矩阵Aj,Aj为(L+1) *(L+1)矩阵;
步骤S3:按照以下方式生成编码数据包p、q和r:
其中,G由L*L单位矩阵IL和L*1全零列向量并置,即G=[IL0L*1];
步骤S4:当原始数据包出现数据丢失,用剩余数据的原始数据包和编码数据包进行数据译码恢复。
优选地,获取所述二元编码系数矩阵Aj的方法为:
将所述j转换为二进制向量(bj,w,bj,w-1,...,bj,1,bj,0);
Aj=bj,wCL+1 w+1+bj,w-1CL+1 w+…+bj,1CL+1 2+bj,0CL+1+bj′IL+1;
优选地,在所述步骤S3中,所述生成3个编码数据包的方法包括以下步骤:
步骤S302:从i=1开始分别按照以下操作计算直到依次将 ti-1,2a-1与ti-1,2a进行逐位异或得到第i层数据ti,a,即ti,a=ti-1,2a-1+ti-1,2a,其中a为整数且逐级从1取到ni-1,若ni-1为偶数,若ni-1为奇数,
步骤S305:获取q和r的方法为:
优选地,在所述步骤S305中,所述获取q和r的方法为:
将x′与si′进行逐位异或,再将所得M*(L+1)矩阵按列向右循环1位,将所得重新赋值予x′,即x′=(x′+si′)CL+1,i=i-1,迭代直到i=0得到最终的x′;删除 x′的最后一列得到x,即x=x′GT;获取q=x+s;
将y′与si′进行逐位异或,再将所得M*(L+1)矩阵按列向右循环2位,将所得重新赋值予y′,即y′=(y′+si′)CL+1 2,i=i-1,迭代直到i=0得到最终的y′;删除y′的最后一列得到y,即y=y′GT;获取r=y+s。
优选地,所述步骤S4中,当丢失一个原始数据包且没有编码数据包丢失时,所述数据译码恢复的方法为:
丢失的原始数据包记为mj1,将剩余的原始数据包进行逐位异或得到M*L 矩阵p′;
将p′与编码数据包p进行逐位异或,译码恢复得到原始数据包mj1,即 mj1=p+p′。
优选地,当丢失一个原始数据包且有编码数据包丢失时,所述数据译码恢复的方法为:
丢失的原始数据包记为mj1,初始化k个全零数据包mj′,1≤j≤k,为mj′赋值,mj′=mj,j≠j1;将mj′视为原始数据包,按照所述生成编码数据包p、q和r 的方法生成三个编码数据包且分别标记为p′、q′和r′;
若用编码数据包p进行数据还原:mj1=p+p′;
若用编码数据包q进行数据还原:
mj1=(q'+q)HTD1H;
若用编码数据包r进化数据还原:
mj1=(r'+r)HTD1H;
译码恢复得到所述原始数据包后,还原丢失的编码数据包。
优选地,当丢失两个原始数据包时,所述数据译码恢复的方法为:
丢失的两个原始数据包记为mj1和mj2;初始化k个全零数据包mj′, 1≤j≤k,为mj′赋值,mj′=mj,j≠j1且j≠j2;将mj′视为原始数据包,按照所述生成编码数据包p、q和r的方法生成三个编码数据包且分别标记为p′、q′和 r′;p″=p′+p,q″=q′+q,r″=r′+r;
译码恢复得到所述原始数据包后,还原丢失的编码数据包。
优选地,当丢失三个原始数据包时,所述数据译码恢复的方法为:
丢失的三个所述原始数据包记为mj1、mj2和mj3;初始化k个全零数据包mj′, 1≤j≤k,为mj′赋值,mj′=mj,j≠j1且j≠j2且j≠j3;将mj′视为原始数据包且按照所述生成编码数据包p、q和r的方法生成三个编码数据包且分别标记为 p′、q′和r′;
mj1=p″+mj2+mj3;
其中,p″=p′+p,q″=q′+q,r″=r′+r;
mL+1为2的模(L+1)乘法阶;H=[IL*L 1L*1]T。
本发明的有益效果如下:
本发明的技术方案可以实现3个丢失数据包的恢复,且相比其他可以恢复3个数据包的编码译码方法复杂度明显降低;数据恢复覆盖的情况全面,在总共丢失3个数据包的情况下可以对原始数据包和编码数据包进行快速且精准的恢复;由于方法复杂度降低,因此易于实现,可用性强,适用范围更广。
附图说明
图1是本发明的流程示意图;
图2是实施例1中获取p的数据结构示意图;
图3是实施例1中获取q、r的数据结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1到3所示,本实施例提供一种用于数据恢复的三冗余MDS阵列码编译方法,特别说明的是,本方法涉及的数据均为矢量数据,该方法包括以下步骤:
步骤S1:获取k个原始数据包,将k个原始数据包标记为mj,其中1≤j≤k,每个数据包由一个M*L矩阵表示,其中L满足以下条件:L+1为质数;例如L 选取为16,16+1的结果17是质数,即符合要求。
步骤S2:获取每个原始数据包mj所对应的二元编码系数矩阵Aj,Aj为(L+1) *(L+1)矩阵;本实施例的所述步骤S2中,所述二元编码系数矩阵Aj的获取方法为:
步骤S201:将所述j转换为二进制向量(bj,w,bj,w-1,...,bj,1,bj,0),转换法为:j=bj,w*2w+bj,w-1*2w-1+…+bj,1*2+bj,0;
步骤S202:由二进制向量确定所述二元编码系数矩阵Aj:
Aj=bj,wCL+1 w+1+bj,w-1CL+1 w+…+bj,1CL+1 2+bj,0CL+1+bj′IL+1;
bj′=mod(bj,w+bj,w-1+…+bj,1+bj,0,2);
步骤S3:按照以下方式生成3个编码数据包,分别表示为p、q和r:
其中,G由L*L单位矩阵IL和L*1全零列向量并置,即G=[IL0L*1];
步骤S4:当原始数据包出现数据丢失,用剩余数据的原始数据包和编码数据包进行数据译码恢复。
另一个本实施例常用的矩阵H=[IL*L 1L*1]T。
传统的操作来说,生成3个编码数据包P时,是按照j为1-k的顺序依次进行逐位异或,也就是先m1+m2,取得的结果再加上 m3,以此类推直到加到mk,该方法计算繁琐,对于后续的q、r计算也没有帮助,全部需要进行大体量的运算。
为了简化计算步骤,在本实施例中,所述步骤S3中,所述生成3个编码数据包的方法包括以下步骤:
步骤S302:从i=1开始分别按照以下操作计算直到依次将 ti-1,2a-1与ti-1,2a进行逐位异或得到第i层数据ti,a,即ti,a=ti-1,2a-1+ti-1,2a,其中a为整数且逐级从1取到ni-1,若ni-1为偶数,若ni-1为奇数,
关于本实施例的具体的一个示例参阅图2-3,该示例中共31个原始数据包,即K=31,为通用运算符号,代表向下取整,则相反代表向上取整。所以i 的最大值为即为4,首先进行初始化后,第0层的数据总数 n0即为32,t0,1,t0,2,...,t0,32分别为0,m1,...,m31;然后从i=1开始计算, n1=16,首先的第一层的数据,例如从a=1开始得到t1,1=t0,1+t0,2,然后计算 a=2的情况得出t1,2=t0,3+t0,4,以此类推直到a=16-1,即得到t1,15=t0,29+t0,30;判断可知ni-1也就是n0为偶数,所以t1,16=t0,31+t0,32;如此往复直到得到第4层数据后得出t4,1和t4,2,以计算出p=t4,1+t4,2;
步骤S305:获取q和r的方法为:
在前面计算p的基础上,图3中每个圈出的节点集合所包含的原始数据包的包间异或结果ti,j已在生成编码数据包p时得到,可直接取用,也就是说通过该方法计算p的时候产生的中间数据可以被用来计算q和r,减少了异或操作,进而降低了复杂程度。
具体地,si中,i取值为0-4,依次按步骤计算得到si′后即可代入计算得到 x以得到q。在计算r的时候,先将si′按列向右循环mod(2(i+1),17)位,再将最后一列删除,得到一8×16二元矩阵,即为yi,以此得到r。
优选地,作为另一种可行方案,在所述步骤S305中,所述获取q和r的方法为:
将x′与si′进行逐位异或,再将所得M*(L+1)矩阵按列向右循环1位,本实施例的L为16,将所得重新赋值予x′,即x′=(x′+si′)CL+1,i=i-1,迭代直到i=0 得到最终的x′;删除x′的最后一列得到x,即x=x′GT;q=x+s;综合来说即从i=4 开始迭代,每完成一次计算i的值减1开始下一轮计算,直到i=0迭代完毕,下面关于r的计算同理。
将y′与si′进行逐位异或,再将所得M*(L+1)矩阵按列向右循环2位,将所得重新赋值予y′,即y′=(y′+si′)CL+1 2,i=i-1,与上面一样迭代直到i=0得到最终的y′;删除y′的最后一列得到y,即y=y′GT;r=y+s。
现有技术中,纠删码的基本原理是,首先将原始数据划分成k等份,然后通过一定的编码规则计算出r等份的冗余信息,最后将数据和冗余分别存放在存储系统中的k+r个节点上。最大距离可分纠删码保证了当存储系统中有不多于r个节点发生失效时,读取任意k个幸存节点上的数据冗余,并通过特定的译码运算即可恢复出k等份的原始数据。里德-所罗门码是存储系统中广泛应用的MDS纠删码,但其编译码需要在二元扩展域代数结构上进行。阵列码是一类编译码过程仅需在二元域上进行异或,即XOR操作实现的纠删码,一些常用阵列码在可以保证MDS特性的同时,编译码所需实现复杂度会显著低于RS码。
行对角校验码是一类经典的2冗余MDS阵列码,即r=2,其编码过程所需异或操作数目可以渐进逼近理论最优,但其最多只能容忍2个数据节点丢失;现有的一些多冗余MDS阵列码在参数选择上限制较多,且编码过程所需异或操作数目无法渐进逼近理论最优。本实施例的目的便是消除以上现有技术的缺陷,使得可以容忍3个数据节点丢失的同时保证其复杂度保持较低,也就是编码过程所需异或操作数目渐进逼近理论最优。
实施例2
本实施例基于实施例1的技术方案,实施例1具体方法步骤不再赘述。如实施例1所叙述,本技术方案可以容忍3个数据包丢失。本实施例中的原始数据包为8*16矩阵。
作为本实施例的优选方案,所述步骤S4中,当丢失一个原始数据包且没有编码数据包丢失时,所述数据译码恢复的方法为:
丢失的原始数据包记为mj1,将剩余的原始数据包进行逐位异或得到M*L 矩阵p′;此处与正常计算p的方法相同,不过使用的是缺失一个数据的原始数据包;
将p′与编码数据包p进行逐位异或,译码恢复得到原始数据包mj1,即mj1=p+p′。
另外地,当丢失一个原始数据包且有编码数据包丢失时,所述数据译码恢复的方法为:
丢失的原始数据包记为mj1,初始化k个全零数据包mj′,即08*16,本实施例的k为31,1≤j≤k,为mj′赋值,mj′=mj,j≠j1;将mj′视为原始数据包,按照所述生成编码数据包p、q和r的方法生成三个编码数据包且分别标记为p′、 q′和r′;也就是说将丢失数据包的原始数据包mj正常代入计算p、q和r,其中丢失的数据包对应的位置为全零矩阵。
若用编码数据包p进行还原,丢失的原始数据包mj1=p+p′;
若用编码数据包q进行还原,丢失的原始数据包mj1=(q′+q)HTD1H, 其中,或mL+1为2的模(L+1)乘法阶;通常,本实施例的D1=Aj1 254;若D1是由{C17,C17 2,…,C17 16,C17 17} 中多于8个矩阵相加构成,则重设D1=117*17+Aj1 254,1(L+1)*(L+1)为通用表达法,表示全1矩阵。C17如前文所述为循环位移矩阵
若用编码数据包r进化还原,丢失的原始数据包mj1=(r′+r)HTD1H, 其中,或mL+1为2的模 (L+1)乘法阶;同理地,通常,本实施例的D1=Aj1 2*254;若D1是由{C17,C17 2,…, C17 16,C17 17}中多于8个矩阵相加构成,则重设D1=117*17+Aj1 2*254, 1(L+1)*(L+1)为通用表达法,表示全1矩阵。C17如前文所述为循环位移矩阵
由以上可知,当一个原始数据包丢失时,通过任意一个编码数据包即可进行数据还原,也就是说最多可以允许丢失两个编码数据包,加上已经丢失的一个原始数据包,本方案可以容忍丢失三个数据包。
译码恢复得到所述原始数据包后,还原丢失的编码数据包。具体可根据恢复的原始数据包对编码数据包进行重新计算,或在计算时候通过p′、q′和r′以及恢复的数据mj1按以下方式还原编码数据包,该方式计算量更小,直接在已经得出的p′、q′和r′补足还原的数据部分:
p=p′+mj1;
q=q′+mj1GAj1GT;
r=r′+mj1GAj1 2GT;
另一种情形下,也就是当丢失两个原始数据包时,所述数据译码恢复的方法为:
丢失的两个原始数据包记为mj1和mj2;初始化k个全零数据包mj′, 1≤j≤k,为mj′赋值,mj′=mj,j≠j1且j≠j2;将mj′视为原始数据包,按照所述生成编码数据包p、q和r的方法生成三个编码数据包且分别标记为p′、q′和 r′;p″=p′+p,q″=q′+q,r″=r′+r;
若编码数据包p丢失,[mj1,mj2]满足以下条件:
可以通过高斯消元法求解进行还原,例如按以下步骤执行:
步骤a.1:计算r″′=q″(HTAj1GT)+r″,由循环移位网络编码性质可证明
r″′=mj2GAj2(Aj1+Aj2)GT
步骤a.3:计算q″′=q″+mj2GAj2GT;
步骤b.1:计算r″′=p″(GAj1 2GT)+r″,由循环移位网络编码性质可证明
r″′=mj2G(Aj1 2+Aj2 2)GT=mj2G(Aj1+Aj2)2GT
步骤b.3:计算mj1=p″+mj2;
步骤c.1:计算q″′=p″(GAj1GT)+q″,由循环移位网络编码性质可证明
q″′=mj2G(Aj1+Aj2)GT
步骤c.3:计算计算mj1=p″+mj2;
由以上可知,丢失两个原始数据包的时候,可以仅通过任意两个编码数据包进行数据还原,也就是说运行在此基础上丢失1个编码数据包,所以本方案在此情况下容许丢失的数据包量总数依然为3个。
译码恢复得到所述原始数据包后,还原丢失的编码数据包。具体可根据恢复的原始数据包对编码数据包进行重新计算,或在计算时候通过p′、q′和r′以及恢复的数据mj1和mj2按以下方式还原编码数据包,该方式计算量更小,直接在已经得出的p′、q′和r′补足还原的数据部分:
p=p′+mj1+mj2;
q=q′+mj1GAj1GT+mj2GAj2GT;
r=r′+mj1GAj1 2GT+mj2GAj2 2GT;
另一方面,当丢失三个原始数据包时,所述数据译码恢复的方法为:
丢失的三个原始数据包记为mj1、mj2和mj3;初始化k个全零数据包mj′,1≤j≤k,为mj′赋值,mj′=mj,j≠j1且j≠j2且j≠j3;将mj′视为原始数据包,按照所述生成3个编码数据包的方法生成的p、q和r分别标记为p′、q′和 r′;p″=p′+p,q″=q′+q,r=r′+r;
具体而言,通常如果D3是由{C17,C17 2,…,C17 16,C17 17}中多于8个矩阵相加构成,则重设D3=[(Aj1+ Aj2)(Aj2+Aj3)]2mL+1-2+1L+1*(L+1);其中mL+1为2的模(L+1)乘法阶;
计算得到mj1=p″+mj2+mj3,以此完成数据恢复。
Claims (8)
3.根据权利要求1所述的一种用于数据恢复的三冗余MDS阵列码编译方法,其特征在于,在所述步骤S3中,所述生成3个编码数据包的方法包括以下步骤:
步骤S302:从i=1开始分别按照以下操作计算直到依次将ti-1,2a-1与ti-1,2a进行逐位异或得到第i层数据ti,a,即ti,a=ti-1,2a-1+ti-1,2a,其中a为整数且逐级从1取到ni-1;若ni-1为偶数,若ni-1为奇数,
步骤S305:获取q和r的方法为:
4.根据权利要求3所述的一种用于数据恢复的三冗余MDS阵列码编译方法,其特征在于,在所述步骤S305中,所述获取q和r的方法为:
将x′与si′进行逐位异或,再将所得M*(L+1)矩阵按列向右循环1位,将所得重新赋值予x′,即x′=(x′+si′)CL+1,i=i-1,迭代直到i=0得到最终的x′;删除x′的最后一列得到x,即x=x′GT;获取q=x+s;
将y′与si′进行逐位异或,再将所得M*(L+1)矩阵按列向右循环2位,将所得重新赋值予y′,即y′=(y′+si′)CL+1 2,i=i-1,迭代直到i=0得到最终的y′;删除y′的最后一列得到y,即y=y′GT;获取r=y+s。
5.根据权利要求1所述的一种用于数据恢复的三冗余MDS阵列码编译方法,其特征在于,所述步骤S4中,当丢失一个所述原始数据包且没有所述编码数据包丢失时,所述数据译码恢复的方法为:
丢失的所述原始数据包记为mj1,将剩余的所述原始数据包进行逐位异或得到M*L矩阵p′;
将p′与编码数据包p进行逐位异或,译码恢复得到原始数据包mj1,即mj1=p+p′。
6.根据权利要求1所述的一种用于数据恢复的三冗余MDS阵列码编译方法,其特征在于,所述步骤S4中,当丢失一个所述原始数据包且有所述编码数据包丢失时,所述数据译码恢复的方法为:
丢失的所述原始数据包记为mj1,初始化k个全零数据包mj′,1≤j≤k,为mj′赋值,mj′=mj,j≠j1;将mj′视为原始数据包,按照所述生成编码数据包p、q和r的方法生成三个编码数据包且分别标记为p′、q′和r′;
若用编码数据包p进行数据还原:mj1=p+p′;
若用编码数据包q进行数据还原:
mj1=(q′+q)HTD1H;
若用编码数据包r进化数据还原:
mj1=(r′+r)HTD1H;
译码恢复得到所述原始数据包后,还原丢失的所述编码数据包。
7.根据权利要求1所述的一种用于数据恢复的三冗余MDS阵列码编译方法,其特征在于,所述步骤S4中,当丢失两个所述原始数据包时,所述数据译码恢复的方法为:
丢失的两个所述原始数据包记为mj1和mj2;初始化k个全零数据包mj′,1≤j≤k,为mj′赋值,mj′=mj,j≠j1且j≠j2;将mj′视为原始数据包,按照所述生成编码数据包p、q和r的方法生成三个编码数据包且分别标记为p′、q′和r′;p″=p′+p,q″=q′+q,r″=r′+r;
译码恢复得到所述原始数据包后,还原丢失的所述编码数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210249270.0A CN114625571A (zh) | 2022-03-14 | 2022-03-14 | 一种用于数据恢复的三冗余mds阵列码编译方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210249270.0A CN114625571A (zh) | 2022-03-14 | 2022-03-14 | 一种用于数据恢复的三冗余mds阵列码编译方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114625571A true CN114625571A (zh) | 2022-06-14 |
Family
ID=81901837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210249270.0A Pending CN114625571A (zh) | 2022-03-14 | 2022-03-14 | 一种用于数据恢复的三冗余mds阵列码编译方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114625571A (zh) |
-
2022
- 2022-03-14 CN CN202210249270.0A patent/CN114625571A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10146618B2 (en) | Distributed data storage with reduced storage overhead using reduced-dependency erasure codes | |
CN101243664B (zh) | 应用于对各类码进行编码和解码的原地变换 | |
US7472334B1 (en) | Efficient method for the reconstruction of digital information | |
Assmus, Jr et al. | Coding and combinatorics | |
US8928503B2 (en) | Data encoding methods, data decoding methods, data reconstruction methods, data encoding devices, data decoding devices, and data reconstruction devices | |
CN111078460B (zh) | 一种快速纠删码计算方法 | |
CN107852176A (zh) | Ldpc码编码器和译码器 | |
WO2008003094A2 (en) | Efficient representation of symbol-based transformations with application to encoding and decoding of forward error correction codes | |
US20120023362A1 (en) | System and method for exact regeneration of a failed node in a distributed storage system | |
JP6487931B2 (ja) | データブロックを再構築する方法及び装置 | |
CN112000512B (zh) | 一种数据修复方法及相关装置 | |
CN101272150B (zh) | 一种低密度生成矩阵码的译码方法及装置 | |
US20120317466A1 (en) | Method and apparatus for data check processing | |
KR101621752B1 (ko) | 부분접속 복구 가능한 반복분할 부호를 이용한 분산 저장 장치 및 그 방법 | |
WO2017185681A1 (zh) | 一种gel码字结构编码和译码的方法、装置及相关设备 | |
WO2017041232A1 (zh) | 一种二进制循环码的编解码框架 | |
CN104782101A (zh) | 用于分布式网络存储的自修复码的编码、重构和恢复方法 | |
Chen et al. | A new Zigzag MDS code with optimal encoding and efficient decoding | |
CN107665152B (zh) | 一类纠删码的译码方法 | |
CN114625571A (zh) | 一种用于数据恢复的三冗余mds阵列码编译方法 | |
CN100593911C (zh) | 一种对通信系统中接收到的层数据进行解码的方法和系统 | |
US20210055993A1 (en) | Methods and Apparatuses for Robust Data Partition And Recovery | |
CN109144767B (zh) | 数据存储系统及其操作方法 | |
CN110780813A (zh) | 一种基于二元域上子空间码的分布式存储系统 | |
CN112534724A (zh) | 用于解码极化码和乘积码的解码器和方法 |
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 |