CN107656832A - 一种低数据重建开销的纠删码方法 - Google Patents

一种低数据重建开销的纠删码方法 Download PDF

Info

Publication number
CN107656832A
CN107656832A CN201710841960.4A CN201710841960A CN107656832A CN 107656832 A CN107656832 A CN 107656832A CN 201710841960 A CN201710841960 A CN 201710841960A CN 107656832 A CN107656832 A CN 107656832A
Authority
CN
China
Prior art keywords
group
matrix
block
global
data
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.)
Granted
Application number
CN201710841960.4A
Other languages
English (en)
Other versions
CN107656832B (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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and 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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201710841960.4A priority Critical patent/CN107656832B/zh
Publication of CN107656832A publication Critical patent/CN107656832A/zh
Application granted granted Critical
Publication of CN107656832B publication Critical patent/CN107656832B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明公开了一种低数据重建开销的纠删码方法,包括:数据分块步骤、数据编码步骤、检查数据块状态步骤、根据失效块进行修复划分步骤以及相应的失效修复步骤,本发明结合了网络编码中蝴蝶码优秀修复带宽性质和局部重建的组内重建方法,可减少系统中数据重建时需求的磁盘读取和网络带宽传输。在本发明中,每个组具有两个校验块并利用局部重建码的组内编码来维持组内的最优修复带宽,再以部分校验块编码所有数据块来保证系统可靠性。相比局部重建码,该方法的组内校验具有更高的可靠性,所以需要的全局校验个数较少,故而可以在相等的存储开销下具有更低的修复带宽。

Description

一种低数据重建开销的纠删码方法
技术领域
本发明属于计算机存储技术领域,更具体地,涉及一种低数据重建开销的纠删码方法。
背景技术
纠删码是一种保证数据冗余的编码方法,它首先将原始数据分裂为等大的数据块,然后再将数据块编码为校验块。当若干个数据块或校验块丢失时,纠删码技术可以保证原始数据仍然可以恢复。该技术广泛地应用在分布式存储系统和云存储系统上来提高系统可靠性,以防止磁盘失效或数据丢失等导致的数据不可访问。
传统的编码方法中,n是数据块和校验块的总个数,k是数据块个数,m=n-k是校验块个数。首先,将大小为M的原始数据等分为k个数据块:D0、D1、…、Dk-1,编码之后产生m个编码块:C0、C1、…、Cm-1,数据块、编码块会存储在n个不同的存储节点上。存储节点是存储设备的逻辑抽象,既可以是一个磁盘也可以是一个存储服务器。相比于传统的副本技术,纠删码技术可以在较低的存储开销下提供与之对等的系统可靠性。然而,纠删码在数据修复过程中需要读取并传输多个磁盘上的数据,占用大量的存储资源和网络资源,所以在性能方面不及副本策略。以(n,k)里德-所罗门编码为例,只要该数据可修复,都需要k块整块数据块或校验块进行重建,所需要的数据量都是M。
为了减小修复时的带宽,局部重建码(Local Reconstruction Codes,LRC)首先用部分校验块编码所有数据块来维持系统可靠性,然后对数据块进行分组并使用组内相互独立的编码,从而可以将大部分单点失效的重建约束在组内进行,通过增加存储开销的方式减少了修复开销。最小存储再生码中的蝴蝶码(Butterfly Coes),由于将编码块进行指数性的细粒度划分,可以通过有选择性地选取可以重复使用的一些片段参与修复来实现最佳修复带宽。在单点失效时,通过网络连接除失效块之外的所有有效块,每个块上按照一定规则下载一半的数据量来修复损坏的数据,可以有效地提高磁盘IO效率并减小修复带宽。但因为该方式只能有两个校验块,所以具有较大的局限性。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种低数据重建开销的纠删码方法,由此解决现有的局部重建码存在的存储开销较大以及蝴蝶码中只能有两个校验块而具有较大局限性的技术问题。
为实现上述目的,本发明提供了一种低数据重建开销的纠删码方法,包括:
(1)将数据量为M的原始文件等分为k个数据块,将k个数据块分别保存在k个数据节点上,并将k个数据块分为l/2组;
(2)根据各组内数据块的个数将各组内的每个数据块分为多个数据片段,由各组对应的数据片段的布尔矩阵得到各组对应的两个局部校验块,分别由各组对应的两个局部校验块组成各组的局部生成矩阵;
(3)由所有k个数据块的线性组合生成全局生成矩阵,通过分别计算全局生成矩阵中各行向量的所有数据块的乘积,得到了m个全局校验块;
(4)依次检查各数据节点上的数据块是否出错或丢失,是则执行步骤(5),否则不作处理;
(5)获取所有出现错误的组中失效的数据信息,记录各出现错误的组编号与各出现错误的组的额外校验块需求个数,根据局部校验组的校验个数与所有额外校验块需求个数的关系,确定是采用组内校验参与修复还是采用组内校验与全局校验共同参与修复的方式;
(6)若采用组内校验参与修复,则获取组内参与修复的片段内容以及组内生成矩阵中相关的行向量以生成中间矩阵,将中间矩阵进行重排得到修复矩阵,由修复矩阵进行数据修复;
(7)若采用组内校验与全局校验共同参与修复,则根据需要全局修复参与的局部组编号与其对应的失效块序号,读取全局生成矩阵中与需要全局修复参与的局部组相关的全局校验子矩阵,然后基于需要全局修复参与的局部组的局部生成矩阵、单位矩阵以及全局校验子矩阵生成校验矩阵,进而由该校验矩阵得到修复矩阵,以完成数据修复。
优选地,步骤(2)具体包括:
(2.1)对于每个分组,若该组内数据块的个数为k1,则将该组内的每个数据块划分为个数据片段;
(2.2)获取该组对应的数据片段的布尔矩阵其中,行k1列的矩阵,将表示为a和b均是具有个元素的列向量,A和B均为行k1-1列的布尔矩阵;
(2.3)若k1=2,则该组对应的校验块P0和校验块P1的编码规则如下:其中,表示布尔矩阵中的元素值;
(2.4)若k1>2,则该组对应的校验块P0和校验块P1的编码规则如下:其中表示k1×k1阶的转置矩阵,在中的反对角线上的元素均为1,其它元素均为零;
(2.5)由该组对应的校验块P0和校验块P1组成该组的局部生成矩阵Gl为:
优选地,步骤(3)具体包括:
(3.1)由所有k个数据块的线性组合生成全局生成矩阵Gg,其中,Gg为m行k列的矩阵;
(3.2)通过分别计算全局生成矩阵Gg中各行向量的所有数据块的乘积,得到m个全局校验块Cg,i,i=0~m,其中,第i个校验块Cg,i为全局生成矩阵Gg的第i行子矩阵与k个数据块的乘积,表示为:其中,αi表示全局生成矩阵Gg在有限域下的系数,其中,D0,D1,...,Dk-1表示k个数据块。
优选地,步骤(5)具体包括:
(5.1)根据状态检查,获取出现错误的组中失效的数据块编号以及校验块编号,由失效的数据块编号以及校验块编号生成丢失块集合;
(5.2)将丢失块集合进行分解,获取每个局部校验组中失效的数据信息;
(5.3)启动局部修复预处理,在出现错误的组中,如果该组的错误个数大于局部校验组的校验块个数,则记录该组的编号与所需的额外校验块的个数;
(5.4)在全局修复预处理中,统计所有出现错误的组中的额外校验块的个数之和,若该和值大于全局校验块个数,则执行步骤(5.6),否则执行步骤(5.5);
(5.5)返回成功状态,表示该丢失块集合能够完全修复,则获取每组错误划分,进行局部修复,如果该组错误参数大于0,代表该修复需要组内校验与全局校验共同参与;
(5.6)返回错误状态,表示该丢失块集合无法完全修复。
优选地,步骤(6)具体包括组内单错修复与组内双错修复:
其中,组内单错修复包括:
(6.1)获取单点错误下参与修复的片段内容以及出现错误的组的局部生成矩阵中相关的行向量,生成中间矩阵M,其中,中间矩阵M为行向量的组合并在末尾插入相关校验块编号的列向量;
(6.2)将中间矩阵M中失效块的相应编号增加,以大于所有编码块编号并按照原有顺序排列,将中间矩阵M的编号值根据中间矩阵M在整个矩阵中的大小排名重新编号,以获得最终修复矩阵Mr
(6.3)修复矩阵Mr中的编号与重新获取并整合后的参与修复的块编号相契合,并通过集合记录需求修复的编号,对Mr进行行向量遍历,如果该行向量内需求修复编号个数为1,则修复,并去掉需求修复编号集合中的相应值,当集合为空值时表明单点修复完成;
组内双错修复包括:
(6.4)通过完全获取出现错误的组的局部生成矩阵生成中间矩阵M',并在M'末尾插入相关校验块编号的列向量,将M'经过需修复片段编号重排方式得到修复矩阵Mr',由Mr'进行修复。
优选地,步骤(7)具体包括:
(7.1)若需要全局修复参与的局部组内的数据块个数为ki,则生成一个行,列的单位矩阵I;
(7.2)根据需要全局修复参与的局部组编号与其对应的失效块序号,读取全局生成矩阵Gg中与需要全局修复参与的局部组相关的全局校验子矩阵,其中,该全局校验子矩阵为为X-2行ki列的矩阵,X表示需要全局修复参与的局部组内的错误个数;
(7.3)将该全局校验子矩阵乘一个单位矩阵而扩展为行,列的矩阵Mg
(7.4)获取需要全局修复参与的局部组的局部生成矩阵Gl,将Gl从压缩矩阵还原成稀疏矩阵Ml,再与单位矩阵I以及全局校验子矩阵合并后,得到(X+ki)×2k-1行,列的校验矩阵其中,Cl,0、Cl,1分别表示组内在编码过程中生成的局部校验信息,Cg,0到Cg,x-2表示从全局生成矩阵Gg选取的X-2个全局校验块的该局部校验组数据块相关的编码信息;
(7.5)根据相应的组内失效编号集合,在M”中去掉相应的X组行向量,通过最后留下来的行,列矩阵求逆矩阵得到相应的修复矩阵Mr”;
(7.6)计算Mr”和数据片序列SDr以及校验片序列SCr的乘积以重建数据块,且其中,校验片序列SCr是经过了完整全局校验和其他有效组内数据块中间编码后并且只与本局部校验组相关的信息。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)局部重建码LRC是如今普遍应用在实际系统中的编码方式,与其相比,本发明在相同的存储开销下可以具有更低的重建开销,良好地增加了系统性能。此外,本发明在重建时需要获取更多的块参与修复,而每个块都只需要获取一半数据,所以可以通过增加磁盘读取的并行度来减小修复延迟。
(2)现存的再生码中,大部分都是需要存储开销大于2X,即数据块和校验块个数相近,因此不适用与真实场景,而Butterfly Codes也因为其只能容两个错而具有相当大的局限性。本发明无存储开销,容错能力也完全满足现如今的系统需求。因此,该纠删码可用以构建可扩展性高、灵活性强的系统。
附图说明
图1为本发明实施例提供的一种低数据重建开销的纠删码方法的流程示意图;
图2为本发明实施例提供的一种低数据重建开销的纠删码方法的总体流程示意图;
图3为失效块修复划分步骤的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明提供的一种低数据重建开销的纠删码方法,结合了网络编码中蝴蝶码优秀修复带宽性质和局部重建的组内重建方法,可减少系统中数据重建时需求的磁盘读取和网络带宽传输。局部重建码中全局校验块只是用来维持系统可靠性,对减少修复开销并没有帮助,反而增加了存储开销。而本发明中,每个组具有两个校验块并利用局部重建码的组内编码来维持组内的最优修复带宽,再以部分校验块编码所有数据块来保证系统可靠性。相比局部重建码,该方法的组内校验具有更高的可靠性,所以需要的全局校验个数较少,故而可以在相等的存储开销下具有更低的修复带宽。
如图1所示为本发明实施例公开的一种低数据重建开销的纠删码方法的流程示意图,在图1所示的方法中包括以下步骤:
(1)将数据量为M的原始文件等分为k个数据块,等分过程中数据不足时用0填充补齐并记录下来,将k个数据块分别保存在k个数据节点上,并将k个数据块分为l/2组;
其中,每个组内有两个局部校验块用来进行组内快速单点修复,m个全局校验块包含了所有k个数据块内容的编码,当组内校验无法完成修复时使用全局校验。
为了提高编解码时的计算速度,将每个块在逻辑上分为多个资源片段来更好地适应高速缓存大小,又因为方法包含了相互独立的组内编码和全局编码,因此,局部、全局编码使用的逻辑分片大小是互不影响的。局部校验中,假设该组包含的数据块个数为k,那么每个数据块Dj会等分为r个数据片,用p表示数据块j上的片段序号,则数据片段可以表示为Dj,p,p=0、…、r-1,r=2k-1,k≥2;在全局校验上,分片无固定要求,根据可用缓存大小调整;
(2)根据各组内数据块的个数将各组内的每个数据块分为多个数据片段,由各组对应的数据片段的布尔矩阵得到各组对应的两个局部校验块,分别由各组对应的两个局部校验块组成各组的局部生成矩阵;
在一个可选的实施方式中,步骤(2)具体包括:
(2.1)对于每个分组,若该组内数据块的个数为k1,则将该组内的每个数据块划分为个数据片段;
(2.2)获取该组对应的数据片段的布尔矩阵其中,行k1列的矩阵,将表示为a和b均是具有个元素的列向量,A和B均为行k1-1列的布尔矩阵;
(2.3)若k1=2,则该组对应的校验块P0和校验块P1的编码规则如下:其中,表示布尔矩阵中的元素值;
(2.4)若k1>2,则该组对应的校验块P0和校验块P1的编码规则如下:其中表示k1×k1阶的转置矩阵,在Mk1-1中的反对角线上的元素均为1,其它元素均为零,用于将其右边的矩阵或向量中的元素进行垂直翻转;
(2.5)由该组对应的校验块P0和校验块P1组成该组的局部生成矩阵Gl为:
其中,局部生成矩阵Gl的作用是在修复阶段通过有选择性选取相应的行向量进行修复,因为生成矩阵是参数只为1或0的稀疏矩阵,我们通过记录矩阵中1存在的列编号来压缩存储。
(3)由所有k个数据块的线性组合生成全局生成矩阵,通过分别计算全局生成矩阵中各行向量的所有数据块的乘积,得到了m个全局校验块;
在全局校验中,为了尽可能达到高可靠性,全局校验的参数也要和不同组内校验的参数是线性无关的。因此,可以通过枚举法,获得所有可能的失效种类下满足全局校验和组内校验线性无关的充分条件。再通过该充分条件的集合,在范德蒙矩阵中搜索出满足条件的全局参数。但是,该枚举法在全局校验块数量过多时会因找不出满足线性无关的参数组而失效,此时只能选取其中满足线性无关组最多的参数向量作为全局参数,该参数可能在某些特定的失效情况下无法正常修复数据,因此降低了一定的可靠性。不过,校验盘的个数越多代表着编码、更新与修复时需要的数据量越大,所以当今的实际系统中应用的纠删码一般不高于4个盘(全局校验个数一般不会大于2)。因此,本实施例方法中的全局校验个数一般适用于这些实际场景。具体地,可以通过搜索范德蒙矩阵来构造局部生成矩阵,运算规则都是基于有限域GF(2w),其中w为运算时编码比特最小单元,一般为2的幂次方,如8,6,32。具体地,步骤(3)的实现方式为:
(3.1)由所有k个数据块的线性组合生成全局生成矩阵Gg,其中,Gg为m行k列的矩阵,可以表示为:其中,αi,i=1,2,...,m表示的是全局生成矩阵Gg在有限域下的系数;
(3.2)通过分别计算全局生成矩阵Gg中各行向量的所有数据块的乘积,得到m个全局校验块Cg,i,i=0~m,其中,第i个校验块Cg,i为全局生成矩阵Gg的第i行子矩阵与k个数据块的乘积,表示为:其中,αi表示全局生成矩阵Gg在有限域下的系数,其中,D0,D1,...,Dk-1表示k个数据块。
其中,全局生成矩阵Gg的作用是可以满足RS码在有限个失效块下的残余的生成矩阵在有限域下可逆(即线性无关),则可以保证数据的恢复。
(4)定期依次检查各数据节点上的数据块是否出错或丢失,是则执行步骤(5),否则不作处理;
(5)获取所有出现错误的组中失效的数据信息,记录各出现错误的组编号与各出现错误的组的额外校验块需求个数,根据局部校验组的校验个数与所有额外校验块需求个数的关系,确定是采用组内校验参与修复还是采用组内校验与全局校验共同参与修复的方式;
在一个可选的实施方式中,步骤(5)具体包括:
(5.1)根据状态检查,获取出现错误的组中失效的数据块编号以及校验块编号,由失效的数据块编号以及校验块编号生成丢失块集合;
(5.2)将丢失块集合进行分解,获取每个局部校验组中失效的数据信息;
(5.3)启动局部修复预处理,在出现错误的组中,如果该组的错误个数大于局部校验组的校验块个数,则记录该组的编号与所需的额外校验块的个数;
(5.4)在全局修复预处理中,统计所有出现错误的组中的额外校验块的个数之和,若该和值大于全局校验块个数,则执行步骤(5.6),否则执行步骤(5.5);
(5.5)返回成功状态,表示该丢失块集合能够完全修复,则获取每组错误划分,进行局部修复,如果该组错误参数大于0,代表该修复需要组内校验与全局校验共同参与;
(5.6)返回错误状态,表示该丢失块集合无法完全修复。
(6)若采用组内校验参与修复,则获取组内参与修复的片段内容以及组内生成矩阵中相关的行向量以生成中间矩阵,将中间矩阵进行重排得到修复矩阵,由修复矩阵进行数据修复;
在一个可选的实施方式中,步骤(6)具体包括组内单错修复与组内双错修复:
其中,因为组内的每个块上都只会获取一半的数据量参与解码以实现修复时的带宽最优,通过编码步骤,可以获取第i个局部校验组的局部生成矩阵,因此,组内单错修复具体包括:
(6.1)获取单点错误下参与修复的片段内容以及出现错误的组的局部生成矩阵中相关的行向量,生成中间矩阵M,其中,中间矩阵M为行向量的组合并在末尾插入相关校验块编号的列向量;
(6.2)将中间矩阵M中失效块的相应编号增加,以大于所有编码块编号并按照原有顺序排列,将中间矩阵M的编号值根据中间矩阵M在整个矩阵中的大小排名重新编号,以获得最终修复矩阵Mr
(6.3)修复矩阵Mr中的编号与重新获取并整合后的参与修复的块编号相契合,并通过集合记录需求修复的编号,对Mr进行行向量遍历,如果该行向量内需求修复编号个数为1,则修复,并去掉需求修复编号集合中的相应值,当集合为空值时表明单点修复完成;
双容错方式与组内单点纠错方法近似,因此组内双错修复具体包括:
(6.4)通过完全获取出现错误的组的局部生成矩阵生成中间矩阵M',并在M'末尾插入相关校验块编号的列向量,因为有些行向量中完全包含了校验块的所有相关数据片,则该段直接被校验片段替换以减少运算次数,最后将M'经过需修复片段编号重排方式得到修复矩阵Mr',由Mr'进行修复。
(7)若采用组内校验与全局校验共同参与修复,则根据需要全局修复参与的局部组编号与其对应的失效块序号,读取全局生成矩阵中与需要全局修复参与的局部组相关的全局校验子矩阵,然后基于需要全局修复参与的局部组的局部生成矩阵、单位矩阵以及全局校验子矩阵生成校验矩阵,进而由该校验矩阵得到修复矩阵,以完成数据修复。
其中,在超出局部修复能力时,则需要全局校验参与修复,修复中的运算规则基于有限域GF(2w),此时首先是划分区域,因为全局容错包含了多个组,那么,先要将其他正常组内的数据通过全局编码时的编码矩阵生成全局校验的中间值,汇总并与全局校验进行运算后得到的即为该组内修复时的全局容错中间值。具体包括以下步骤:
(7.1)若需要全局修复参与的局部组内的数据块个数为ki,则生成一个行,列的单位矩阵I;
(7.2)根据步骤(5.2)至(5.5)获取需要全局修复参与的局部组编号与其对应的失效块序号,读取全局生成矩阵Gg中与需要全局修复参与的局部组相关的全局校验子矩阵,其中,该全局校验子矩阵为为X-2行ki列的矩阵,X表示需要全局修复参与的局部组内的错误个数;
(7.3)将该全局校验子矩阵乘一个单位矩阵而扩展为行,列的矩阵Mg
(7.4)获取需要全局修复参与的局部组的局部生成矩阵Gl,将Gl从压缩矩阵还原成稀疏矩阵Ml,再与单位矩阵I以及全局校验子矩阵合并后,得到(X+ki)×2k-1行,列的校验矩阵其中,上述矩阵变化即为现存有效块在编码过程中的生成方式,Cl,0、Cl,1分别表示组内在编码过程中生成的局部校验信息,Cg,0到Cg,x-2表示从全局生成矩阵Gg选取的X-2个全局校验块的该局部校验组数据块相关的编码信息;
(7.5)根据相应的组内失效编号集合,在M”中去掉相应的X组行向量,通过最后留下来的行,列矩阵求逆矩阵得到相应的修复矩阵Mr”;
(7.6)计算Mr”和数据片序列SDr以及校验片序列SCr的乘积以重建数据块,且其中,由于全局校验是多个组的校验集合,在某个组进行修复时,应该把与该组无关的数据信息从该全局校验块中剔除,因此,校验序列片段是经过了完整全局校验和其他有效组内数据块中间编码后并且只与本局部校验组相关的信息。
以上的失效过程中,如果有组内的局部校验失效,则可以通过全局修复出组内数据块信息后,通过再一次编码或组内的单错、多错修复方式将失效的局部校验修复成功。
下面结合附图及实施例对本发明方法进行进一步详细说明。
如图2所示,本发明的实施例,结合一个k=6,l=4,m=1的实例,本实施方式包括数据分块步骤、数据编码步骤、检查数据块状态步骤、根据失效块进行修复划分步骤和相应的失效修复步骤:
(1)数据分块步骤:
将数据量为60MB的原始文件等分为6个10MB的数据块Dj,j=0、1、2、3、4、5,再将6个数据块分别保存在6个数据节点N0,N1,N2,N3,N4,N5上。其中,因为l=4,所以有两组局部校验组,因此,使用了指数型分片后各数据节点上的数据块Dj进而等分为4个数据片Dj,p,p=0、1、2、3。因为两组之间互相独立,所以组内数据块个数不一样时不同组下分片的个数也不同。对所有数据片赋予序号,数据片Dj,p为第j×4+p+1个数据片;
(2)数据编码步骤:
因为不同组之间相互独立且规则相同,所以在这里只介绍其中一组的编码步骤;
在k=3时,根据编码算法可得,生成矩阵是2行1列的分块矩阵,其中的每个子矩阵为一个4×12的矩阵,因为为纯异或,所以矩阵元素只有0和1。
为了高效存储,我们使用压缩矩阵进行位置信息存储。
而全局校验运算,因为只有一个校验节点且全局生成矩阵与组内分段大小无关,因此,相应的生成矩阵符合(6,1)里德-所罗门编码,即:
Gglobal=[1 2 22 23 24 25]
获取所有的生成矩阵信息后,分别计算出校验块信息,其中的组校验,既可以通过数据块直接参与递归算法从k=2直接递归至k=3得到校验块,又可以通过组内生成矩阵获取组内校验。
组内的每个校验块为10MB,每个校验块也被分为4个校验片,记作Pi,j,以P0,0和P1,3为例,其计算方式如下:
其中表示异或运算,Pi,j是局部校验片中编号第i×4+j+1个校验片,j=0~3。而全局校验中,需要所有数据块参与:
其计算方法为:
Cg,i代表的是全局校验节点Cg上的第i块校验片,运算规则基于有限域GF(28)。
(3)检查数据块状态步骤:
定期依次检查各数据节点上的数据块是否出错或丢失,是则转步骤(4);否则不作处理;
(4)失效块进行修复划分步骤,如图3所示,包括下述子步骤:
(4.1)因为根据不同失效块会有不同的修复方式,举例说明,例如,通过状态检查步骤后有失效集合{0,1,3,4,6},其中,数据节点编号为0~5,第一组校验节点为6~7,第二组校验节点为8~9,全局节点为10;
(4.2)通过局部校验划分将丢失集合分解为各组失效集合,即:{0,1,6}与{3,4};
(4.3)启动局部修复预处理,第一组失效集合为3,大于组内校验块个数,因此,记录映射关系{1,1},代表第一组需要额外1个全局校验块才能修复,而{3,4}并未超出该组校验容错能力,因此无需记录;
(4.4)在全局修复预处理中,从所有映射中统计所有额外校验块之和,值为1,等于全局校验个数,进行子步骤(4.5)。假如映射关系为{1,1},{2,1},代表组校验1组、2组共需要额外2个全局校验,数值大于全局校验个数,跳转子步骤(4.6);
(4.5)返回成功状态,表示该丢失块集合可以完全修复,并通过划分后的集合进行修复。如果映射表存在该组编号,代表需要全局校验节点参与修复过程;
(4.6)返回失败状态,表示该丢失块集合无法完全修复。
(5)修复数据块步骤:
根据组内和组间等错误,可划分出不同的修复模块,每个模块中都有相应的修复方式。
(5.1)组内单错修复:
如果数据块D1丢失,应当读取所有组相关的块,即D0、D2、D6、D7,根据Butterfly的修复规则,获取的数据片片段编号为:{D0,1,D0,2,D2,1,D2,2,P0,1,P0,2,P1,1,P1,2},相应的组内编号记录为{0,3,8,11,12,15,16,19};
获取生成矩阵Gl中的相应行向量生成中间矩阵M,并将相应的所有编码块编号的列向量添入中间矩阵末行,该矩阵为压缩矩阵。
其中-1是用来方便后续列向量插入,相当于空值。
而通过将失效块的编号增加,使其大于所有编码块编号并按照原有顺序排列,其中编号4~7即为失效块D1,0~D1,3
最后,将该中间矩阵M的编号值根据其在整个矩阵中的大小排名重新编号,获得最终修复矩阵Mr
该修复矩阵中,编号契合重新获取并整合后的参与修复块编号。编号0~7为修复向量中的0~7组,而8~11即为失效编号,即失效块。在修复过程中,遍历Mr矩阵,如果该行向量中只有一个失效,则修复,所以,并且去掉需求修复编号集合中的相应值,当该需求集合为空值时表明单点修复完成,失效集合{8,9,10,11}变化过程如下:
{9,10,11}-{9,10}-{10}-{};
(5.2)组内双错修复:
双错修复情况下,如果块D0,D1丢失,应当读取组内所有有效的块,即D2、D6、D7,并获取的所有数据片片段,其相应的组内编号记录为:
{8,9,10,11,12,13,14,15,16,17,18,19}
获取生成矩阵Gl中的所有行向量生成中间矩阵M,并将相应的所有编码块编号的列向量添入中间矩阵末行。
因为中间矩阵中例如片段0、4、8编码成12,但在编码19时也有0、4、8片段参与,则可以直接用12替换。因此中间矩阵中有些行向量中完全包含了校验块的所有相关数据片,则该段直接被校验片段替换以减少运算次数。
替换后,通过将失效块的编号增加,使其大于所有编码块编号并按照原有顺序排列。最后,将该中间矩阵M的编号值根据其在整个矩阵中的大小排名重新编号,获得最终修复矩阵Mr
该修复矩阵中,编号契合重新获取并整合后的参与修复块编号。编号0~11为参与的修复向量编号,而12~19即为失效编号,即失效块。在修复过程中,遍历Mr矩阵,如果该行向量中只有一个失效,则修复,所以,并且去掉需求修复编号集合中的相应值,当该需求集合为空值时表明单点修复完成,失效集合{12,13,14,15,16,17,18,19}变化过程如下:
第一次遍历:{12,13,14,15,16,17,18}-{12,13,14,15,16,17}
第二次遍历:{12,13,15,16,17}-{12,13,16,17}
第三次遍历:{12,13,16}-{12,13}
第四次遍历:{13}-{}
(5.3)全局多错修复:
以D0、D1、D2错误为例,组内校验个数不够,此时需要全局校验参与修复,运算是基于有限域GF(28)。而全局校验包含了D0~D5的校验内容,所以,首先是编码D3~D5,进而与全局校验异或生成校验中间值,而该中间值则仅与D0~D3相关,具体的运算步骤如下:
其中的C3~C5即为数据块3~5的全局校验中间值,因此,所需的数据块0~2的校验值计算方法如下:
因为是组校验和全局校验共同参与修复,则在获取了校验中间值后,全局校验会通过张量乘一个单位矩阵来适应局部校验的分片策略。构成中间校验矩阵Mg
而组内校验向量,因为是压缩矩阵,所以首先要还原成稀疏矩阵Ml
最后单位矩阵I和全局校验子矩阵合并后,成为一个24行,12列的校验矩阵M,
通过去掉失效方面的行向量(本错误集合中则为所有单位矩阵相关向量中的3组4行向量),使得留下来的修复向量Mr即为3组校验向量。
计算Mr的逆矩阵Mr -1,通过该逆矩阵修复出失效数据盘,计算方式如下:
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种低数据重建开销的纠删码方法,其特征在于,包括:
(1)将数据量为M的原始文件等分为k个数据块,将k个数据块分别保存在k个数据节点上,并将k个数据块分为l/2组;
(2)根据各组内数据块的个数将各组内的每个数据块分为多个数据片段,由各组对应的数据片段的布尔矩阵得到各组对应的两个局部校验块,分别由各组对应的两个局部校验块组成各组的局部生成矩阵;
(3)由所有k个数据块的线性组合生成全局生成矩阵,通过分别计算全局生成矩阵中各行向量的所有数据块的乘积,得到了m个全局校验块;
(4)依次检查各数据节点上的数据块是否出错或丢失,是则执行步骤(5),否则不作处理;
(5)获取所有出现错误的组中失效的数据信息,记录各出现错误的组编号与各出现错误的组的额外校验块需求个数,根据局部校验组的校验个数与所有额外校验块需求个数的关系,确定是采用组内校验参与修复还是采用组内校验与全局校验共同参与修复的方式;
(6)若采用组内校验参与修复,则获取组内参与修复的片段内容以及组内生成矩阵中相关的行向量以生成中间矩阵,将中间矩阵进行重排得到修复矩阵,由修复矩阵进行数据修复;
(7)若采用组内校验与全局校验共同参与修复,则根据需要全局修复参与的局部组编号与其对应的失效块序号,读取全局生成矩阵中与需要全局修复参与的局部组相关的全局校验子矩阵,然后基于需要全局修复参与的局部组的局部生成矩阵、单位矩阵以及全局校验子矩阵生成校验矩阵,进而由该校验矩阵得到修复矩阵,以完成数据修复。
2.根据权利要求1所述的方法,其特征在于,步骤(2)具体包括:
(2.1)对于每个分组,若该组内数据块的个数为k1,则将该组内的每个数据块划分为个数据片段;
(2.2)获取该组对应的数据片段的布尔矩阵其中,行k1列的矩阵,将表示为a和b均是具有个元素的列向量,A和B均为行k1-1列的布尔矩阵;
(2.3)若k1=2,则该组对应的校验块P0和校验块P1的编码规则如下:其中,表示布尔矩阵中的元素值;
(2.4)若k1>2,则该组对应的校验块P0和校验块P1的编码规则如下:其中表示k1×k1阶的转置矩阵,在中的反对角线上的元素均为1,其它元素均为零;
(2.5)由该组对应的校验块P0和校验块P1组成该组的局部生成矩阵Gl为:
3.根据权利要求1所述的方法,其特征在于,步骤(3)具体包括:
(3.1)由所有k个数据块的线性组合生成全局生成矩阵Gg,其中,Gg为m行k列的矩阵;
(3.2)通过分别计算全局生成矩阵Gg中各行向量的所有数据块的乘积,得到m个全局校验块Cg,i,i=0~m,其中,第i个校验块Cg,i为全局生成矩阵Gg的第i行子矩阵与k个数据块的乘积,表示为:其中,αi表示全局生成矩阵Gg在有限域下的系数,其中,D0,D1,...,Dk-1表示k个数据块。
4.根据权利要求1至3任意一项所述的方法,其特征在于,步骤(5)具体包括:
(5.1)根据状态检查,获取出现错误的组中失效的数据块编号以及校验块编号,由失效的数据块编号以及校验块编号生成丢失块集合;
(5.2)将丢失块集合进行分解,获取每个局部校验组中失效的数据信息;
(5.3)启动局部修复预处理,在出现错误的组中,如果该组的错误个数大于局部校验组的校验块个数,则记录该组的编号与所需的额外校验块的个数;
(5.4)在全局修复预处理中,统计所有出现错误的组中的额外校验块的个数之和,若该和值大于全局校验块个数,则执行步骤(5.6),否则执行步骤(5.5);
(5.5)返回成功状态,表示该丢失块集合能够完全修复,则获取每组错误划分,进行局部修复,如果该组错误参数大于0,代表该修复需要组内校验与全局校验共同参与;
(5.6)返回错误状态,表示该丢失块集合无法完全修复。
5.根据权利要求4所述的方法,其特征在于,步骤(6)具体包括组内单错修复与组内双错修复:
其中,组内单错修复包括:
(6.1)获取单点错误下参与修复的片段内容以及出现错误的组的局部生成矩阵中相关的行向量,生成中间矩阵M,其中,中间矩阵M为行向量的组合并在末尾插入相关校验块编号的列向量;
(6.2)将中间矩阵M中失效块的相应编号增加,以大于所有编码块编号并按照原有顺序排列,将中间矩阵M的编号值根据中间矩阵M在整个矩阵中的大小排名重新编号,以获得最终修复矩阵Mr
(6.3)修复矩阵Mr中的编号与重新获取并整合后的参与修复的块编号相契合,并通过集合记录需求修复的编号,对Mr进行行向量遍历,如果该行向量内需求修复编号个数为1,则修复,并去掉需求修复编号集合中的相应值,当集合为空值时表明单点修复完成;
组内双错修复包括:
(6.4)通过完全获取出现错误的组的局部生成矩阵生成中间矩阵M',并在M'末尾插入相关校验块编号的列向量,将M'经过需修复片段编号重排方式得到修复矩阵Mr',由Mr'进行修复。
6.根据权利要求5所述的方法,其特征在于,步骤(7)具体包括:
(7.1)若需要全局修复参与的局部组内的数据块个数为ki,则生成一个行,列的单位矩阵I;
(7.2)根据需要全局修复参与的局部组编号与其对应的失效块序号,读取全局生成矩阵Gg中与需要全局修复参与的局部组相关的全局校验子矩阵,其中,该全局校验子矩阵为为X-2行ki列的矩阵,X表示需要全局修复参与的局部组内的错误个数;
(7.3)将该全局校验子矩阵乘一个单位矩阵而扩展为行,列的矩阵Mg
(7.4)获取需要全局修复参与的局部组的局部生成矩阵Gl,将Gl从压缩矩阵还原成稀疏矩阵Ml,再与单位矩阵I以及全局校验子矩阵合并后,得到(X+ki)×2k-1行,列的校验矩阵其中,Cl,0、Cl,1分别表示组内在编码过程中生成的局部校验信息,Cg,0到Cg,x-2表示从全局生成矩阵Gg选取的X-2个全局校验块的该局部校验组数据块相关的编码信息;
(7.5)根据相应的组内失效编号集合,在M”中去掉相应的X组行向量,通过最后留下来的行,列矩阵求逆矩阵得到相应的修复矩阵Mr”;
(7.6)计算Mr”和数据片序列SDr以及校验片序列SCr的乘积以重建数据块,且其中,校验片序列SCr是经过了完整全局校验和其他有效组内数据块中间编码后并且只与本局部校验组相关的信息。
CN201710841960.4A 2017-09-18 2017-09-18 一种低数据重建开销的纠删码方法 Active CN107656832B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710841960.4A CN107656832B (zh) 2017-09-18 2017-09-18 一种低数据重建开销的纠删码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710841960.4A CN107656832B (zh) 2017-09-18 2017-09-18 一种低数据重建开销的纠删码方法

Publications (2)

Publication Number Publication Date
CN107656832A true CN107656832A (zh) 2018-02-02
CN107656832B CN107656832B (zh) 2019-10-25

Family

ID=61130657

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710841960.4A Active CN107656832B (zh) 2017-09-18 2017-09-18 一种低数据重建开销的纠删码方法

Country Status (1)

Country Link
CN (1) CN107656832B (zh)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108347306A (zh) * 2018-03-16 2018-07-31 长安大学 分布式存储系统中类局部重构码编码及节点故障修复方法
CN108683422A (zh) * 2018-03-27 2018-10-19 长安大学 一种可容多错交叉循环卷积码的局部性修复编码方法
CN108762978A (zh) * 2018-03-29 2018-11-06 长安大学 一种局部部分重复循环码的分组构造方法
CN109062724A (zh) * 2018-07-21 2018-12-21 湖北大学 一种纠删码转换方法及终端
CN109358980A (zh) * 2018-09-25 2019-02-19 华东交通大学 一种对数据更新和单磁盘错误修复友好的raid6编码方法
CN109491835A (zh) * 2018-10-25 2019-03-19 哈尔滨工程大学 一种基于动态分组码的数据容错方法
CN110532128A (zh) * 2019-08-16 2019-12-03 西安交通大学 一种降低数据更新代价的纠删码编码及数据重构方法
WO2020043203A1 (zh) * 2018-08-31 2020-03-05 杭州海康威视系统技术有限公司 一种基于纠删码的数据存储方法、装置及电子设备
CN110895843A (zh) * 2018-08-22 2020-03-20 高新兴科技集团股份有限公司 智能门禁卡权限管理方法、装置、计算机存储介质及设备
CN110895497A (zh) * 2019-12-09 2020-03-20 成都信息工程大学 一种分布式存储中降低纠删码修复的方法及装置
CN111104093A (zh) * 2018-10-25 2020-05-05 贵州白山云科技股份有限公司 有限域运算方法、系统、运算设备和计算机可读存储介质
CN111541512A (zh) * 2020-03-13 2020-08-14 中国科学院深圳先进技术研究院 数据的处理方法、终端设备、可读存储介质
CN112052114A (zh) * 2020-08-27 2020-12-08 江苏超流信息技术有限公司 数据存储及恢复方法、编解码器及编解码系统
WO2021012164A1 (zh) * 2019-07-22 2021-01-28 华为技术有限公司 数据重构的方法、装置、计算机设备、存储介质及系统
CN113258938A (zh) * 2021-06-03 2021-08-13 成都信息工程大学 一种单节点故障快速修复纠删码的构造方法
CN113505019A (zh) * 2021-05-14 2021-10-15 山东云海国创云计算装备产业创新中心有限公司 一种纠删码数据及校验恢复方法、装置、设备及可读介质
CN113687975A (zh) * 2021-07-14 2021-11-23 重庆大学 数据处理方法、装置、设备及存储介质
CN114866561A (zh) * 2022-05-03 2022-08-05 中国人民解放军国防科技大学 一种组合本地纠删码联盟链存储方法及系统
WO2023056904A1 (zh) * 2021-10-09 2023-04-13 阿里云计算有限公司 校验块的生成方法及装置
WO2023165536A1 (zh) * 2022-03-03 2023-09-07 山东云海国创云计算装备产业创新中心有限公司 一种数据存储方法、系统、设备以及介质
WO2024098647A1 (zh) * 2022-11-11 2024-05-16 苏州元脑智能科技有限公司 一种校验码恢复方法、系统、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461781A (zh) * 2014-12-01 2015-03-25 华中科技大学 一种基于纠删码的数据块重建方法
US9116833B1 (en) * 2014-12-18 2015-08-25 Igneous Systems, Inc. Efficiency for erasure encoding
CN106100801A (zh) * 2016-08-29 2016-11-09 湖南大学 一种云存储系统的非均匀纠删编码方法
CN106788891A (zh) * 2016-12-16 2017-05-31 陕西尚品信息科技有限公司 一种适用于分布式存储的最优局部修复码构造方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461781A (zh) * 2014-12-01 2015-03-25 华中科技大学 一种基于纠删码的数据块重建方法
US9116833B1 (en) * 2014-12-18 2015-08-25 Igneous Systems, Inc. Efficiency for erasure encoding
CN106100801A (zh) * 2016-08-29 2016-11-09 湖南大学 一种云存储系统的非均匀纠删编码方法
CN106788891A (zh) * 2016-12-16 2017-05-31 陕西尚品信息科技有限公司 一种适用于分布式存储的最优局部修复码构造方法

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108347306B (zh) * 2018-03-16 2020-09-11 长安大学 分布式存储系统中类局部重构码编码及节点故障修复方法
CN108347306A (zh) * 2018-03-16 2018-07-31 长安大学 分布式存储系统中类局部重构码编码及节点故障修复方法
CN108683422A (zh) * 2018-03-27 2018-10-19 长安大学 一种可容多错交叉循环卷积码的局部性修复编码方法
CN108762978A (zh) * 2018-03-29 2018-11-06 长安大学 一种局部部分重复循环码的分组构造方法
CN108762978B (zh) * 2018-03-29 2021-03-26 长安大学 一种局部部分重复循环码的分组构造方法
CN109062724A (zh) * 2018-07-21 2018-12-21 湖北大学 一种纠删码转换方法及终端
CN109062724B (zh) * 2018-07-21 2019-04-05 湖北大学 一种纠删码转换方法及终端
CN110895843A (zh) * 2018-08-22 2020-03-20 高新兴科技集团股份有限公司 智能门禁卡权限管理方法、装置、计算机存储介质及设备
CN110895843B (zh) * 2018-08-22 2023-08-25 高新兴科技集团股份有限公司 智能门禁卡权限管理装置
WO2020043203A1 (zh) * 2018-08-31 2020-03-05 杭州海康威视系统技术有限公司 一种基于纠删码的数据存储方法、装置及电子设备
CN109358980A (zh) * 2018-09-25 2019-02-19 华东交通大学 一种对数据更新和单磁盘错误修复友好的raid6编码方法
CN109491835A (zh) * 2018-10-25 2019-03-19 哈尔滨工程大学 一种基于动态分组码的数据容错方法
CN111104093A (zh) * 2018-10-25 2020-05-05 贵州白山云科技股份有限公司 有限域运算方法、系统、运算设备和计算机可读存储介质
CN109491835B (zh) * 2018-10-25 2022-04-12 哈尔滨工程大学 一种基于动态分组码的数据容错方法
WO2021012164A1 (zh) * 2019-07-22 2021-01-28 华为技术有限公司 数据重构的方法、装置、计算机设备、存储介质及系统
CN110532128B (zh) * 2019-08-16 2021-04-20 西安交通大学 一种降低数据更新代价的纠删码编码及数据重构方法
CN110532128A (zh) * 2019-08-16 2019-12-03 西安交通大学 一种降低数据更新代价的纠删码编码及数据重构方法
CN110895497A (zh) * 2019-12-09 2020-03-20 成都信息工程大学 一种分布式存储中降低纠删码修复的方法及装置
CN111541512A (zh) * 2020-03-13 2020-08-14 中国科学院深圳先进技术研究院 数据的处理方法、终端设备、可读存储介质
CN112052114A (zh) * 2020-08-27 2020-12-08 江苏超流信息技术有限公司 数据存储及恢复方法、编解码器及编解码系统
CN112052114B (zh) * 2020-08-27 2024-05-07 江苏超流信息技术有限公司 数据存储及恢复方法、编解码器及编解码系统
CN113505019A (zh) * 2021-05-14 2021-10-15 山东云海国创云计算装备产业创新中心有限公司 一种纠删码数据及校验恢复方法、装置、设备及可读介质
CN113505019B (zh) * 2021-05-14 2024-01-26 山东云海国创云计算装备产业创新中心有限公司 一种纠删码数据及校验恢复方法、装置、设备及可读介质
CN113258938A (zh) * 2021-06-03 2021-08-13 成都信息工程大学 一种单节点故障快速修复纠删码的构造方法
CN113258938B (zh) * 2021-06-03 2021-10-08 成都信息工程大学 一种单节点故障快速修复纠删码的构造方法
CN113687975A (zh) * 2021-07-14 2021-11-23 重庆大学 数据处理方法、装置、设备及存储介质
CN113687975B (zh) * 2021-07-14 2023-08-29 重庆大学 数据处理方法、装置、设备及存储介质
WO2023056904A1 (zh) * 2021-10-09 2023-04-13 阿里云计算有限公司 校验块的生成方法及装置
WO2023165536A1 (zh) * 2022-03-03 2023-09-07 山东云海国创云计算装备产业创新中心有限公司 一种数据存储方法、系统、设备以及介质
CN114866561A (zh) * 2022-05-03 2022-08-05 中国人民解放军国防科技大学 一种组合本地纠删码联盟链存储方法及系统
CN114866561B (zh) * 2022-05-03 2023-09-01 中国人民解放军国防科技大学 一种组合本地纠删码联盟链存储方法及系统
WO2024098647A1 (zh) * 2022-11-11 2024-05-16 苏州元脑智能科技有限公司 一种校验码恢复方法、系统、电子设备及存储介质

Also Published As

Publication number Publication date
CN107656832B (zh) 2019-10-25

Similar Documents

Publication Publication Date Title
CN107656832B (zh) 一种低数据重建开销的纠删码方法
CN104461781B (zh) 一种基于纠删码的数据块重建方法
US9600365B2 (en) Local erasure codes for data storage
CN104052576B (zh) 一种云存储下基于纠错码的数据恢复方法
US8645799B2 (en) Storage codes for data recovery
CN101888398B (zh) 基于(d,k)摩尔图的网络存储结构的数据存储方法
CN101868785B (zh) 生成数据存储系统的并行恢复策略
CN103746774B (zh) 一种高效数据读取的容错编码方法
US11500725B2 (en) Methods for data recovery of a distributed storage system and storage medium thereof
US20120023362A1 (en) System and method for exact regeneration of a failed node in a distributed storage system
CN106484559A (zh) 一种校验矩阵的构造方法及水平阵列纠删码的构造方法
CN108347306B (zh) 分布式存储系统中类局部重构码编码及节点故障修复方法
CN102843212B (zh) 编解码处理方法及装置
CN116501553B (zh) 数据恢复方法、装置、系统、电子设备及存储介质
US20150227425A1 (en) Method for encoding, data-restructuring and repairing projective self-repairing codes
CN109358980A (zh) 一种对数据更新和单磁盘错误修复友好的raid6编码方法
CN103703446A (zh) 网络存储中抗拜占庭失效的数据重构、失效数据恢复方法及装置
CN103809919B (zh) 高效容多错的快速恢复编码方法及其验证矩阵生成方法
CN115061640B (zh) 一种容错分布存储系统、方法、电子设备及介质
CN104932836B (zh) 一种提高单写性能的三盘容错编码和解码方法
CN111224747A (zh) 可降低修复带宽和磁盘读取开销的编码方法及其修复方法
CN110781025B (zh) 基于完全图的对称部分重复码构造及故障节点修复方法
Manasse et al. A reed-solomon code for disk storage, and efficient recovery computations for erasure-coded disk storage
Li et al. Exploiting decoding computational locality to improve the I/O performance of an XOR-coded storage cluster under concurrent failures
CN112732203A (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