【技术实现步骤摘要】
本专利技术涉及分布式存储和网络编码领域,特别涉及一种利用网络拓扑信息的简单再生码修复方法。
技术介绍
随着大数据技术的兴起,大规模数据存储作为大数据技术的关键技术之一,得到越来越多的重视。分布式存储系统大多部署在廉价的商用机器上,系统中的节点失效是一种常态。为了保证系统中数据的可靠性,需要为分布式存储系统引入存储冗余策略。典型的存储冗余策略为多副本策略和里德-所罗门编码。网络编码技术于2000年被提出,它的核心思想是网络中的各个节点不仅仅具有路由功能,还可对节点接受到的数据进行线性或非线性的编码处理然后将编码后的数据转发出去。利用网络编码,可以达到数据多播路由的理论最大流界,提高数据传输效率和网路带宽利用率。基于网络编码的存储冗余策略被引入到分布式存储系统中,利用具有MDS性质的编码保障数据可靠性,并针对节点修复的网络开销与磁盘I/O开销做出优化,主要包括再生码(Regenerating Code)与局部可修复码(Locally Repairable Code)。简单再生码作为局部可修复码的一种,具有容错能力高、节点修复时磁盘I/O负载低等特点。目前对简单再生码的讨论主要集中在编码理论上:在简单再生码中节点的恢复过程中,丢失数据块恢复时所需的参与数据块都是通过直接链路传递给失效节点。失效节点在接收到特定参与数据块后进行异或运算,恢复出丢失数据块。这种节点修复过程忽略了网络的拓扑信息与链路带宽信息。
技术实现思路
专利技术目的:为了克服现有技术中存在的不足,本专利技术提供一种利用网络拓扑信息构造并行树型修复路径的针对简单再生码的修复方法。技术方案:为解决上述技 ...
【技术保护点】
一种利用网络拓扑信息的简单再生码修复方法,其特征在于,数据修复的具体步骤如下:步骤一:根据失效节点所在的分布式存储系统以及应用的简单再生码配置,获取系统使用的简单再生码编码参数(n,k,f),由待修复节点、修复参与节点所构成的存储节点集合以及存储节点集合中各个节点间的链路集合;步骤二:构建修复网络G(N,E),其中N为节点集合由待修复节点和参与节点组成,满足|N|=2f+1,f+1个节点集合Vi(1≤i≤f+1),集合Vi代表待修复节点上第i个丢失数据块修复所需的参与节点集合,E为链路集合,满足|E|=f(2f+1),N中每对节点之间构建一条链路;E中的每条链路都关联一个带宽C(e),e∈E;步骤三:根据步骤二中建立的修复网络,利用并行修复树构建算法构建针对所有f+1个丢失数据块的f+1个并行修复树Fi(1≤i≤f+1);步骤四:对步骤三中得到的修复树Fi(1≤i≤f+1)进行对数据块的修复。
【技术特征摘要】
1.一种利用网络拓扑信息的简单再生码修复方法,其特征在于,数据修复的具体步骤如下:步骤一:根据失效节点所在的分布式存储系统以及应用的简单再生码配置,获取系统使用的简单再生码编码参数(n,k,f),由待修复节点、修复参与节点所构成的存储节点集合以及存储节点集合中各个节点间的链路集合;步骤二:构建修复网络G(N,E),其中N为节点集合由待修复节点和参与节点组成,满足|N|=2f+1,f+1个节点集合Vi(1≤i≤f+1),集合Vi代表待修复节点上第i个丢失数据块修复所需的参与节点集合,E为链路集合,满足|E|=f(2f+1),N中每对节点之间构建一条链路;E中的每条链路都关联一个带宽C(e),e∈E;步骤三:根据步骤二中建立的修复网络,利用并行修复树构建算法构建针对所有f+1个丢失数据块的f+1个并行修复树Fi(1≤i≤f+1);步骤四:对步骤三中得到的修复树Fi(1≤i≤f+1)进行对数据块的修复。2.根据权利要求1所述的一种利用网络拓扑信息的简单再生码修复方法,其特征在于,所述步骤三中构建修复树Fi(1≤i≤f+1)的具体步骤如下:步骤3.1:已修复数据块数量为m,对已修复的数据块初始化为0,代表没有数据块得到修复,已构建成功的修复树集合F,F初始化为空;步骤3.2:丢失数据块为f+1,判断丢失的数据块f+1与已修复数据块是否相等,如果不相等进入步骤3.3,如果相等证明修复树集合Fi(1≤i≤f+1)构建成功;步骤3.3:对剩余数据块生成f+1-m条最优修复树OTj(1≤j≤f+1-m);步骤3.4:对最优修复树OTj(1≤j≤f+1-m)按规则进行排序;步骤3.5:为优先级最高的修复树OTs分配链路瓶颈带宽Bs;步骤3.6:调整链路带宽对于OTs经过的链路e,C(e)=C(e)-Bs;步骤3.7:对应数据块的修复树OTs的修复树构建完成,将OTs加入到修复树集合F中,已修复数据块m=m+1,并针对m再次进入步骤3.2与丢失数据块f+1进行判断。3.根据权利要求1所述的一种利用网络拓扑信息的简单再生码修复方法,其特征在于,所述步骤四中对数据块进行修复的具体步骤如下:步骤4.1:给定对应某个丢失数据块的修复树OT中的一个节点;步骤4.2:判断根节点是否得到所有数据块,如果得到则数据块成功恢复,如果没有得到则进入步骤4.3;步骤4.3:判断是否接收到子节点发送的数据,如果接收到子节点发送的数据则进入步骤4.4,否则再次进行判断是否存在修复所需且未发送的数据,如果存在则向父节点发送数据并再次进入步骤4.2;步骤4.4:判断是否存在修复所需且未发送的数据,如果不存在则向父节点转发数据并再次进入步骤4.2,如果存在则接收的数据与所存数据异或运算后发送给父节点并再次进入步骤4.2。4.根据权利要求2所述的一种利用网络拓扑信息的简单再生码修复方法,其特征在于,所述步骤3.3中生成最优修复树OTj(1≤j≤f+1-m)的具体步骤如下:步骤3.3.1:给定对应一个未修复数据块的参与节点集合Vi(1≤i≤f+1-m);步骤3.3.2:根据修改的Dijkstra算法计算源节点到所有节点的最优瓶颈路径pt(t∈N);步骤3.3.3:对于Vi中所有节点的最优瓶颈路径pt(t∈N)进行合并;步骤3.3.4:将...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。