CN111475330A - 基于Harary图生成树的FRSH码的系统、构造及故障节点修复方法 - Google Patents

基于Harary图生成树的FRSH码的系统、构造及故障节点修复方法 Download PDF

Info

Publication number
CN111475330A
CN111475330A CN202010163247.0A CN202010163247A CN111475330A CN 111475330 A CN111475330 A CN 111475330A CN 202010163247 A CN202010163247 A CN 202010163247A CN 111475330 A CN111475330 A CN 111475330A
Authority
CN
China
Prior art keywords
graph
nodes
vertex
harary
node
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
CN202010163247.0A
Other languages
English (en)
Other versions
CN111475330B (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.)
Changan University
Original Assignee
Changan University
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 Changan University filed Critical Changan University
Priority to CN202010163247.0A priority Critical patent/CN111475330B/zh
Publication of CN111475330A publication Critical patent/CN111475330A/zh
Application granted granted Critical
Publication of CN111475330B publication Critical patent/CN111475330B/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/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/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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • G06F11/104Adding 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 codes or arrangements adapted for a specific type of error using arithmetic codes, i.e. codes which are preserved during operation, e.g. modulo 9 or 11 check

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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了基于Harary图生成树的FRSH码的系统、构造及故障节点修复方法。通过根据不同构造参数Harary图构造出不同的重复码,且构造的FR码能够在很大范围内选择数据块的重复度。当某单节点或多个节点发生故障时,从a×ρ‑1个存活节点中采集编码块,并将采集到的编码块传送给新节点,完成节点故障的修复;可局部修复的部分重复码,参数选取范围很大,解决了目前部分重复码构造参数选取有限的问题,还能容多个节点故障,且每个故障节点有多种修复方案。进一步与RS码和SRC相比,本发明构造的FRSH码具有更低的修复局部性、修复复杂度与修复带宽开销,且修复效率高、修复时间短。

Description

基于Harary图生成树的FRSH码的系统、构造及故障节点修复 方法
技术领域
本发明属于计算机领域,涉及一种基于Harary图生成树的FRSH码的 系统、构造及故障节点修复方法,具体涉及一种基于Harary图的部分重复 码的构造方法、系统及故障节点修复方法。
背景技术
目前,海量数据存储是将数据分布式地存储在系统中的不同节点上,允 许用户随时随地访问数据,这种数据存储的方式已广泛应用于实际系统,如 Google文件系统、Hadoop分布式文件系统等。为了确保系统的可靠性和可 用性,数据的存储方式通常使用复制或Reed-Solomon(RS)码之类的纠删码。 复制产生的存储代价过高,RS码在存储空间方面更有优势,但是在修复单 个故障节点过程中必须还原整个文件,带宽开销过大。2007年,Dimakis等 人表明存储空间和修复带宽之间存在某种平衡,平衡曲线上的点可通过一类代码来实现,称为再生码。它基于网络编码概念,故障节点的修复通过连接 指定数目的任何存活节点来恢复丢失数据,并且数据收集者能够从n个存储 节点中的任何k个节点下载数据来重建原始文件。再生码的设计理念是最小 化修复带宽,然而其修复过程在有限域内进行大量线性运算,运算复杂度高, 而且需要读取的数据量通常远远大于发送给再生节点的数据量,因此磁盘 I/O开销较大,修复时间较长。
为了降低修复过程运算复杂度,El Rouayheb和Ramchandran在MBR 码的基础上提出了部分重复码的概念,部分重复码结合了再生码和复制策略 的优点,并可以提供精确有效的无编码修复,大大提高了修复效率并缩短了 修复时间,在硬件方面的作用体现在加快了计算机的运行速度。然而目前的 部分重复码依然存在着设计参数选取有限,故障节点修复方案单一等局限性。
发明内容
针对现有技术中存在着设计参数选取有限,故障节点修复方案单一等局 限性的问题,本发明的目的在于,提出基于Harary图的部分重复码的构造 方法、系统及故障节点修复方法。
为了实现上述目的,本发明采用如下技术方案:
基于Harary图生成树的部分重复码的构造方法,包括以下步骤:
步骤1:将原始文件分成i个原始数据块,对i个原始数据块进行(n,i)MDS 编码,得到n个编码块C1,C2,…,Cn,其中,n、i为正整数且i<n,每个编 码块包含原始数据块;
步骤2:建立包括m个顶点和节点度为k的Harary图Hk,m,用1,2,…, m沿顺时针方向依次对Harary图的m个顶点编号,其中,k和m均为正整 数,且k为偶数,m与n的个数相等,每个顶点存储与其编号相同的编码块;
步骤3:以Harary图的1号顶点为起始顶点得出图Hk,m的第一个生成树 G,生成树G中的任一顶点为v,并将所述的第一个生成树G中的顶点按离 心率分为a个组,所述的组中包含G中顶点的离心率相同,令1至a个组 分别对应1至a个节点,每个节点存有按编号从小到大的顺序排列的顶点所 存储的编码块,得到所述的第一生成树的a个节点,其中,1≤v≤m,a≥1;
步骤4:根据部分重复码的重复度ρ更换起始顶点,重复ρ-1次步骤3, 最终获得ρ个生成树的a×ρ个节点,共存有ρ×m个编码块,完成部分重 复码的构造,其中,ρ>1。
进一步的,步骤3中以Harary图的1号顶点为起始顶点得出图Hk,m的 第一个生成树G的构建方法为:
步骤3.1:画出边(1,v+1)和(1,m-v+1),其中,v表示生成树G中 的顶点编号,
Figure BDA0002406530610000031
步骤3.2:画出边(m-p+1,m-p-j+1)和(m-p-j+1,m-p-2j+1),…直到形成 m-p+1到1的路径,其中p和j为间隔参数,
Figure BDA0002406530610000032
步骤3.3,重复步骤3.2,画出边(m-q+1,m-q-j+1)和(m-q-j+1,m-q-2j+1),… 当存在从m-q+1到1的路径时停止,否则转至步骤3.1,其中,q为间隔参 数,q=p+1。
基于Harary图生成树的部分重复码的系统,包括构造模块和读取模块;
所述的构造模块用于执行权本发明所述的基于Harary图生成树的部分 重复码的构造方法;
所述的读取模块用于读取构造模块中的编码块。
故障节点修复方法,按照本发明所述的基于Harary图生成树的部分重 复码的构造方法,将包含n个编码块的原始文件分别存储到分布式存储系统 的a×ρ个节点中,共存有ρ×m个编码块,
当某单节点发生故障时,从a×ρ-1个存活节点中采集编码块,并将采 集到的编码块传送给新节点,完成单节点故障的修复;
当多个节点发生故障时,从小于a×ρ-1个存活节点中采集编码块,并 将采集到的编码块传送给多个新节点,完成任多个节点故障的修复。
与现有技术相比,本发明的有益效果是:
(1)相比现有的构造方式,基于Harary图生成树的部分重复码设计更 加简洁直观。并且这种修复机制是未编码的,也就是一个存活节点参到修复 过程只是简单地从内存中读取一个数据包,然后将其发送到新节点。新节点 将直接存储接收到的数据包而不需要其它任何处理。
(2)由Harary图所得到的部分重复码的参数选取范围也很大,解决了 目前部分重复码构造参数选取有限的问题,还能修复多个节点故障,且每个 故障节点有多种修复方案,减少了故障节点的修复时间。
(3)相比直接使用Harary图构造FR码,将Harary图转化为生成树更 加简洁直观,并且有利于之后为各顶点的离心率进行分组。
附图说明
图1实施例1中包括8个顶点和节点度为4时数据填充完毕的H4,8
图2是实施例1中H4,8以顶点1为起始顶点得到的生成树;
图3是实施例1中H4,8以顶点3为起始顶点得到的生成树;
图4实施例2中包括11个顶点和节点度为4时数据填充完毕的H4,11
图5是实施例2中H4,11以顶点1为起始顶点得到的生成树;
图6是实施例2中H4,11以顶点3为起始顶点得到的生成树;
图7是实施例2中H4,11以顶点5为起始顶点得到的生成树;
图8是当单节点或两节点出现故障时,SRC、RS码与FRSH码的修复局部性 性能比较;
图9是当单节点或两节点出现故障时,SRC、RS码与FRSH码的修复带宽开 销对比。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图 及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实 施例仅仅用以解释本发明,并不用于限定本发明。
在本发明中,对于连通图G的一个顶点v,v的离心率ev定义为G中v 到其它所有顶点的最远距离的取值。在G的所有顶点中,最小离心率定义 为G的半径,最大离心率定义为G的直径,分别记为rad(G)和diam(G)。
实施例1:
本实施例公开了一种基于Harary图生成树的部分重复码的构造方法, 包括以下步骤:
步骤1:将原始文件分成i个原始数据块,对i个原始数据块进行(n,i)MDS 编码,得到n个编码块C1,C2,…,Cn,其中,n、i为正整数且i<n;
步骤2:建立包括m个顶点和节点度为k的Harary图Hk,m,用1,2,…, m沿顺时针方向依次对Harary图的m个顶点编号,其中,k和m均为正整 数,且k为偶数,m与n的个数相等,每个顶点存储与其编号相同的编码块;
步骤3:以Harary图的1号顶点为起始顶点得出图Hk,m的第一个生成树 G,生成树G中的任一顶点为v,并将所述的第一个生成树G中的顶点按离 心率分为a个组,所述的组中包含G中顶点的离心率相同,令1至a个组 分别对应1至a个节点,每个节点存有按编号从小到大的顺序排列的顶点所 存储的编码块,得到所述的第一生成树的a个节点,其中,1≤v≤m,a≥1;
步骤4:根据部分重复码的重复度ρ更换起始顶点,重复ρ-1次步骤3, 最终获得ρ个生成树的a×ρ个节点,共存有ρ×m个编码块,完成部分重 复码的构造,其中,ρ>1。
具体的,步骤3中以Harary图的1号顶点为起始顶点得出图Hk,m的第 一个生成树G的构建方法为:
步骤3.1:画出边(1,v+1)和(1,m-v+1),其中,v表示生成树G中 的顶点编号,
Figure BDA0002406530610000051
步骤3.2:画出边(m-p+1,m-p-j+1)和(m-p-j+1,m-p-2j+1),…直到形成 m-p+1到1的路径,其中p和j为间隔参数,
Figure BDA0002406530610000061
步骤3.3,重复步骤3.2,画出边(m-q+1,m-q-j+1)和(m-q-j+1,m-q-2j+1),… 当存在从m-q+1到1的路径时停止,否则转至步骤3.1,其中,q为间隔参 数,q=p+1。
优选的,步骤4包括获得生成树G的关联矩阵M,M=(ms,t),并将关联 矩阵M等价为部分重复码的关联矩阵,
Figure BDA0002406530610000062
其中,1≤s≤aρ,1≤t≤m,a表示生成树G的离心率个数,vt代表生成 树G中的任一顶点,es代表任一离心率取值,
关联矩阵的M的行向量对应部分重复码的存储节点,关联矩阵的M的 列向量对应部分重复码的编码块,行向量的重表示表示节点存储容量d,列 向量的重表示编码块重复度ρ,由此即可得到重复度为ρ的部分重复码。
本实施例还公开了基于Harary图生成树的部分重复码的系统,包括构 造模块和读取模块;其中,构造模块用于执行本发明的基于Harary图生成 树的部分重复码的构造方法;读取模块用于读取构造模块中的编码块。
本实施例还公开了一种故障节点修复方法,将包含n个编码块的原始文 件分别存储到分布式存储系统的a×ρ个节点中,共存有ρ×m个编码块,
当某单节点发生故障时,从a×ρ-1个存活节点中采集编码块,并将采 集到的编码块传送给新节点,完成单节点故障的修复;
当多个节点发生故障时,从a×ρ-1个存活节点中采集编码块,并将采 集到的编码块传送给多个新节点,完成任多个节点故障的修复。
实施例2
本实施例公开了一种基于Harary图生成树的部分重复码的构造方法, 具体地,本实施例中,k=4,m=8。
步骤1:将大小为10M的文件存储于分布式存储系统中,首先对原文 件进行(8,10)MDS编码,再将这8个编码块用1,2,3,…8表示;
步骤2:建立包括8个顶点和节点度为4的Harary图H4,8,用1,2,…, 8沿顺时针方向依次对Harary图的8个顶点编号,其中,k和m均为正整数, 且k为偶数,m与n的个数相等,每个顶点存储与其编号相同的编码块,即 1号顶点存储1号编码块,2号顶点存储2号编码块,依次类推;如图1所 示;
步骤3:以Harary图的1号顶点为起始顶点得出图H4,8的第一个生成树 G,生成树G中的任一顶点为v,1≤v≤8;并将第一个生成树G中的顶点 按离心率分为a个组,所述的组中包含G中顶点的离心率相同,令1至a 个组分别对应1至a个节点,每个节点存有按编号从小到大的顺序排列的顶 点所存储的编码块,得到第一生成树的a个节点;
更具体的,步骤3中以Harary图的1号顶点为起始顶点得出图H4,8的 第一个生成树G的构建方法为:
步骤3.1:画出边(1,v+1)和(1,m-v+1),其中,v表示生成树G中 的顶点编号,v=1,2,m=8;
步骤3.2:画出边(m-p+1,m-p-j+1)和(m-p-j+1,m-p-2j+1),…直到形成 m-p+1到1的路径,其中p和j为间隔参数,p=k/2+1=3,j=k/2=2;
步骤3.3,重复步骤3.2,画出边(m-q+1,m-q-j+1)和(m-q-j+1,m-q-2j+1),… 当存在从m-q+1到1的路径时停止,否则转至步骤3.1,其中,q为间隔参 数,q=p+1=4。如图2所示;
步骤4:根据部分重复码的重复度ρ更换起始顶点,重复ρ-1次步骤3, 最终获得ρ个生成树的a×ρ个节点,共存有ρ×m个编码块,完成部分重 复码的构造,其中,ρ>1。
步骤4包括获得生成树G的关联矩阵M,M=(ms,t),并将关联矩阵M 等价为部分重复码的关联矩阵,以图2,H4,8以顶点1为起始顶点得到的生 成树为例,生成树顶点vt的离心率es共有三个取值:e1=2、e2=3、e3=4。 图2中v1、v2的离心率都为2,即v1、v2与e1相关联,故有m1,2=m1,3=1。以 此类推便可得到离心率分组矩阵m1
Figure BDA0002406530610000081
其中,1≤s≤aρ,1≤t≤m,a表示相同离心率的分组数,vt代表生成树 G中的任一顶点,es代表任一离心率取值,
关联矩阵的M的行向量对应部分重复码的存储节点,关联矩阵的M的 列向量对应部分重复码的编码块,行向量的重表示节点存储容量d,列向量 的重表示编码块重复度ρ,由此即可得到重复度为ρ的部分重复码。把m1矩 阵的每个横坐标当作FR码每个存储节点Ns(1≤s≤6)。构造的FR码的重复度 ρ=2,构成的部分重复码如下:
B1={2,3},B4={6,7},
B2={1,4,5},B5={1,5,8},
B3={6,7,8},B6={2,3,4}.
由上可见本实施例基于Harary图生成树构造的部分重复码是异构的, 都包含ρ个平行类,且本实施例最多可以容忍ρ-1=1个节点发生故障。
因此,本实施例还公开了故障节点修复方法,按照本发实施例基于 Harary图生成树的部分重复码的构造方法,将包含8个编码块的原始文件分 别存储到分布式存储系统的6个节点中(B1、B2....B6),共存有2×8=16个 编码块,
(1)当单个节点发生故障时,故障节点需连接1个或2个不同节点, 分别下载一个或两个数据块即可完成修复。
(2)当故障节点包含不同数据块个数d≤2时仅需连接一个节点下载两 个数据块即可修复,例如B1故障时,连接B6并下载2,3即可修复故障节点;
(3)当故障节点包含不同数据块个数d>2时,需连接两个节点分别下 载1个或2个数据块进行修复。例如B2故障时,需连接B5、B6并下载1,5 和4即可修复故障节点。
此外,本实施例还公开了基于Harary图生成树的部分重复码的系统, 包括构造模块和读取模块;构造模块用于执行权本发明所述的基于Harary 图生成树的部分重复码的构造方法;读取模块用于读取构造模块中的编码块。
实施例3
构造Harary图的步骤1和2如实施例2,不同的是本实施例中的顶点个 数为11个,节点度为4,数据填充完毕的H4,11如图4所示。
步骤3:以Harary图的1号顶点为起始顶点得出图H4,11的第一个生成 树G,生成树G中的任一顶点为v,1≤v≤11;并将第一个生成树G中的顶 点按离心率分为a个组,所述的组中包含G中顶点的离心率相同,令1至a 个组分别对应1至a个节点,每个节点存有按编号从小到大的顺序排列的顶 点所存储的编码块,得到第一生成树的a个节点;
更具体的,步骤3中以Harary图的1号顶点为起始顶点得出图H4,11的 第一个生成树G的构建方法为:
步骤3.1:画出边(1,v+1)和(1,m-v+1),其中,v表示生成树G中 的顶点编号,v=1,2,m=11;
步骤3.2:画出边(m-p+1,m-p-j+1)和(m-p-j+1,m-p-2j+1),…直到形成 m-p+1到1的路径,其中p和j为间隔参数,p=k/2+1=3,j=k/2=2;
步骤3.3,重复步骤3.2,画出边(m-q+1,m-q-j+1)和(m-q-j+1,m-q-2j+1),… 当存在从m-q+1到1的路径时停止,否则转至步骤3.1,其中,q为间隔参 数,q=p+1=4。如图5所示;
步骤4:根据部分重复码的重复度ρ(ρ=3)更换起始顶点,重复ρ-1=2, 也就是重复2次步骤3,得到个另外2生成树,图6是以顶点3为起始顶点 得到的生成树,图7是以顶点5为起始顶点得到的生成树。最终获得ρ个生 成树的9个节点,共存有33个编码块,完成部分重复码的构造。
步骤4包括获得生成树G的关联矩阵M,M=(ms,t),并将关联矩阵M 等价为部分重复码的关联矩阵,以图5中的H4,11以顶点1为起始顶点得到 的生成树为例,本例中所有生成树顶点的离心率es共有三个取值:e1=3、 e2=4、e3=5。图5中顶点2、3、4、5的离心率都为e1=3,即v2、v3、v4、 v5与e1相关联,故有m1,2=m1,3=m1,4=m1,5=1,以此类推便可得到关联矩阵M。
Figure BDA0002406530610000101
关联矩阵的M的行向量对应部分重复码的存储节点,关联矩阵的M的 列向量对应部分重复码的编码块,行向量的重表示节点存储容量d,列向量 的重表示编码块重复度ρ,由此即可得到重复度为ρ的部分重复码。把m1矩 阵的每个横坐标当作FR码每个存储节点Ns(1≤s≤9)。构造的FR码的重复度 ρ=3,构成的部分重复码如下:
B1={2,3,4,5},B4={4,5,6,7},B7={6,7,8,9}
B2={1,6,7},B5={3,8,9},B8={5,10,11}
B3={8,9,10,11},B6={1,2,10,11},B9={1,2,3,4};
由上可见,利用此参数的Harary图生成树构造的部分重复码依然是异 构的,都包含ρ个平行类,且本实施例最多可容忍ρ-1=1节点发生故障。
因此,本实施例还公开了故障节点修复方法,按照本发实施例基于 Harary图生成树的部分重复码的构造方法,将包含11个编码块的原始文件 分别存储到分布式存储系统的9个节点中(B1、B2....B9),共存有3×11=33 个编码块,
(1)当单个节点发生故障时,新生节点从剩余平行类中下载对应数据 块,即可完成修复。如节点B1故障时,损坏的数据块2、3、4、5可从剩余 两个平行类B4、B5、B6或B7、B8、B9中下载。这里选择连接存活节点B4、 B9并分别下载4、5、2、3,即可修复故障节点B1
(2)当多个节点发生故障时,由于仍至少存在一个平行类包含全部数 据块,而本方法构造的FR码的一个平行类中包含的节点个数等于相同离心 率分组数a,故至多连接a个节点即可完成修复。
具体地,当多个故障节点所包含的数据块个数d<αminmax,这里αmin和 αmax分别表示FRSH码中节点存储的最小数据块个数和最大数据块个数时, 仅需连接a-1个故障节点即可完成修复。
如当存储节点B2和B5故障时,故障节点B2和B5共包含d=6个数据块, 满足d<αminmax。此时,修复故障节点B2和B5需要连接a-1=2个存活节点。 这里选择存活节点B7和B9,并分别从存活节点B7和B9下载数据块6、7、 8、9和1、3,实现故障节点B2和B5的修复。
(3)当多个节点发生故障,且多个故障节点所包含的数据块个数 d≥αminmax时,需连接a-1或a个不同节点即可完成故障节点修复。同样先 考虑节点B4和B5发生故障,此时故障节点B4和B5包含d=7个数据块,满 足d≥αminmax。为修复故障节点B4和B5需要连接a-1=2个存活节点,这里 选择存活节点B1和B7,并分别从B1和B7下载数据块3、4、5和6、7、8、 9,即可修复故障节点B4和B5。另当B2和B7发生故障时,此时故障节点 B2和B7包含d=7个数据块,同样满足d≥αminmax。而此时修复B2和B7需连 接a=3个存活节点B4、B5和B6,并分别下载6、7、8、9和1便可修复B2和B7
对基于Harary图生成树的FRSH码的性能进行分析,主要考虑其修复 局部性、修复复杂度以及修复带宽开销,并与最常见的里德所罗门码(RS) 以及简单再生码(SRC)进行性能比较。表1给出了SRC、RS码与FRSH 码的节点存储开销、修复带宽开销以及修复局部性。
表1几种编码方案的性能分析
Figure BDA0002406530610000121
修复局部性是指节点故障修复时的磁盘I/O开销,由修复故障节点时所 需连接的存活节点数目决定。在分布式存储系统中,假设原文件大小为 M=1000Mb,存储节点数n=11,SRC子文件数f=3,RS码和SRC的原文件 重构度为k=8,FRSH码外部采用(11,8)MDS编码。本实施例仅考虑单节点 和两节点故障。
当单节点出现故障时,对于SRC,原文件分为f个子文件,每个子文件 均采用RS码,则修复一个故障节点需要从2f个节点下载数据块,取f=3, 则SRC的修复局部性为6;对于(11,8)RS码,则需要连接k=8个节点先恢复 出原文件来修复出现故障的节点,所以修复局部性是8;基于Harary图生成 树构造的FRSH码需要连接2个节点来修复故障节点,修复局部性为2。
当两节点发生故障时,SRC需要连接k=8个存活节点来恢复原文件,从 而进一步修复出现故障的节点,因此它的修复局部性是8;对于(11,8)RS码 同样需要连接8个节点来修复出现故障的节点,所以它的修复局部性依然是 8;基于Harary图生成树构造的FRSH码的修复局部性最大为3,为了方便 比较,在这里我们取最大值恒为3进行比较。由图8可见,无论是单节点故 障还是两节点故障,基于Harary图生成树构造的FRSH码的修复局部性都优于SRC和RS码。
修复带宽开销指的是修复故障节点时所需下载的数据量的大小。
当单节点出现故障时,若采用SRC,其每个节点存储f+1个数据块,则 当一个数据块失效时需要下载f个数据块来进行修复,且每一个数据块的大 小为M/fk,故简单再生码SRC修复单节点故障的带宽开销为(f+1)M/k;(n,k) RS码在修复单节点故障时需下载整个原文件,则RS码修复单故障节点的 带宽开销为M;对于基于Harary图生成树构造的FRSH码,其原始数据块 数为k,单节点故障时需要连接2个存活节点,则FRSH码修复单节点故障 的带宽开销为2M/k。
当两个节点发生故障时,RS码的修复带宽开销仍为M。而对于SRC, 则依据两故障节点间的节点数分为两种情况:若两故障节点之间的节点数大 于f-1,这两个故障节点则可以按照单节点故障的修复方式分别单独进行修 复,修复带宽开销为2(f+1)M/k;否则,需要恢复原文件来修复故障节点, 则修复带宽开销为M。对基于Harary图生成树构造的FRSH码,修复带宽 开销为3M/k。
假设存储节点数n=11,SRC子文件数f=3,RS码和SRC的原文件重 构度为k=8。当单节点故障时,RS码的带宽开销为1000Mb,SRC的带宽 开销为500Mb,FRSH码的带宽开销为250Mb;当两个节点故障时,(11,8)RS 码修复带宽开销为1000Mb,SRC的带宽开销同样为为1000Mb,为方便对 比FRSH码的带宽开销取较大值3M/k=375Mb。如图9所示,无论单节点还是两节点故障,FRSH码均具有较优的修复带宽开销。
对系统中故障节点进行修复时,RS码需要大量的有限域运算,修复复 杂度较高,因此修复时间较长;SRC简单再生码需要简单的异或操作,也 一定程度上增加了修复复杂度和修复时间;FRSH码的无编码修复过程仅涉 及文件的读取,修复复杂度最低,从而大大降低了故障节点的修复时间。

Claims (4)

1.基于Harary图生成树的部分重复码的构造方法,其特征在于,包括以下步骤:
步骤1:将原始文件分成i个原始数据块,对i个原始数据块进行(n,i)MDS编码,得到n个编码块C1,C2,…,Cn,其中,n、i为正整数且i<n;
步骤2:建立包括m个顶点和节点度为k的Harary图Hk,m,用1,2,…,m沿顺时针方向依次对Harary图的m个顶点编号,其中,k和m均为正整数,且k为偶数,m与n的个数相等,每个顶点存储与其编号相同的编码块;
步骤3:以Harary图的1号顶点为起始顶点得出图Hk,m的第一个生成树G,生成树G中的任一顶点为v,并将所述的第一个生成树G中的顶点按离心率分为a个组,所述的组中包含G中顶点的离心率相同,令1至a个组分别对应1至a个节点,每个节点s存有按编号从小到大的顺序排列的顶点所存储的编码块,得到所述的第一生成树的a个节点,其中,1≤v≤m,a≥1;
步骤4:根据部分重复码的重复度ρ更换起始顶点,重复ρ-1次步骤3,最终获得ρ个生成树的a×ρ个节点,共存有ρ×m个编码块,完成部分重复码的构造,其中,ρ>1。
2.如权利要求1所述的基于Harary图生成树的部分重复码的构造方法,其特征在于,步骤3中以Harary图的1号顶点为起始顶点得出图Hk,m的第一个生成树G的构建方法为:
步骤3.1:画出边(1,v+1)和(1,m-v+1),其中,v表示生成树G中的顶点编号,
Figure FDA0002406530600000011
步骤3.2:画出边(m-p+1,m-p-j+1)和(m-p-j+1,m-p-2j+1),…直到形成m-p+1到1的路径,其中p和j为间隔参数,
Figure FDA0002406530600000021
步骤3.3,重复步骤3.2,画出边(m-q+1,m-q-j+1)和(m-q-j+1,m-q-2j+1),…当存在从m-q+1到1的路径时停止,否则转至步骤3.1,其中,q为间隔参数,q=p+1。
3.基于Harary图生成树的部分重复码的系统,其特征在于,包括构造模块和读取模块;
所述的构造模块用于执行权利要求1~2任一所述的基于Harary图生成树的部分重复码的构造方法;
所述的读取模块用于读取构造模块中的编码块。
4.故障节点修复方法,其特征在于,按照权利要求1或2任一所述的基于Harary图生成树的部分重复码的构造方法,将包含n个编码块的原始文件分别存储到分布式存储系统的a×ρ个节点中,共存有ρ×m个编码块,
当某单节点发生故障时,从a×ρ-1个存活节点中采集编码块,并将采集到的编码块传送给新节点,完成单节点故障的修复;
当多个节点发生故障时,从a×ρ-1个存活节点中采集编码块,并将采集到的编码块传送给多个新节点,完成任多个节点故障的修复。
CN202010163247.0A 2020-03-10 2020-03-10 基于Harary图生成树的FRSH码的系统、构造及故障节点修复方法 Active CN111475330B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010163247.0A CN111475330B (zh) 2020-03-10 2020-03-10 基于Harary图生成树的FRSH码的系统、构造及故障节点修复方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010163247.0A CN111475330B (zh) 2020-03-10 2020-03-10 基于Harary图生成树的FRSH码的系统、构造及故障节点修复方法

Publications (2)

Publication Number Publication Date
CN111475330A true CN111475330A (zh) 2020-07-31
CN111475330B CN111475330B (zh) 2023-03-28

Family

ID=71747379

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010163247.0A Active CN111475330B (zh) 2020-03-10 2020-03-10 基于Harary图生成树的FRSH码的系统、构造及故障节点修复方法

Country Status (1)

Country Link
CN (1) CN111475330B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1235722A (zh) * 1996-08-28 1999-11-17 英国电讯有限公司 通信网络
WO2014153716A1 (zh) * 2013-03-26 2014-10-02 北京大学深圳研究生院 一种最小带宽再生码的编码和存储节点修复方法
CN110781025A (zh) * 2019-09-29 2020-02-11 长安大学 基于完全图的对称部分重复码构造及故障节点修复方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1235722A (zh) * 1996-08-28 1999-11-17 英国电讯有限公司 通信网络
WO2014153716A1 (zh) * 2013-03-26 2014-10-02 北京大学深圳研究生院 一种最小带宽再生码的编码和存储节点修复方法
CN110781025A (zh) * 2019-09-29 2020-02-11 长安大学 基于完全图的对称部分重复码构造及故障节点修复方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
徐志强等: "基于稀疏随机矩阵的再生码构造方法", 《计算机应用》 *

Also Published As

Publication number Publication date
CN111475330B (zh) 2023-03-28

Similar Documents

Publication Publication Date Title
CN103688515B (zh) 一种最小带宽再生码的编码和存储节点修复方法
CN103688514B (zh) 一种最小存储再生码的编码和存储节点修复方法
Oggier et al. Self-repairing homomorphic codes for distributed storage systems
US11531593B2 (en) Data encoding, decoding and recovering method for a distributed storage system
KR20120058556A (ko) 인코딩 및 디코딩 프로세스들을 위해 심볼들의 영속적 비활성화에 의한 fec 코드들을 활용하는 방법 및 장치
CN107656832A (zh) 一种低数据重建开销的纠删码方法
US8775860B2 (en) System and method for exact regeneration of a failed node in a distributed storage system
EP1468497A1 (en) Multi; stage code generator and decoder for communication systems
CN107003933B (zh) 部分复制码的构建方法、装置及其数据修复的方法
CN107689983B (zh) 基于低修复带宽的云存储系统及方法
CN108347306B (zh) 分布式存储系统中类局部重构码编码及节点故障修复方法
CN112799605B (zh) 平方部分重复码构造方法、节点修复方法及容量计算方法
CN109491835A (zh) 一种基于动态分组码的数据容错方法
CN108762978B (zh) 一种局部部分重复循环码的分组构造方法
CN103650462B (zh) 基于同态的自修复码的编码、解码和数据修复方法及其存储系统
WO2014059651A1 (zh) 一种射影自修复码的编码、数据重构及修复方法
CN110781024B (zh) 对称部分重复码的矩阵构造方法及故障节点修复方法
CN111475330B (zh) 基于Harary图生成树的FRSH码的系统、构造及故障节点修复方法
Zhu et al. Exploring node repair locality in fractional repetition codes
CN115061640B (zh) 一种容错分布存储系统、方法、电子设备及介质
CN110781025B (zh) 基于完全图的对称部分重复码构造及故障节点修复方法
CN108647108A (zh) 一种基于循环vfrc的最小带宽再生码的构造方法
Wei et al. expanCodes: Tailored LDPC codes for big data storage
CN112486412A (zh) 一种基于分布式对象存储系统安全的信息分散方法及系统
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