CN110704232B - 一种分布式系统中失效节点的修复方法、装置和设备 - Google Patents

一种分布式系统中失效节点的修复方法、装置和设备 Download PDF

Info

Publication number
CN110704232B
CN110704232B CN201910959027.6A CN201910959027A CN110704232B CN 110704232 B CN110704232 B CN 110704232B CN 201910959027 A CN201910959027 A CN 201910959027A CN 110704232 B CN110704232 B CN 110704232B
Authority
CN
China
Prior art keywords
data
bit
repair
distributed
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.)
Active
Application number
CN201910959027.6A
Other languages
English (en)
Other versions
CN110704232A (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.)
Guangdong University of Technology
Original Assignee
Guangdong University of 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 Guangdong University of Technology filed Critical Guangdong University of Technology
Priority to CN201910959027.6A priority Critical patent/CN110704232B/zh
Publication of CN110704232A publication Critical patent/CN110704232A/zh
Application granted granted Critical
Publication of CN110704232B publication Critical patent/CN110704232B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2291User-Defined Types; Storage management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Abstract

本申请公开了一种分布式系统中失效节点的修复方法、装置和设备,其中方法包括:响应于失效数据的数据修复请求,获取失效数据在分布式数据中的分布位置f,失效数据为失效节点对应的数据,分布式数据为分布式系统对应的数据;根据分布位置f对应的预置节点修复公式组,计算用于修复各待修复比特位的修复比特位,待修复比特位为失效数据中的数据比特位;删除所有修复比特位中重复的修复比特位后,下载剩余的修复比特位;根据下载的修复比特位修复对应的待修复比特位,得到修复后的失效数据,解决了现有恢复失效节点的数据时,修复带宽大的技术问题。

Description

一种分布式系统中失效节点的修复方法、装置和设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种分布式系统的节点修复的方法、装置和设备。
背景技术
随着科技发展迅速,网络数据总量也在不断增长,通过网络将不同地理位置的节点连接在一起的分布式系统,因具有成本低廉、存储量大的优点而被广泛应用。
为了提高现有的分布式系统的空间利用率,将传统的纠删码技术应用到分布式系统中。但是现有应用到分布式系统中的纠删码技术,为了恢复失效节点的数据,需要从分布式系统中的其他节点下载的比特位的数量多,存在修复带宽大的问题。
发明内容
有鉴于此,本申请提供了一种分布式系统中失效节点的修复方法、装置和设备,解决了现有恢复失效节点的数据时,修复带宽大的技术问题。
本申请第一方面提供了一种分布式系统中失效节点的修复方法,该方法包括:
响应于失效数据的数据修复请求,获取所述失效数据在分布式数据中的分布位置f,所述失效数据为失效节点对应的数据,所述分布式数据为分布式系统对应的数据;
根据所述分布位置f对应的预置节点修复公式组,计算用于修复各待修复比特位的修复比特位,所述待修复比特位为所述失效数据中的数据比特位;
删除所有所述修复比特位中重复的修复比特位后,下载剩余的所述修复比特位;
根据下载的所述修复比特位修复对应的所述待修复比特位,得到修复后的所述失效数据。
可选地,所述获取所述失效数据在分布式数据中的分布位置f之前还包括:
根据预置划列方法,将预置数据划分为K列子数据,所述K为正整数;
根据冗余数据在分布式数据中的位置信息,基于对应的预置编码公式组对K列所述子数据进行编码,得到R列所述冗余数据,所述R为正整数;
将K列所述子数据和R列所述冗余数据作为所述分布式数据。
可选地,所述根据预置划列方法,将预置数据划分为K列子数据具体包括:
将所述预置数据进行均分后,得到K列子数据。
可选地,,所述R为4,则所述分布式数据为[s1(x),s2(x),s3(x),s4(x),s5(x),...,sk+1(x),sk+2(x),sk+3(x),sk+4(x)];
其中,s3(x),s4(x),s5(x),...,sk+1(x),sk+2(x)为K列所述子数据,s1(x),s2(x),sk+3(x),sk+4(x)为4列所述冗余数据。
可选地,位于所述分布式数据中前两列的所述冗余数据对应的所述预置编码公式组为:
Figure BDA0002228310270000021
其中,
Figure BDA0002228310270000025
为循环移位。
可选地,位于所述分布式数据中后两列的所述冗余数据对应的所述预置编码公式组为:
Figure BDA0002228310270000022
其中,
Figure BDA0002228310270000024
为循环移位。
可选地,所述分布位置f为列位置f;
则当所述分布位置f为:
Figure BDA0002228310270000023
时,其中所述n为分布式数据的列数,所述第一预置节点修复公式组为:
Figure BDA0002228310270000031
其中,k为子数据的数量,i为分布式数据中除了失效数据的其他节点对应的数据,se,f为所述失效数据的第e个比特位,se,i
Figure BDA0002228310270000032
分别为第i个节点的第e个比特位和第e+2f-1-2i-1个比特位,
Figure BDA0002228310270000033
为第k+2个节点的第e+2f-1个比特位;emod2f表示e对2f求余数。
可选地,所述分布位置f为列位置f;
则当所述分布位置f为:
Figure BDA0002228310270000034
时,其中所述n为分布式数据的列数,所述第二预置节点修复公式组为:
Figure BDA0002228310270000035
其中
Figure BDA0002228310270000036
Figure BDA0002228310270000037
为第i个节点的第e+(k+4-f)2k-(n-i)2k个比特位和第e+2k+4-f-2k+4-i个比特位,
Figure BDA0002228310270000038
Figure BDA0002228310270000039
均为第3列的第e+(k+4-f)2k个比特位和第e+2k+4-f个比特位,emod2k+5-f为e对2k+5-f求余数。
本申请第二方面提供了一种分布式系统中失效节点的修复装置,包括:
获取单元,用于响应于失效数据的数据修复请求,获取所述失效数据在分布式数据中的分布位置f,所述失效数据为失效节点对应的数据,所述分布式数据为分布式系统对应的数据;
计算单元,用于根据所述分布位置f对应的预置节点修复公式组,计算用于修复各待修复比特位的修复比特位,所述待修复比特位为所述失效数据中的数据比特位;
删除单元,用于删除所有所述修复比特位中重复的修复比特位;
下载单元,用于在重复的修复比特位被删除后,下载剩余的修复比特位;
修复单元,用于根据下载的所述修复比特位修复对应的所述待修复比特位,得到修复后的所述失效数据。
本申请第三方面提供了一种分布式系统中失效节点的修复设备,包括存储器以及处理器;
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行第一方面中任一项所述的分布式系统中失效节点的修复方法。从以上技术方案可以看出,本申请具有以下优点:
本申请提供了一种分布式系统中失效节点的修复方法,包括:响应于失效数据的数据修复请求后,获取失效数据在分布式数据中的分布位置f,失效数据为失效节点对应的数据,分布式数据为分布式系统对应的数据;接着根据分布位置f对应的预置节点修复公式组,计算用于修复各待修复比特位的修复比特位,待修复比特位为失效数据中的数据比特位;然后删除所有修复比特位中重复的修复比特位,下载剩余的修复比特位;最后根据下载的修复比特位修复对应的待修复比特位后,得到修复后的失效数据。
传统的纠删码技术在恢复失效节点数据时,需要下载其他没有失效节点的全部比特位,耗费的时间长,修复带宽大。本申请中,根据失效数据在分布式数据中的分布位置f所对应的预置节点修复公式组,确定用于修复失效数据中待修复比特位的修复比特位,此时并不是进行直接下载,而是进行重复比特位的删除,然后对进行重复比特位删除后的修复比特位进行下载,最后即可根据下载的修复比特位对失效数据进行修复,由于删除了重复的修复比特位,则重复的修复比特位就不需要下载。且不是用于修复待修复比特位的比特位数据不需要下载,因此,本申请中修复失效数据的比特位的数量少于传统纠删码技术下载的比特位的数量,从而解决了现有恢复失效节点的数据时,修复带宽大的技术问题。
附图说明
图1为本申请实施例中一种分布式系统中失效节点的修复方法的实施例一的流程示意图;
图2为本申请实施例中一种分布式系统中失效节点的修复方法的实施例二的流程示意图;
图3为本申请实施例中一种分布式系统中失效节点的修复装置的实施例的结构示意图。
具体实施方式
针对背景技术中的提到的问题,发明人在研究现有技术后发现,传统的纠删码技术在恢复失效节点数据时,需要下载其他没有失效节点的全部比特位,耗费的时间长,修复带宽大。
本申请实施例提供了一种分布式系统中失效节点的修复方法、装置和设备,解决了现有恢复失效节点的数据时,修复带宽大的技术问题。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以便于理解,下面对本申请中的一种分布式系统中失效节点的修复方法进行详细说明。
请参阅图1,图1为本申请实施例中一种分布式系统中失效节点的修复方法的实施例一的流程示意图,具体包括:
步骤101、响应于失效数据的数据修复请求,获取失效数据在分布式数据中的分布位置f,失效数据为失效节点对应的数据,分布式数据为分布式系统对应的数据。
需要说明的是,本实施例中,分布式系统存储分布式数据,分布式系统包含一个客户端和多个节点,则对应的分布式数据是由多个数据构成的,此时一个节点存储一个分布式数据的数据。当分布式系统中有一个节点失效时,失效节点所存储的数据会丢失,则失效节点就会发送数据修复请求给客户端,客户端在收到失效数据的数据修复请求后,获取失效数据在分布式数据中的分布位置f。
可以理解的是,节点可以是数据电路端接设备(DCE),如调制解调器、集线器或交换机;也可以是一个数据终端设备(DTE),如数字手机,打印机或PC机,本实施例中节点是具有存储功能的PC机。
步骤102、根据分布位置f对应的预置节点修复公式组,计算用于修复各待修复比特位的修复比特位,待修复比特位为失效数据中的数据比特位。
需要说明的是,每个节点存储的数据在分布式数据中分布位置f是不同的,利用分布位置f对应的预置节点修复公式组计算用于修复各待修复比特位的修复比特位,可以提高失效数据的修复速度。
步骤103、删除所有修复比特位中重复的修复比特位后,下载剩余的修复比特位。
需要说明的是,待修复比特位是由修复比特位进行修复的,且多个待修复比特位对应的修复比特位可能是相同的,因此要将所有修复比特位中重复的修复比特位删除后,再下载剩余的不重复的修复比特位。
步骤104、根据下载的修复比特位修复对应的待修复比特位,得到修复后的失效数据。
需要说明的是,失效数据是由多个待修复比特位组成的,所以利用下载的不重复的修复比特位修复对应的待修复比特位后,便可以获得失效数据。
传统的纠删码技术在恢复失效节点数据时,需要下载其他没有失效节点的全部比特位,耗费的时间长,修复带宽大。本实施例中,根据失效数据在分布式数据中的分布位置f所对应的预置节点修复公式组,确定用于修复失效数据中待修复比特位的修复比特位,此时并不是进行直接下载,而是进行重复比特位的删除,然后对进行重复比特位删除后的修复比特位进行下载,最后即可根据下载的修复比特位对失效数据进行修复,由于删除了重复的修复比特位,则重复的修复比特位就不需要下载。且不是用于修复待修复比特位的比特位数据不需要下载,因此,本申请中修复失效数据的比特位的数量少于传统纠删码技术下载的比特位的数量,从而解决了现有恢复失效节点的数据时,修复带宽大的技术问题。
以上为本申请实施例提供的一种分布式系统中失效节点的修复方法的实施例一,以下为本申请实施例提供的一种分布式系统中失效节点的修复方法的实施例二。
请参阅图2,本申请实施例中一种分布式系统中失效节点的修复方法的实施例二的流程示意图,包括:
步骤201、根据预置划列方法,将预置数据划分为K列子数据,K为正整数。
需要说明的是,根据预置划列方法,将预置数据划分成K列子数据,可以减小预置数据整体丢失的概率,分散预置数据丢失的风险。
可以理解的是,预置划列方法可以是将预置数据进行均分,也可以是将预置数据按照比例划分,本申请中的划列方法是将预置数据进行均分。
步骤202、根据冗余数据在分布式数据中的位置信息,基于对应的预置编码公式组对K列子数据进行编码,得到R列冗余数据,R为正整数。
需要说明的是,将预置数据划列后得到的子数据后,还要对子数据进行编码得到冗余数据,且冗余数据在分布式数据中的不同位置对应不同的预置编码公式,冗余数据是指与预置数据重复相同的数据,冗余数据可以防止数据的丢失。
可以理解的是,R可以为任意一个正整数,本领域技术人员可以根据需要进行设置,在本申请中,R为4,则分布式数据为[s1(x),s2(x),s3(x),s4(x),s5(x),...,sk+1(x),sk+2(x),sk+3(x),sk+4(x)],其中s3(x),S4(x),S5(x),...,Sk+1(x),sk+2(x)为K列子数据,s1(x),s2(x),sk+3(x),sk+4(x)为4列冗余数据。
其中,当冗余数据位于分布式数据中的前两列时,对应的预置编码公式组为:
Figure BDA0002228310270000071
Figure BDA0002228310270000072
为循环移位。因此,根据这个预置编码公式组可以编码出冗余数据S1(x)、s2(x)。
其中,当冗余数据位于分布式数据中的后两列时,对应的预置编码公式组为:
Figure BDA0002228310270000081
Figure BDA0002228310270000082
为循环移位。因此,根据这个预置编码公式组可以编码出冗余数据Sk+3(x)、Sk+4(x)。
步骤203、将K列子数据和R列冗余数据作为分布式数据。
需要说明的是,对于分布式系统的搭建,首先在客户端计算机上安装开发工具ECLIPSE(4.5.2),然后在每个作为节点的计算机上搭建HDFS集群,最后客户端计算机连接了搭建有HDFS集群的多个计算机,组成一个分布式系统。在得到K列子数据和R列冗余数据后,将K列子数据和R列冗余数据作为分布式数据,加载至分布式系统,此时分布式系统中的各节点对应存储一个子数据或一个冗余数据。
HDFS集群搭建过程包括以下步骤:
S1、修改IP地址;
S2、修改主机名;
S3、修改IP地址和主机名映射;
S4、安装JDK;
S5、解压HADOOP安装包;
S6、初始化名字节点;
S7、实现HADOOP接口,配置HADOOP_HOME环境变量,采用HADOOP编译后的LIB和BIN两个文件夹。
步骤204、响应于失效数据的数据修复请求,获取失效数据在分布式数据中的分布位置f,失效数据为失效节点对应的数据,分布式数据为分布式系统对应的数据。
需要说明的是,步骤204与实施例一中的步骤101的描述相同,具体可以参见上述步骤101的描述,在此不再赘述。
步骤205、根据分布位置f对应的预置节点修复公式组,计算用于修复各待修复比特位的修复比特位,待修复比特位为失效数据中的数据比特位。
需要说明的是,步骤205与实施例一中的步骤102的描述相同,具体可以参见上述步骤102的描述。
可以理解的是,当失效数据在分布式数据中的分布位置f为
Figure BDA0002228310270000091
时,对应的预置节点修复公式组为:
Figure BDA0002228310270000092
其中k为数据列的数量;i为分布式数据中除了失效数据的其他节点对应的数据;Se,f为失效数据的第e个比特位;Se,i
Figure BDA0002228310270000093
分别为第i个节点的第e个比特位和第e+2f-1-2i-1个比特位;
Figure BDA0002228310270000094
为第k+2个节点的第e+2f-1个比特位;emod2f为e对2f求余数;根据对应的预置节点修复公式可以计算出用于修复各待修复比特位的修复比特位,从而可以提高失效数据的修复速度。
还可以理解的是,当失效数据在分布式数据中的分布位置f为
Figure BDA0002228310270000095
时,对应的预置节点修复公式组为:
Figure BDA0002228310270000096
其中
Figure BDA0002228310270000097
Figure BDA0002228310270000098
为第i个节点的第e+(k+4-f)2k-(n-i)2k个比特位和第e+2k+4-f-2k+4-i个比特位;
Figure BDA0002228310270000099
Figure BDA00022283102700000910
均为第3列的第e+(k+4-f)2k个比特位和第e+2k+4-f个比特位;emod2k+5-f为e对2k+5-f求余数;根据对应的预置节点修复公式可以计算出用于修复各待修复比特位的修复比特位,从而可以提高失效数据的修复速度。
步骤206、删除所有修复比特位中重复的修复比特位后,下载剩余的修复比特位。
需要说明的是,步骤206与实施例一中的步骤103的描述相同,具体可以参见上述步骤103的描述,在此不再赘述。
步骤207、根据下载的修复比特位修复对应的待修复比特位,得到修复后的失效数据。
需要说明的是,步骤207与实施例一中的步骤104的描述相同,具体可以参见上述步骤104的描述,在此不再赘述。
本实施例中,首先要将预置数据划分为K列子数据,接着根据冗余数据在分布式数据的位置信息,基于对应的预置编码公式组对K列子数据进行编码,得到R列冗余数据。接着将K列子数据和R列冗余数据作为分布式数据,当节点失效的情况出现后,首先获取失效数据在分布式数据中的分布位置f,然后根据分布位置f对应的预置节点修复公式组,计算用于修复各待修复比特位的修复比特位,此时并不是进行直接下载,而是首先进行重复比特位的删除,然后对进行重复比特位删除后的修复比特位进行下载,最后根据下载的修复比特位对失效数据进行修复,由于删除重复的修复比特位,则重复的修复比特位就不需要下载,因此,修复失效数据的比特位的数量少于利用传统纠删码技术下载的比特位的数量,从而解决了现有恢复失效节点的数据时,修复带宽大的技术问题。
以上为本申请实施例提供的一种分布式系统中失效节点的修复方法的实施例二,以下为本申请实施例提供的一种分布式系统中失效节点的修复方法的应用例。
假设失效数据为分布式数据中的第一列数据,分布式数据中的每一列数据由48个比特位组成,K为4,R为4,那么n为8,由于第一列数据所在的位置列为第一列,即1≤f≤4,则对应的预置节点修复公式组:
Figure BDA0002228310270000101
可以计算出用于修复各待修复比特位的修复比特位,
s0,1=s0,2+s0,3+s0,4+s0,5+s0,6 s1,1=s0,2+s46,3+s42,4+s34,5+s2,6
s2,1=s2,2+s2,3+s2,4+s2,5+s2,6 s3,1=s2,2+s0,3+s44,4+s36,5+s4,6
s4,1=s4,2+s4,3+s4,4+s4,5+s4,6 s5,1=s4,2+s2,3+s46,4+s38,5+s6,6
...
...
s30,1=s30,2+s30,3+s30,4+s30,5+s30,6s31,1=s30,2+s28,3+s24,4+s16,5+s32,6
因为当32≤e≤47时,待修复比特位之间的关系满足se,f=se-16,f+se-32,f,其中1≤f≤n,所以当f=1时可得:
Figure BDA0002228310270000111
si,1为第一列数据中的第i个比特位,i的取值为0、1、2…47,当0≤e≤31时,从上述公式可以看出,通过预置节点修复公式组计算得到的修复待修复比特位的部分修复比特位相同,例如,待修复比特位s0,1的修复比特位包括s0,2+s0,3+s0,4+s0,5+s0,6,待修复比特位s1,1的修复比特位都包括s0,2,待修复比特位s3,1的修复比特位包括s0,3,待修复比特位s7,1的修复比特位包括s0,4,待修复比特位s15,1的修复比特位包括s0,5,待修复比特位s31,1的修复比特位包含s0,6(s32,6=s16,6+s0,6),因此,仅需要下载一次s0,2s0,3s0,4s0,5s0,6,删除重复的s0,2s0, 3s0,4s0,5s0,6,相同地,对其他重复的修复比特位也要先进行删除再下载。最后根据下载的不重复的修复比特位修复第一列数据。因此,修复第一列数据的比特位的数量与传统纠删码技术下载全部比特位的数量相比,减少了将近一半的下载量,从而解决了现有恢复失效节点的数据时,修复带宽大的技术问题。
以上为本申请实施例提供的一种分布式系统中失效节点的修复方法的应用例,以下为本申请实施例提供的一种分布式系统中失效节点的修复装置的实施例。
请参阅图3,本申请实施例中一种分布式系统中失效节点的修复装置的实施例的结构示意图,包括:
获取单元301,用于响应于失效数据的数据修复请求,获取失效数据在分布式数据中的分布位置f,失效数据为失效节点对应的数据,分布式数据为分布式系统对应的数据。
计算单元302,用于根据分布位置f对应的预置节点修复公式组,计算用于修复各待修复比特位的修复比特位,待修复比特位为失效数据中的数据比特位。
删除单元303,用于删除所有修复比特位中重复的修复比特位。
下载单元304,用于在重复的修复比特位被删除后,下载剩余的修复比特位。
修复单元305,用于根据下载的修复比特位修复对应的待修复比特位,得到修复后的失效数据。
进一步的,还包括:
划列单元306,用于根据预置划列方法,将预置数据划分为K列子数据,K为正整数。
编码单元307,用于根据冗余数据在分布式数据中的位置信息,基于对应的预置编码公式组对K列子数据进行编码,得到R列冗余数据,R为正整数。
数据单元308,用于将K列子数据和R列冗余数据作为分布式数据。
本实施例中,由获取单元301获取了失效数据在分布式数据中的分布位置f,接着计算单元302根据分布位置f对应的预置节点修复公式组,计算用于修复各待修复比特位的修复比特位,然后由删除单元303删除所有修复比特位中重复的修复比特位,再由下载单元304下载剩余的修复比特位,最后修复单元305根据下载的修复比特位修复对应的待修复比特位,得到失效数据。由于删除重复的修复比特位,则重复的修复比特位就不需要下载,且不是用于修复待修复比特位的比特位数据不需要下载,因此,修复失效数据的比特位的数量少于传统纠删码技术下载的比特位的数量,从而解决了现有恢复失效节点的数据时,修复带宽大的技术问题。
本申请实施例还提供了一种分布式系统中失效节点的修复设备,包括:存储器以及处理器;存储器用于存储程序代码,并将程序代码传输给处理器;处理器用于根据程序代码的指令执行实施例一或实施例二的分布式系统中失效节点的修复方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的网络,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个待安装电网网络,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (8)

1.一种分布式系统中失效节点的修复方法,其特征在于,包括:
响应于失效数据的数据修复请求,获取所述失效数据在分布式数据中的分布位置f,所述失效数据为失效节点对应的数据,所述分布式数据为分布式系统对应的数据;
根据所述分布位置f对应的预置节点修复公式组,计算用于修复各待修复比特位的修复比特位,所述待修复比特位为所述失效数据中的数据比特位;其中,所述分布位置f为列位置f;
当所述分布位置f为:
Figure FDA0004044902520000011
时,其中所述n为分布式数据的列数,所述分布位置f对应的预置节点修复公式组为:
Figure FDA0004044902520000012
其中,k为子数据的数量,i为分布式数据中除了失效数据的其他节点对应的数据,Se,f为所述失效数据的第e个比特位,Se,i
Figure FDA0004044902520000013
分别为第i个节点的第e个比特位和第e+2f-1-2i-1个比特位,
Figure FDA0004044902520000014
为第k+2个节点的第e+2f-1个比特位;e mod 2f表示e对2f求余数;
当所述分布位置f为:
Figure FDA0004044902520000015
时,其中所述n为分布式数据的列数,所述分布位置f对应的预置节点修复公式组为:
Figure FDA0004044902520000016
其中
Figure FDA0004044902520000017
Figure FDA0004044902520000018
为第i个节点的第e+(k+4-f)2k-(n-i)2k个比特位和第e+2k+4-f-2k+4-i个比特位,
Figure FDA0004044902520000019
Figure FDA00040449025200000110
均为第3列的第e+(k+4-f)2k个比特位和第e+2k+4-f个比特位,e mod2k+5-f为e对2k+5-f求余数;
删除所有所述修复比特位中重复的修复比特位后,下载剩余的所述修复比特位;
根据下载的所述修复比特位修复对应的所述待修复比特位,得到修复后的所述失效数据。
2.根据权利要求1所述的分布式系统中失效节点的修复方法,其特征在于,所述获取所述失效数据在分布式数据中的分布位置f之前还包括:
根据预置划列方法,将预置数据划分为K列子数据,所述K为正整数;
根据冗余数据在分布式数据中的位置信息,基于对应的预置编码公式组对K列所述子数据进行编码,得到R列所述冗余数据,所述R为正整数;
将K列所述子数据和R列所述冗余数据作为所述分布式数据。
3.根据权利要求2所述的分布式系统中失效节点的修复方法,其特征在于,所述根据预置划列方法,将预置数据划分为K列子数据具体包括:
将所述预置数据进行均分后,得到K列子数据。
4.根据权利要求2所述的分布式系统中失效节点的修复方法,其特征在于,所述R为4,则所述分布式数据为|s1(x),s2(x),s3(x),s4(x),s5(x),...,sk+1(x),sk+2(x),sk+3(x),sk+4(x)|;
其中,S3(x),s4(x),s5(x),...,sk+1(x),sk+2(x)为K列所述子数据,S1(x),s2(x),sk+3(x),sk+4(x)为4列所述冗余数据。
5.根据权利要求4所述的分布式系统中失效节点的修复方法,其特征在于,位于所述分布式数据中前两列的所述冗余数据对应的所述预置编码公式组为:
Figure FDA0004044902520000021
其中,x、x2、x4、x8...
Figure FDA0004044902520000022
为循环移位。
6.根据权利要求4所述的分布式系统中失效节点的修复方法,其特征在于,位于所述分布式数据中后两列的所述冗余数据对应的所述预置编码公式组为:
Figure FDA0004044902520000031
其中,
Figure FDA00040449025200000310
为循环移位。
7.一种分布式系统中失效节点的修复装置,其特征在于,包括:
获取单元,用于响应于失效数据的数据修复请求,获取所述失效数据在分布式数据中的分布位置f,所述失效数据为失效节点对应的数据,所述分布式数据为分布式系统对应的数据;
计算单元,用于根据所述分布位置f对应的预置节点修复公式组,计算用于修复各待修复比特位的修复比特位,所述待修复比特位为所述失效数据中的数据比特位;其中,所述分布位置f为列位置f;
当所述分布位置f为:
Figure FDA0004044902520000032
时,其中所述n为分布式数据的列数,所述分布位置f对应的预置节点修复公式组为:
Figure FDA0004044902520000033
其中,k为子数据的数量,i为分布式数据中除了失效数据的其他节点对应的数据,se,f为所述失效数据的第e个比特位,se,i
Figure FDA0004044902520000034
分别为第i个节点的第e个比特位和第e+2f-1-2i-1个比特位,
Figure FDA0004044902520000035
为第k+2个节点的第e+2f-1个比特位;e mod2f表示e对2f求余数;
当所述分布位置f为:
Figure FDA0004044902520000036
时,其中所述n为分布式数据的列数,所述分布位置f对应的预置节点修复公式组为:
Figure FDA0004044902520000037
其中
Figure FDA0004044902520000038
Figure FDA0004044902520000039
为第i个节点的第e+(k+4-f)2k-(n-i)2k个比特位和第e+2k+4-f-2k+4-i个比特位,
Figure FDA0004044902520000041
Figure FDA0004044902520000042
均为第3列的第e+(k+4-f)2k个比特位和第e+2k+4-f个比特位,e mod2k+5-f为e对2k+5-f求余数;
删除单元,用于删除所有所述修复比特位中重复的修复比特位;
下载单元,用于在重复的修复比特位被删除后,下载剩余的修复比特位;
修复单元,用于根据下载的所述修复比特位修复对应的所述待修复比特位,得到修复后的所述失效数据。
8.一种分布式系统中失效节点的修复设备,其特征在于,包括存储器以及处理器;
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1至6中任一项所述的分布式系统中失效节点的修复方法。
CN201910959027.6A 2019-10-10 2019-10-10 一种分布式系统中失效节点的修复方法、装置和设备 Active CN110704232B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910959027.6A CN110704232B (zh) 2019-10-10 2019-10-10 一种分布式系统中失效节点的修复方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910959027.6A CN110704232B (zh) 2019-10-10 2019-10-10 一种分布式系统中失效节点的修复方法、装置和设备

Publications (2)

Publication Number Publication Date
CN110704232A CN110704232A (zh) 2020-01-17
CN110704232B true CN110704232B (zh) 2023-03-14

Family

ID=69199049

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910959027.6A Active CN110704232B (zh) 2019-10-10 2019-10-10 一种分布式系统中失效节点的修复方法、装置和设备

Country Status (1)

Country Link
CN (1) CN110704232B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256471A (zh) * 2020-10-19 2021-01-22 北京京航计算通讯研究所 基于网络数据转发与控制层面分离的纠删码修复方法
CN112463435A (zh) * 2020-12-07 2021-03-09 广东工业大学 一种基于数据块访问频度的局部修复方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150142863A1 (en) * 2012-06-20 2015-05-21 Singapore University Of Technology And Design System and methods for distributed data storage
CN104484126B (zh) * 2014-11-13 2017-06-13 华中科技大学 一种基于纠删码的数据安全删除方法和系统
US10346075B2 (en) * 2015-03-16 2019-07-09 Hitachi, Ltd. Distributed storage system and control method for distributed storage system
US10007587B2 (en) * 2015-09-18 2018-06-26 Qualcomm Incorporated Systems and methods for pre-generation and pre-storage of repair fragments in storage systems
CN106776952B (zh) * 2016-12-02 2019-03-22 中科星图股份有限公司 一种分布式系统中数据存储方法
CN107395207B (zh) * 2017-07-12 2019-11-22 紫晟科技(深圳)有限公司 多容错性的mds阵列码编码以及修复方法
WO2020010504A1 (zh) * 2018-07-10 2020-01-16 深圳花儿数据技术有限公司 分布式存储系统的数据修复方法及存储介质
WO2020010505A1 (zh) * 2018-07-10 2020-01-16 深圳花儿数据技术有限公司 分布式存储系统的数据同步修复方法及存储介质

Also Published As

Publication number Publication date
CN110704232A (zh) 2020-01-17

Similar Documents

Publication Publication Date Title
US10114588B2 (en) Consolidating encoded data slices in read memory devices in a distributed storage network
US10031700B2 (en) Storing data copies in a dispersed storage network
US10481978B2 (en) Optimal slice encoding strategies within a dispersed storage unit
US10133631B2 (en) Multi option rebuilding in a dispersed storage network
US10025665B2 (en) Multi-stage slice recovery in a dispersed storage network
US9971649B2 (en) Deploying and growing a set of dispersed storage units at and by non-information dispersal algorithm (IDA) width multiples
US20170091033A1 (en) Considering object health of a multi-region object
US10073645B2 (en) Initiating rebuild actions from DS processing unit errors
US9760286B2 (en) Adaptive dispersed storage network (DSN) and system
CN110704232B (zh) 一种分布式系统中失效节点的修复方法、装置和设备
WO2018167590A1 (en) Method for partial updating data content in a distributed storage network
US10528282B2 (en) Modifying and utilizing a file structure in a dispersed storage network
US11157362B2 (en) Elastic storage in a dispersed storage network
US10506045B2 (en) Memory access using deterministic function and secure seed
US10534668B2 (en) Accessing data in a dispersed storage network
US10459796B2 (en) Prioritizing rebuilding based on a longevity estimate of the rebuilt slice
US20180059984A1 (en) Storage unit for use in a dispersed storage network
US10936388B2 (en) Slice metadata for optimized dispersed storage network (DSN) memory storage strategies
US10481980B2 (en) Enabling segmented source data introspection within dispersed storage network (DSN) memory
US10481977B2 (en) Dispersed storage of error encoded data objects having multiple resolutions
US20180052735A1 (en) Efficient, secure, storage of meaningful content as part of a dsn memory
US20170060739A1 (en) Protocols for expanding existing sites in a dispersed storage network
US10585607B2 (en) Determining an optimum selection of functions for units in a DSN memory
US20180107551A1 (en) Rebuilding encoded data slices in a dispersed storage network

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