掌桥专利:专业的专利平台
掌桥专利
首页

基于超立方体的局部修复码的构造及故障码元修复方法

文献发布时间:2023-06-19 12:21:13


基于超立方体的局部修复码的构造及故障码元修复方法

技术领域

本发明属于计算机领域,具体涉及一种基于超立方体的局部修复码的构造及故障码元修复方法。

背景技术

分布式存储系统中存储节点个数众多,经常出现节点失效的情况。虽然再生码最小化修复带宽,但是再生码的高磁盘I/O和修复复杂性不能被忽视,因为每个帮助节点都需要读取它所存储的所有数据,并将检索到的数据进行线性组合传输到替换节点。为了降低磁盘I/O和修复的复杂性,局部修复码通过产生局部冗余块来维护系统的可用性,通过连接r(<

分布式存储系统中存在多个节点不可用的常见问题,如故障数据节点i(第i个节点)只有一个大小为r的修复组,如果这修复组中的r个节点中的一个节点也不可用时,则故障码元i将无法修复仅访问这些r个节点。热数据是需要经常访问的信息,并以多个系统作业并发访问为特征。对于涉及热数据的分布式存储系统,需要具有通过读取少量的存活节点来提供多种并行方式恢复故障码元的能力。具有(r,t)局部性的局部修复码的出现对热数据的访问提高了极大地便利。

许多学者对局部修复码(LRC)进行了研究,在目前LRC的构造研究中发现,很难构造出在达到最优最小距离边界条件下,其码率也是最优的LRC。采用双层编码结构构造LRC,编码复杂且节点修复复杂度高;利用多项式运算的方法构造LRC,只能构造局部性为2或3的LRC;三元LRC的构造,涉及的计算量大。考虑到二元(r,t)LRC的构造,利用超图构造二元LRC,构造的码在最小距离方面是最优的,但是其码率受超图参数的影响较大;利用直积码构造的(r,t)LRC的码率较低。

发明内容

本发明的目的在于提供一种基于超立方体的局部修复码的构造方法,用以解决现有技术中构造LRC时计算复杂度大和码率较低的问题。

为了实现上述任务,本发明采用以下技术方案:

一种基于超立方体的局部修复码的构造方法,包括如下步骤:

步骤1:构建D维超立方体H(D,2),H(D,2)为无重边和环的无向连通图,H(D,2)上顶点集为V且V中每个顶点为一个D元数组,其中,D为正整数且D≥3,D元数组为0,1元素的集合;

步骤2:选中H(D,2)上顶点集为V中任意一个顶点

建立行数为

其中,m为

步骤3:获得与关联矩阵M(D)维度相同的单位矩阵I

步骤4:根据校验矩阵H=[M(D)|I

进一步的,步骤2所构造的M(D)矩阵每一列的列重为2,M(D)每一行的行重为D-1,并且任意两行中最多有一个位置都为1。

一种故障码元修复方法,该方法用于对基于超立方体的局部修复码的构造方法得到的局部修复码进行故障码元修复,每个信息码元对应一个所在修复组和一个并行修复组,每个校验码元对应一个所在修复组;

若单个码元故障,则在故障码元所在修复组内对单个故障码元进行修复;

若同一个修复组内的两个信息码元发生故障,则在其并行修复组内对两个故障信息码元进行修复;

若不同组的两个信息码元发生故障,则可分别在两个故障信息码元所在修复组和并行修复组且内对故障信息码元进行修复;

若两个校验码元故障,则在校验码元故障的所在修复组内分别对故障校验码元进行修复;

若同一个修复组内的一个信息码元和一个校验码元故障,则先恢复故障的信息码元,然后再利用恢复的信息码元来修复故障的校验码元;

若不同组的一个信息码元和一个校验码元故障,则对信息码元和一个校验码元分别采用单个码元故障的修复方案。

进一步的,所述修复是指对修复组内正常码元进行异或。

本发明与现有技术相比具有以下技术特点:

(1)本发明考虑到分布式存储系统中单个信息码元故障时,可以分别在两个不同的修复组内进行修复,修复速率快。若多个信息码元不在一个修复组中出现故障时,二者修复过程不互相干扰,可以同时进行修复即并行修复;若多个信息码元在同一个修复组中出现故障时,可以在该修复组内进行顺序修复。

(2)本发明利用超立方体构造的局部修复码,参数限制小,并且计算复杂度低,构造的局部修复码是码率和最小距离最优的码。

附图说明

图1是(n=10,k=6,r=3,t=2)LRC码编码示意图;

图2是(n=10,k=6,r=3,t=2)LRC并行修复方式;

图3是(n=10,k=6,r=3,t=2)LRC顺序修复方式;

以下结合附图和实施例对本发明作进一步的详细说明。

具体实施方式

首先对本发明中出现的技术词语进行解释说明:

局部修复码(Locally Repairable Codes,LRC):若有限域上的线性分组码C中码字的第i位符号可以由其它r个码字线性表出,那么称码C为具有局部性r的LRC。

(r,t)局部性:在码字C=[c

1、存在t个子集

2、对所有j∈[t],

3、对任意j≠l,且j,l∈[t],有

修复组:将一个校验码元及其所连接的信息码元称为一个修复组。

超立方体:设X是只有0,1元素的集合,给定正整数D且D≥3,图Γ是一个没有重边和环的无向简单连通图,图上的任意一个顶点用X上的D元数组来表示,即V={(x

校验码:由信息码元通过异或产生校验码元,即校验数据块。

校验矩阵:线性码C的码长为n,信息位由码字的前k个符号表示,则用

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图以及实施例,对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

按照本发明的技术方案,本实施例公开了一种基于超立方体的局部修复码的构造方法,包括如下步骤:

步骤1:构建D维超立方体H(D,2),H(D,2)为无重边和环的无向连通图,H(D,2)上顶点集为V且V中每个顶点为一个D元数组,其中,D为正整数且D≥3,D元数组为0,1元素的集合;

步骤2:选中H(D,2)上顶点集为V中任意一个顶点

建立行数为

其中,m为

步骤3:获得与关联矩阵M(D)维度相同的单位矩阵I

步骤4:根据校验矩阵H=[M(D)|I

对于需要存储的原始文件M,按照本方法构造局部修复码时,将原始文件M分成

具体的,步骤1中的H(D,2)(D≥3)表示D维超立方体,每个顶点用长度为D的二元元素0和1表示。

具体的,步骤1中的H(D,2)(D≥3)是一个具有2

具体的,步骤2所构造的M(D)矩阵,由于

具体的,步骤3中M(D)的列对应信息码元,I

具体的,步骤4中的码字参数为

本实施例还公开了一种故障码元修复方法,该方法用于对基于超立方体的局部修复码的构造方法得到的局部修复码进行故障码元修复;

每个信息码元对应一个所在修复组和一个并行修复组,每个校验码元对应一个所在修复组;由于H中M(D)每一列列重为2,并且任意两行中最多有一个位置都为1,故每个信息码元都有t=2个修复组,I

针对节点故障修复,可分为单个码元故障和多个码元故障,以下进行分情况讨论:

1)若是单个码元故障,只需要在修复组内将剩余码元进行异或就能修复。

2)由于本文构造的LRC的可用性,因此考虑两个码元故障,分以下几种情况讨论:

2.1)若两个信息码元在一个修复组内发生故障,此时只有一种并行修复方案;如果不在一个修复组,且恢复每个故障信息码元均有两种并行修复方案;

2.2)如果两个校验码元丢失,则分别利用它们对应的修复组进行并行修复,只有一种修复方案;

2.3)若一个信息码元和一个校验码元故障并且在一个修复组,这种情况下只有一种修复方案即顺序修复方案,先恢复丢失的信息码元,然后再利用修复好的信息码元来修复校验码元;如果它们不属于一个修复组,这种情况下的修复可以采用并行修复。

具体的,所述修复是指对修复组内剩余码元进行异或。

具体的,并行修复指的是两个故障码元同时进行修复,顺序修复指的是先修复一个码元,再利用该码元去修复另一个故障码元。

实施例1

本实施例用于将原始文件M存储到分布式存储系统中的节点中,具体按以下步骤实施:

步骤1:构建D维超立方体H(D,2),H(D,2)为无重边和环的无向连通图,H(D,2)上顶点集为V且V中每个顶点为一个D元数组,其中,D为正整数且D≥3,D元数组为0,1元素的集合;

在本实施例中,超立方体参数D=4,即4维超立方体H(4,2),H(4,2)上的每一个顶点均可用长度为4的数组来表示,其元素为0和1;

步骤2:选中H(D,2)上顶点集为V中任意一个顶点

建立行数为

其中,m为

将超立方体H(4,2)中的一个顶点记为

步骤3:获得与关联矩阵M(D)维度相同的单位矩阵I

校验矩阵H=[M(4)|I

步骤4:根据校验矩阵H=[M(D)|I

根据校验矩阵H=[M(4)|I

本实施例还公开了一种故障码元修复方法,该方法用于对基于超立方体的局部修复码的构造方法得到的局部修复码进行故障码元修复;

每个信息码元对应一个所在修复组和一个并行修复组,每个校验码元对应一个所在修复组;由于H中M(D)每一列列重为2,并且任意两行中最多有一个位置都为1,故每个信息码元都有t=2个修复组,I

针对节点故障修复,可分为单个码元故障和多个码元故障,以下进行分情况讨论:

1)若是单个码元故障,只需要在修复组内将剩余码元进行异或就能修复。

2)由于本文构造的LRC的可用性,因此考虑两个码元故障,分以下几种情况讨论:

2.1)若两个信息码元在一个修复组内发生故障,此时只有一种并行修复方案;如果不在一个修复组,且恢复每个故障信息码元均有两种并行修复方案;

2.2)如果两个校验码元丢失,则分别利用它们对应的修复组进行并行修复,只有一种修复方案;

2.3)若一个信息码元和一个校验码元故障并且在一个修复组,这种情况下只有一种修复方案即顺序修复方案,先恢复丢失的信息码元,然后再利用修复好的信息码元来修复校验码元;如果它们不属于一个修复组,这种情况下的修复可以采用并行修复。

具体的,所述修复是指对修复组内剩余码元进行异或。

具体的,并行修复指的是两个故障码元同时进行修复,顺序修复指的是先修复一个码元,再利用该码元去修复另一个故障码元。

本实施例中,由校验矩阵H=[M(4)|I

1)若是单个信息码元c

2)由于本实施例构造的LRC的可用性t=2,因此考虑两个码元故障,分以下几种情况讨论:

2.1)若信息码元c

2.2)如果两个校验码元c

2.3)如图3,标记部分为故障部分。若信息码元c

相关技术
  • 基于超立方体的局部修复码的构造及故障码元修复方法
  • 基于部分重复码的局部性修复编码及节点故障修复方法
技术分类

06120113267076