CN111475330A - 基于Harary图生成树的FRSH码的系统、构造及故障节点修复方法 - Google Patents
基于Harary图生成树的FRSH码的系统、构造及故障节点修复方法 Download PDFInfo
- 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
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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding 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
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1012—Adding 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/104—Adding 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图的部分重复 码的构造方法、系统及故障节点修复方法。
背景技术
目前,海量数据存储是将数据分布式地存储在系统中的不同节点上,允 许用户随时随地访问数据,这种数据存储的方式已广泛应用于实际系统,如 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.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.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等价为部分重复码的关联矩阵,
其中,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;
其中,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。
关联矩阵的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<αmin+αmax,这里αmin和 αmax分别表示FRSH码中节点存储的最小数据块个数和最大数据块个数时, 仅需连接a-1个故障节点即可完成修复。
如当存储节点B2和B5故障时,故障节点B2和B5共包含d=6个数据块, 满足d<αmin+αmax。此时,修复故障节点B2和B5需要连接a-1=2个存活节点。 这里选择存活节点B7和B9,并分别从存活节点B7和B9下载数据块6、7、 8、9和1、3,实现故障节点B2和B5的修复。
(3)当多个节点发生故障,且多个故障节点所包含的数据块个数 d≥αmin+αmax时,需连接a-1或a个不同节点即可完成故障节点修复。同样先 考虑节点B4和B5发生故障,此时故障节点B4和B5包含d=7个数据块,满 足d≥αmin+αmax。为修复故障节点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≥αmin+αmax。而此时修复B2和B7需连 接a=3个存活节点B4、B5和B6,并分别下载6、7、8、9和1便可修复B2和B7。
对基于Harary图生成树的FRSH码的性能进行分析,主要考虑其修复 局部性、修复复杂度以及修复带宽开销,并与最常见的里德所罗门码(RS) 以及简单再生码(SRC)进行性能比较。表1给出了SRC、RS码与FRSH 码的节点存储开销、修复带宽开销以及修复局部性。
表1几种编码方案的性能分析
修复局部性是指节点故障修复时的磁盘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.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个存活节点中采集编码块,并将采集到的编码块传送给多个新节点,完成任多个节点故障的修复。
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)
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 | 长安大学 | 基于完全图的对称部分重复码构造及故障节点修复方法 |
-
2020
- 2020-03-10 CN CN202010163247.0A patent/CN111475330B/zh active Active
Patent Citations (3)
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)
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 |