CN111143108B - 一种降低阵列码Xcode修复的编译码方法及装置 - Google Patents

一种降低阵列码Xcode修复的编译码方法及装置 Download PDF

Info

Publication number
CN111143108B
CN111143108B CN201911251196.0A CN201911251196A CN111143108B CN 111143108 B CN111143108 B CN 111143108B CN 201911251196 A CN201911251196 A CN 201911251196A CN 111143108 B CN111143108 B CN 111143108B
Authority
CN
China
Prior art keywords
data
row
block
blocks
column
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
Application number
CN201911251196.0A
Other languages
English (en)
Other versions
CN111143108A (zh
Inventor
唐聃
张航
刘敦龙
刘善政
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hefei Minglong Electronic Technology Co ltd
Original Assignee
Chengdu University of Information Technology
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 Chengdu University of Information Technology filed Critical Chengdu University of Information Technology
Priority to CN201911251196.0A priority Critical patent/CN111143108B/zh
Publication of CN111143108A publication Critical patent/CN111143108A/zh
Application granted granted Critical
Publication of CN111143108B publication Critical patent/CN111143108B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明公开了一种降低阵列码Xcode修复的编译码方法及装置,其方法包括:通过对N*N阵列码Xcode进行编码处理,得到包含两行局部编码数据行和局部冗余块行的(N+1)*N阵列码Xcode;在检测到所述(N+1)*N阵列码Xcode中的第I列失效时,利用所述两行局部编码数据行中的数据块和所述局部冗余块行中的局部冗余块,分别恢复出所述第I列中且位于局部编码数据行中的两个数据块和位于第(N+1)行的局部冗余块;利用所恢复出所述第I列中的两个数据块和所述局部冗余块,分别恢复所述第I列中的(N‑2)个剩余数据。

Description

一种降低阵列码Xcode修复的编译码方法及装置
技术领域
本发明涉及计算机存储技术领域,特别涉及一种降低阵列码Xcode修复的编译码方法及装置。
背景技术
纠删码技术是一种源自于信道传输的编码技术,后被应用到了存储系统中,因为其能消耗更低的存储空间存储更多的数据的特性被分布式存储系统使用并逐步得到改进和推广。纠删码中有一类码称为阵列码,是由M.Blaum在1993年提出的。阵列码与其他常用的线性纠删码存在一定的区别。它的算法并不是将全部的数据放入一维的向量中,而是将原数据以及冗余数据按照一定的顺序,存放在一个二维(或多维)的阵列中,其中XCODE属于典型的阵列码。阵列码因为其构造简单,运算速度较快等优势被广泛使用,但阵列码也存在着诸多问题,比如恢复丢失数据时修复成本过高,另一方面修复时间较慢,过长的修复时间容易导致系统在修复时再次丢失数据,因此研究如何降低阵列码的修复开销和恢复效率成为热门问题。
发明内容
根据本发明实施例提供的方案解决的技术问题是如何降低阵列码的修复开销和恢复效率。
根据本发明实施例提供的一种降低阵列码Xcode修复的编译码方法,其特征在于,包括:
通过对N*N阵列码Xcode进行编码处理,得到包含两行局部编码数据行和局部冗余块行的(N+1)*N阵列码Xcode;
在检测到所述(N+1)*N阵列码Xcode中的第I列失效时,利用所述两行局部编码数据行中的数据块和所述局部冗余块行中的局部冗余块,分别恢复出所述第I列中且位于局部编码数据行中的两个数据块和位于第(N+1)行的局部冗余块;
利用所恢复出所述第I列中的两个数据块和所述局部冗余块,分别恢复所述第I列中的(N-2)个剩余数据。
优选地,所述通过对N*N阵列码Xcode进行编码处理,得到包含两行局部编码数据行和局部冗余块行的(N+1)*N阵列码Xcode包括:
在对N*N阵列码Xcode进行编码时,将所述N*N阵列码Xcode的数据行中选取的两行数据行划分到局部编码数据行集中;
通过对所述局部编码数据行集中第一行的N个数据块与第二行的N个数据块分别进行一对一配对处理,得到N个数据块集合;
利用所述N个数据块集合,生成N个局部冗余块;
将所述N个局部冗余块依次放置到所述N*N阵列码Xcode的第N+1行中。
优选地,所述将所述N*N阵列码Xcode的数据行中选取的两行数据行划分到局部编码数据行集中包括:
按照局部编码数据行划分方法,从所述N*N阵列码Xcode的前N-2数据行中选取第0行数据行和第N-3行数据行;
将所述第0行数据行和第N-3行数据行划分到局部编码数据行集中。
优选地,所述通过对所述局部编码数据行集中第一行的N个数据块与第二行的N个数据块分别进行一对一配对处理,得到N个数据块集合包括:
确定用于配对数据块的标准列和斜率,其中所述斜率为1或-1;
从所述标准列的第0行出发,以所述斜率为走向,在所述N*N阵列码Xcode中选出N-2个数据块;
判断选出的数据块所在的数据行是否属于所述局部编码数据行集中的第一行或第二行;
将属于所述局部编码数据行集中第一行的数据块与属于所述局部编码数据行集中第二行的数据块进行配对,并将所述两个数据块划分到数据块集合Ai(0≤i≤N-1)中。
优选地,所述利用所述N个数据块集合,生成N个局部冗余块包括:
通过对所述数据块集合Ai进行奇偶校验处理,生成与所述每个数据块集合Ai相对应的局部冗余块Si。
优选地,所述将所述N个局部冗余块依次放置到所述N*N阵列码Xcode的第N+1行中包括:
根据所述局部冗余块Si所对应的数据块集合Ai,确定所述数据块集合Ai中且属于所述局部编码数据行集中第二行数据块所在的数据列n(0≤n≤N-1);
根据所确定的数据列n,将所述局部冗余块Si放置到所述N*N阵列码Xcode的第N+1行的第n+1modN列中。
优选地,所述利用所述两行局部编码数据行中的数据块和所述局部冗余块行中的局部冗余块,分别恢复出所述第I列中且位于局部编码数据行中的两个数据块和位于第(N+1)行的局部冗余块包括:
确定所述第I列中的且分别位于局部编码数据行中的第一行失效数据块所属的第一数据块集合和第二行失效数据块所属的第二数据块集合,读取并缓存所述第一数据块集合中的第一活跃数据块和所述第二数据块集合中的第二活跃数据块;
根据所确定的第一数据块集合,确定其在编码时所生成的第一局部冗余块,以及根据所确定的第二数据块集合,确定其在编码时所生成的第二局部冗余块;
根据所述第一活跃数据块和所述第一局部冗余块,恢复所述第I列中且位于局部编码数据行中第一行的数据块,以及根据所述第二活跃数据块和所述第二局部冗余块,恢复所述第I列中且位于局部编码数据行中第二行的数据块。
优选地,所述利用所述两行局部编码数据行中的数据块和所述局部冗余块行中的局部冗余块,分别恢复出所述第I列中且位于局部编码数据行中的两个数据块和位于第(N+1)行的局部冗余块包括:
确定所述第I列中的且位于第(N+1)行中的失效局部冗余块所对应的第三数据块集合,读取并缓存所述第三数据块集合中的第三活跃数据块;
根据所述读取的第三活跃数据块,恢复所述第I列中且位于第(N+1)行的局部冗余块。
优选地,所述利用所恢复出所述第I列中的两个数据块和所述局部冗余块,分别恢复所述第I列中的(N-2)个剩余数据包括:
根据所述第I列中的且位于第(N-2)行和位于第(N-1)行的失效奇偶校验块,确定并读取其在编码时生成所需要的多个数据;
分别读取所缓存的第一活跃数据块、第二活跃数据块以及第三活跃数据块;
根据所述多个数据块和所述第一活跃数据块、第二活跃数据块以及第三活跃数据块,分别恢复所述第I列中的(N-2)个剩余数据。
根据本发明实施例提供一种降低阵列码Xcode修复的编译码装置,包括:
编码模块,用于通过对N*N阵列码Xcode进行编码处理,得到包含两行局部编码数据行和局部冗余块行的(N+1)*N阵列码Xcode;
解码恢复模块,用于在检测到所述(N+1)*N阵列码Xcode中的第I列失效时,利用所述两行局部编码数据行中的数据块和所述局部冗余块行中的局部冗余块,分别恢复出所述第I列中且位于局部编码数据行中的两个数据块和位于第(N+1)行的局部冗余块,以及利用所恢复出所述第I列中的两个数据块和所述局部冗余块,分别恢复所述第I列中的(N-2)个剩余数据。
根据本发明实施例提供的方案,通过构造局部冗余的方式来减少恢复数据所需的修复带宽,同时能够大幅度减少解码恢复数据的时间,保障了系统的可靠性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于理解本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例提供的一种降低阵列码Xcode修复的编译码方法流程图;
图2是本发明实施例提供的一种降低阵列码Xcode修复的编译码装置示意图;
图3是本发明实施例提供的Xcode+的编码示意图;
图4是本发明实施例提供的Xcode+的解码示意图;
具体实施方式
以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1是本发明实施例提供的一种降低阵列码Xcode修复的编译码方法流程图,如图1所示,包括:
步骤S100:通过对N*N阵列码Xcode进行编码处理,得到包含两行局部编码数据行和局部冗余块行的(N+1)*N阵列码Xcode;
步骤S110:在检测到所述(N+1)*N阵列码Xcode中的第I列失效时,利用所述两行局部编码数据行中的数据块和所述局部冗余块行中的局部冗余块,分别恢复出所述第I列中且位于局部编码数据行中的两个数据块和位于第(N+1)行的局部冗余块;
步骤S120:利用所恢复出所述第I列中的两个数据块和所述局部冗余块,分别恢复所述第I列中的(N-2)个剩余数据。
其中,所述步骤S100包括:在对N*N阵列码Xcode进行编码时,将所述N*N阵列码Xcode的数据行中选取的两行数据行划分到局部编码数据行集中;通过对所述局部编码数据行集中第一行的N个数据块与第二行的N个数据块分别进行一对一配对处理,得到N个数据块集合;利用所述N个数据块集合,生成N个局部冗余块;将所述N个局部冗余块依次放置到所述N*N阵列码Xcode的第N+1行中。
具体地说,所述将所述N*N阵列码Xcode的数据行中选取的两行数据行划分到局部编码数据行集中包括:按照局部编码数据行划分方法,从所述N*N阵列码Xcode的前N-2数据行中选取第0行数据行和第N-3行数据行;将所述第0行数据行和第N-3行数据行划分到局部编码数据行集中。
具体地说,所述通过对所述局部编码数据行集中第一行的N个数据块与第二行的N个数据块分别进行一对一配对处理,得到N个数据块集合包括:确定用于配对数据块的标准列和斜率,其中所述斜率为1或-1;从所述标准列的第0行出发,以所述斜率为走向,在所述N*N阵列码Xcode中选出N-2个数据块;判断选出的数据块所在的数据行是否属于所述局部编码数据行集中的第一行或第二行;将属于所述局部编码数据行集中第一行的数据块与属于所述局部编码数据行集中第二行的数据块进行配对,并将所述两个数据块划分到数据块集合Ai(0≤i≤N-1)中。
具体地说,所述利用所述N个数据块集合,生成N个局部冗余块包括:通过对所述数据块集合Ai进行奇偶校验处理,生成与所述每个数据块集合Ai相对应的局部冗余块Si。
具体地说,所述将所述N个局部冗余块依次放置到所述N*N阵列码Xcode的第N+1行中包括:根据所述局部冗余块Si所对应的数据块集合Ai,确定所述数据块集合Ai中且属于所述局部编码数据行集中第二行数据块所在的数据列n(0≤n≤N-1);根据所确定的数据列n,将所述局部冗余块Si放置到所述N*N阵列码Xcode的第N+1行的第n+1modN列中。
其中,所述步骤S110包括:确定所述第I列中的且分别位于局部编码数据行中的第一行失效数据块所属的第一数据块集合和第二行失效数据块所属的第二数据块集合,读取并缓存所述第一数据块集合中的第一活跃数据块和所述第二数据块集合中的第二活跃数据块;根据所确定的第一数据块集合,确定其在编码时所生成的第一局部冗余块,以及根据所确定的第二数据块集合,确定其在编码时所生成的第二局部冗余块;根据所述第一活跃数据块和所述第一局部冗余块,恢复所述第I列中且位于局部编码数据行中第一行的数据块,以及根据所述第二活跃数据块和所述第二局部冗余块,恢复所述第I列中且位于局部编码数据行中第二行的数据块。
其中,所述步骤S110包括:确定所述第I列中的且位于第(N+1)行中的失效局部冗余块所对应的第三数据块集合,读取并缓存所述第三数据块集合中的第三活跃数据块;根据所述读取的第三活跃数据块,恢复所述第I列中且位于第(N+1)行的局部冗余块。
其中,所述步骤S120包括:根据所述第I列中的且位于第(N-2)行和位于第(N-1)行的失效奇偶校验块,确定并读取其在编码时生成所需要的多个数据;分别读取所缓存的第一活跃数据块、第二活跃数据块以及第三活跃数据块;根据所述多个数据块和所述第一活跃数据块、第二活跃数据块以及第三活跃数据块,分别恢复所述第I列中的(N-2)个剩余数据。
图2是本发明实施例提供的一种降低阵列码Xcode修复的编译码装置示意图,如图2所示,包括:编码模块,用于通过对N*N阵列码Xcode进行编码处理,得到包含两行局部编码数据行和局部冗余块行的(N+1)*N阵列码Xcode;解码恢复模块,用于在检测到所述(N+1)*N阵列码Xcode中的第I列失效时,利用所述两行局部编码数据行中的数据块和所述局部冗余块行中的局部冗余块,分别恢复出所述第I列中且位于局部编码数据行中的两个数据块和位于第(N+1)行的局部冗余块,以及利用所恢复出所述第I列中的两个数据块和所述局部冗余块,分别恢复所述第I列中的(N-2)个剩余数据。
本发明针对阵列码中典型的X码,提出一种降低XCODE修复成本和修复时间的编译码方法,包括:
一、一个局部编码数据行划分方法。XCODE是n*n的阵列(注:n为素数)。XCODE的两类奇偶校验块是作为两行放到XCODE的下面的,所以XCODE最多纠删个数为2。在XCODE的结构中,前(n-2)行为数据行,存放数据块。设局部编码数据行个数为S,其划分方法按照X码的结构,选取第0行和n-3行划分到局部编码数据行集。剩余的S-2行按照阵列中数据行的个数,从第0行出发,隔行选取数据行划分到局部编码数据行集,直到个数达到S。
二、一个数据块配对方法。数据块配对方法分为斜率为1或者-1两种不同配对方法。XCODE在构造n-2冗余行时,按照
Figure BDA0002309088600000082
Figure BDA0002309088600000081
的方式构造(其中0≤i≤n-1),称为斜率为-1的编码。以斜率为-1配对数据块时,借助n-2行的编码方式,其中选定n列中ni列作为标准列,从标准列的第0行出发,以斜率为-1的走向,在阵列中选出n-2个数据块,若其中数据块所在的数据行存在于局部编码数据行集中,则该类型的数据块划分到集合Ai中,其中0≤i≤n-1,匹配成功记为同一属性。标准列的两侧依次按照以上方式配对数据块,直到局部编码条带集中所有数据块配对成功。XCODE在构造n-1冗余行时,按照
Figure BDA0002309088600000083
Figure BDA0002309088600000084
(其中0≤i≤n-1)的方式构造,称为斜率为1的编码。以斜率为1配对数据块时,借助n-1行的编码方式,其中选定n列中ni列作为标准列,从标准列的第0行出发,以斜率为1的走向,在阵列中选出n-2个数据块,若其中数据块所在的数据行存在于局部编码数据行集,则该类型的数据块划分到集合Ai中,其中0≤i≤n-1,匹配成功记为同一属性。标准列的两侧依次按照以上方式配对数据块,直到局部编码数据行集中所有数据块配对成功。
三、一个局部冗余块放置方法。集合Ai,其中0≤i≤n-1,中的数据块异或生成局部冗余块Si,其中0≤i≤n-1,在n*n的结构上,在最下面加一行存放其生成的局部冗余块。Ai中每个数据块所在阵列中的列标记为相同属性的列记为R列,其中n列中排除R列后剩余的列即为Ai生成局部冗余块Si放置的位置。当剩余列为多个时,按照局部编码数据行中的最后一行配对的数据块属性位置循环右移一位的排序进行放置。
四、一个数据局部匹配解码的方法。在分布式存储系统中某个节点故障,会导致该节点数据失效,这时为保障系统的运行,需要及时恢复数据。Xcode+的数据局部匹配解码方法能快速低成本的恢复数据,具体方法操作如下:
1、在恢复某列失效的数据时,首先按照集合Ai中的数据块和其生成的局部冗余快恢复Ai中所在失效列的数据块,并将读取的快数据保存在缓存中。
2、利用Ai中的数据块和其生成的局部冗余块的线性关系恢复出丢失的局部冗余块。并将读取的块数据保存在缓存中。
3、局部冗余块无法在恢复出数据块后,首先从缓存中获取已有块的数据信息,若没有该块信息,则才在存储节点中读取。按照n-2行和n-1行奇偶校验块与数据块的线性关系恢复出数据。
图3是本发明提供的Xcode+的编码示意图,如图3所示,图为n=5,S=2构造的Xcode+。其中A1,A2,A3为数据行存放数据块,C1,C2为普通Xcode通过奇偶校验生成的冗余行。包括:
第一步,按照局部编码数据行划分方法选取第0行和第2行的数据行划分到局部编码数据行集中。其中,集合A0.A1。。。。中的元素来自与局部编码数据行集。
第二步,按照第0列作为标准列,斜率为1的走向,匹配数据块。首先按照
Figure BDA0002309088600000101
构造n-1行的方式,选取数据块A00,A14,A23三个数据块,其中A00,A23,所造的数据行存在于局部编码数据行集中,则A00,A23,数据块匹配成功,划分到集合A0中,然后依次从第0列标准列展开,按照上述方式,将A01,A24数据块匹配成功,划分到集合A1中,将A02,A20数据块匹配成功,划分到集合A2中,将A03,A21数据块匹配成功,划分到集合A3中,将A04,A22数据块匹配成功,划分到集合A4中。将集合Ai中,其中0≤i≤n-1中的数据块奇偶校验生成局部冗余块S0—S4,5个局部冗余块。
第三步,按照局部冗余块放置方法,A0中A00和A23数据块所在的第0列和第3列标记为相同属性的列记为R,则阵列n=5列排除R列,剩余第1,2,4,列,按照局部编码数据行集最后一行第2行(局部编码数据行集中是最后一行,在图中属于第二行)中配对的数据块属性循环右移一位,则S0放置于第4列。(集合Ai中的元素生成局部冗余块,A0中元素生成S0,A1生成S1,。。。依次递推。总共生成5个局部冗余块)按照同样方式,依次放置S1,S2,S3,S4。编码结束。
图4是本发明提供的XCODE+解码示意图,如图4所示,图为n=5,S=2构造的Xcode+。其中A1,A2,A3为数据行存放数据块,C1,C2为普通Xcode通过奇偶校验生成的冗余行,S行为局部冗余行。如图假设第2列失效。具体步骤如下:
第一步,按照局部编码数据行生成的局部冗余块恢复原始数据块。如图,首先获取A20数据块和S2局部冗余块恢复出A02数据块,读取A04数据块和S4局部冗余块恢复A22数据块。并将读取的块数据保存在缓存中。
第二步,按照局部编码数据行中的数据块恢复局部冗余块。首先读取A03和A21数据块通过奇偶校验生成S3局部冗余块。并将读取的块数据保存在缓存中。
第三步,恢复A12、C02、C12时,首先从缓存中读取A20,A21,A03,A04数据块,然后在读取Xcode中生成C1,C2奇偶校验行所需要用到的数据块,恢复出A12、C02、C12。到此,解码全部结束。
尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。

Claims (8)

1.一种降低阵列码Xcode修复的编译码方法,其特征在于,包括:
通过对N*N阵列码Xcode进行编码处理,得到包含两行局部编码数据行和局部冗余块行的(N+1)*N阵列码Xcode,其包括:
在对N*N阵列码Xcode进行编码时,将所述N*N阵列码Xcode的数据行中选取的两行数据行划分到局部编码数据行集中;
通过对所述局部编码数据行集中第一行的N个数据块与第二行的N个数据块分别进行一对一配对处理,得到N个数据块集合;
利用所述N个数据块集合,生成N个局部冗余块,其包括通过对所述数据块集合Ai进行奇偶校验处理,生成与所述每个数据块集合Ai相对应的局部冗余块Si;
将所述N个局部冗余块依次放置到所述N*N阵列码Xcode的第N+1行中;
在检测到所述(N+1)*N阵列码Xcode中的第I列失效时,利用所述两行局部编码数据行中的数据块和所述局部冗余块行中的局部冗余块,分别恢复出所述第I列中且位于局部编码数据行中的两个数据块和位于第(N+1)行的局部冗余块;
利用所恢复出所述第I列中的两个数据块和所述局部冗余块,分别恢复所述第I列中的(N-2)个剩余数据。
2.根据权利要求1所述的方法,其特征在于,所述将所述N*N阵列码Xcode的数据行中选取的两行数据行划分到局部编码数据行集中包括:
按照局部编码数据行划分方法,从所述N*N阵列码Xcode的前N-2数据行中选取第0行数据行和第N-3行数据行;
将所述第0行数据行和第N-3行数据行划分到局部编码数据行集中。
3.根据权利要求1所述的方法,其特征在于,所述通过对所述局部编码数据行集中第一行的N个数据块与第二行的N个数据块分别进行一对一配对处理,得到N个数据块集合包括:
确定用于配对数据块的标准列和斜率,其中所述斜率为1或-1;
从所述标准列的第0行出发,以所述斜率为走向,在所述N*N阵列码Xcode中选出N-2个数据块;
判断选出的数据块所在的数据行是否属于所述局部编码数据行集中的第一行或第二行;
将属于所述局部编码数据行集中第一行的数据块与属于所述局部编码数据行集中第二行的数据块进行配对,并将所述两个数据块划分到数据块集合Ai(0≤i≤N-1)中。
4.根据权利要求3所述的方法,其特征在于,所述将所述N个局部冗余块依次放置到所述N*N阵列码Xcode的第N+1行中包括:
根据所述局部冗余块Si所对应的数据块集合Ai,确定所述数据块集合Ai中且属于所述局部编码数据行集中第二行数据块所在的数据列n(0≤n≤N-1);
根据所确定的数据列n,将所述局部冗余块Si放置到所述N*N阵列码Xcode的第N+1行的第n+1modN列中。
5.根据权利要求4所述的方法,其特征在于,所述利用所述两行局部编码数据行中的数据块和所述局部冗余块行中的局部冗余块,分别恢复出所述第I列中且位于局部编码数据行中的两个数据块和位于第(N+1)行的局部冗余块包括:
确定所述第I列中的且分别位于局部编码数据行中的第一行失效数据块所属的第一数据块集合和第二行失效数据块所属的第二数据块集合,读取并缓存所述第一数据块集合中的第一活跃数据块和所述第二数据块集合中的第二活跃数据块;
根据所确定的第一数据块集合,确定其在编码时所生成的第一局部冗余块,以及根据所确定的第二数据块集合,确定其在编码时所生成的第二局部冗余块;
根据所述第一活跃数据块和所述第一局部冗余块,恢复所述第I列中且位于局部编码数据行中第一行的数据块,以及根据所述第二活跃数据块和所述第二局部冗余块,恢复所述第I列中且位于局部编码数据行中第二行的数据块。
6.根据权利要求5所述的方法,其特征在于,所述利用所述两行局部编码数据行中的数据块和所述局部冗余块行中的局部冗余块,分别恢复出所述第I列中且位于局部编码数据行中的两个数据块和位于第(N+1)行的局部冗余块包括:
确定所述第I列中的且位于第(N+1)行中的失效局部冗余块所对应的第三数据块集合,读取并缓存所述第三数据块集合中的第三活跃数据块;
根据所述读取的第三活跃数据块,恢复所述第I列中且位于第(N+1)行的局部冗余块。
7.根据权利要求6所述的方法,其特征在于,所述利用所恢复出所述第I列中的两个数据块和所述局部冗余块,分别恢复所述第I列中的(N-2)个剩余数据包括:
根据所述第I列中的且位于第(N-2)行和位于第(N-1)行的失效奇偶校验块,确定并读取其在编码时生成所需要的多个数据;
分别读取所缓存的第一活跃数据块、第二活跃数据块以及第三活跃数据块;
根据所述多个数据块和所述第一活跃数据块、第二活跃数据块以及第三活跃数据块,分别恢复所述第I列中的(N-2)个剩余数据。
8.一种降低阵列码Xcode修复的编译码装置,其特征在于,包括:
编码模块,用于通过对N*N阵列码Xcode进行编码处理,得到包含两行局部编码数据行和局部冗余块行的(N+1)*N阵列码Xcode,其包括:
在对N*N阵列码Xcode进行编码时,将所述N*N阵列码Xcode的数据行中选取的两行数据行划分到局部编码数据行集中;
通过对所述局部编码数据行集中第一行的N个数据块与第二行的N个数据块分别进行一对一配对处理,得到N个数据块集合;
利用所述N个数据块集合,生成N个局部冗余块,其包括通过对所述数据块集合Ai进行奇偶校验处理,生成与所述每个数据块集合Ai相对应的局部冗余块Si;
将所述N个局部冗余块依次放置到所述N*N阵列码Xcode的第N+1行中;
解码恢复模块,用于在检测到所述(N+1)*N阵列码Xcode中的第I列失效时,利用所述两行局部编码数据行中的数据块和所述局部冗余块行中的局部冗余块,分别恢复出所述第I列中且位于局部编码数据行中的两个数据块和位于第(N+1)行的局部冗余块,以及利用所恢复出所述第I列中的两个数据块和所述局部冗余块,分别恢复所述第I列中的(N-2)个剩余数据。
CN201911251196.0A 2019-12-09 2019-12-09 一种降低阵列码Xcode修复的编译码方法及装置 Active CN111143108B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911251196.0A CN111143108B (zh) 2019-12-09 2019-12-09 一种降低阵列码Xcode修复的编译码方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911251196.0A CN111143108B (zh) 2019-12-09 2019-12-09 一种降低阵列码Xcode修复的编译码方法及装置

Publications (2)

Publication Number Publication Date
CN111143108A CN111143108A (zh) 2020-05-12
CN111143108B true CN111143108B (zh) 2023-05-02

Family

ID=70517796

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911251196.0A Active CN111143108B (zh) 2019-12-09 2019-12-09 一种降低阵列码Xcode修复的编译码方法及装置

Country Status (1)

Country Link
CN (1) CN111143108B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101313589A (zh) * 2005-09-27 2008-11-26 高通股份有限公司 冗余数据编码方法和装置
CN102681793A (zh) * 2012-04-16 2012-09-19 华中科技大学 一种基于纠删码集群存储系统的局部式数据更新方法
CN105353974A (zh) * 2015-10-08 2016-02-24 华东交通大学 一种适用于磁盘阵列及分布式存储系统的二容错编码方法
CN105930232A (zh) * 2016-05-12 2016-09-07 南京大学 一种利用网络拓扑信息的简单再生码修复方法
CN107086870A (zh) * 2017-03-16 2017-08-22 东莞理工学院 修复多节点失效的mds阵列码编码以及解码方法
CN107395207A (zh) * 2017-07-12 2017-11-24 东莞理工学院 多容错性的mds 阵列码编码以及修复方法
CN108228382A (zh) * 2018-01-11 2018-06-29 成都信息工程大学 一种针对evenodd码单盘故障的数据恢复方法
CN110457161A (zh) * 2019-07-26 2019-11-15 成都信息工程大学 一种高效高可靠的大数据存储系统、方法、计算机程序

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101313589A (zh) * 2005-09-27 2008-11-26 高通股份有限公司 冗余数据编码方法和装置
CN102681793A (zh) * 2012-04-16 2012-09-19 华中科技大学 一种基于纠删码集群存储系统的局部式数据更新方法
CN105353974A (zh) * 2015-10-08 2016-02-24 华东交通大学 一种适用于磁盘阵列及分布式存储系统的二容错编码方法
CN105930232A (zh) * 2016-05-12 2016-09-07 南京大学 一种利用网络拓扑信息的简单再生码修复方法
CN107086870A (zh) * 2017-03-16 2017-08-22 东莞理工学院 修复多节点失效的mds阵列码编码以及解码方法
CN107395207A (zh) * 2017-07-12 2017-11-24 东莞理工学院 多容错性的mds 阵列码编码以及修复方法
CN108228382A (zh) * 2018-01-11 2018-06-29 成都信息工程大学 一种针对evenodd码单盘故障的数据恢复方法
CN110457161A (zh) * 2019-07-26 2019-11-15 成都信息工程大学 一种高效高可靠的大数据存储系统、方法、计算机程序

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种低单盘故障恢复开销的局部修复码;萧枫等;《计算机工程与应用》;20180915(第18期);71-78 *
基于多斜率码链的阵列纠删码;唐聃等;《计算机应用》;20170410(第04期);28-32 *

Also Published As

Publication number Publication date
CN111143108A (zh) 2020-05-12

Similar Documents

Publication Publication Date Title
US11531593B2 (en) Data encoding, decoding and recovering method for a distributed storage system
US9195551B2 (en) Enhanced storage of metadata utilizing improved error detection and correction in computer memory
CN112000512B (zh) 一种数据修复方法及相关装置
CN104347122B (zh) 一种消息式内存模组的访存方法和装置
US20120331368A1 (en) Systems and methods for performing concatenated error correction
CN111078460B (zh) 一种快速纠删码计算方法
CN106874140B (zh) 数据存储方法及装置
CN108228382B (zh) 一种针对evenodd码单盘故障的数据恢复方法
CN113505019A (zh) 一种纠删码数据及校验恢复方法、装置、设备及可读介质
WO2019246527A1 (en) Method and apparatus for improved data recovery in data storage systems
US8180744B2 (en) Managing storage of data in a data structure
CN113168882B (zh) 一种编码方法、译码方法以及存储控制器
CN114510368A (zh) 一种基于rs纠删码的编解码加速方法及系统
US9639421B2 (en) Operating method of flash memory system
CN111143108B (zh) 一种降低阵列码Xcode修复的编译码方法及装置
CN107665152B (zh) 一类纠删码的译码方法
CN111158946B (zh) 一种降低阵列码Xcode修复的编码方法及装置
US20180122494A1 (en) Raid decoding architecture with reduced bandwidth
CN110990375B (zh) 一种基于调节矩阵的异构部分重复码的构造方法
KR102007163B1 (ko) 인코더, 디코더 및 이를 포함하는 반도체 장치
CN210110352U (zh) 纠正NAND Flash中多比特错误的ECC装置
CN110209598B (zh) 一种高速缓冲存储器、一种数据读写控制方法及系统
CN106911793B (zh) I/o优化的分布式存储数据修复方法
CN112000509B (zh) 一种基于向量指令的纠删码编码方法、系统及装置
CN111539870B (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240122

Address after: 230000 B-1015, wo Yuan Garden, 81 Ganquan Road, Shushan District, Hefei, Anhui.

Patentee after: HEFEI MINGLONG ELECTRONIC TECHNOLOGY Co.,Ltd.

Country or region after: China

Address before: 610225, No. 24, Section 1, Xuefu Road, Southwest Economic Development Zone, Chengdu, Sichuan

Patentee before: CHENGDU University OF INFORMATION TECHNOLOGY

Country or region before: China

TR01 Transfer of patent right