CN109343998A - 一种基于纠删码的全分布修复方法 - Google Patents
一种基于纠删码的全分布修复方法 Download PDFInfo
- Publication number
- CN109343998A CN109343998A CN201811171758.6A CN201811171758A CN109343998A CN 109343998 A CN109343998 A CN 109343998A CN 201811171758 A CN201811171758 A CN 201811171758A CN 109343998 A CN109343998 A CN 109343998A
- Authority
- CN
- China
- Prior art keywords
- data
- block
- sub
- memory node
- 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
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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
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 Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Error Detection And Correction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于纠删码的全分布修复方法,目的是提高失效数据的修复效率。技术方案是构建由控制节点、存储节点组成的分布存储系统,控制节点上安装有数据写入管理程序和数据修复管理程序;存储节点上安装有数据写入程序和数据修复程序;数据写入管理程序对数据对象进行分块和编码计算,将原始数据块和冗余数据块写入不同的存储节点;数据修复管理程序为失效数据块D'i选择新存储节点LN;数据修复管理程序和数据修复程序相互配合,进行解码计算后得到修复成功的数据子块,并存储到LN;LN的数据修复程序对数据子块进行合并,得到D'i恢复后的Di。本发明能充分利用各存储节点的上行带宽,有效避免网络中的瓶颈带宽,提高失效数据的修复效率。
Description
技术领域
本发明涉及分布存储系统的数据容错技术,尤其是基于纠删码的全分布修复方法。
背景技术
数据容错是海量数据分布存储的关键技术之一,数据容错对于提高系统的可用性和可靠性至关重要。目前,数据容错技术主要包括基于复制的容错技术和基于纠删码的容错技术。
基于复制的容错技术简单直观,易于实现和部署,需要为每个数据对象创建若干同样大小的副本,存储空间开销较大。基于纠删码的容错技术通过将数据对象分割为多个数据块,利用纠删码算法对原始的数据块进行编码得到冗余的数据块,把多个数据块的信息融合到较少的冗余信息中,有效节省存储空间。与基于复制的容错技术相比,基于纠删码的容错技术具有冗余度低、存储空间利用率高等优点,已经逐步成为大数据时代数据容错的主流技术。
基于纠删码的容错技术的基本思想是对k个原始数据块进行编码计算得到m个冗余数据块;只需k+m个数据块中的任意k个数据块,就可通过解码计算恢复得到原始的k个数据块。k和m均为正整数。
具体而言,冗余数据块Cj(1≤j≤m)是k个原始数据块即D1,D2,……,Di,……,Dk(1≤i≤k)的线性组合,编码计算可表示为公式(1),其中,Gji是数据块编码系数。也就是说,对于冗余数据块Cj而言,首先,编码系数Gji与数据块Di进行逐位相乘,得到新数据块Tji=Gji×Di;然后,k个新数据块进行逐位相加,得到冗余数据块Cj,
Gj1×D1+…+Gji×Di+…+Gjk×Dk=Cj(1)
原始数据块D1,D2,……,Di,……,Dk都是其它任意k个可用数据块Er(1≤r≤k)(原始数据块或者冗余数据块)的线性组合,解码计算可表示为公式(2),其中,Hir是数据块解码系数。也就是说,对于原始数据块Di而言,首先,解码系数Hir与可用数据块Er进行逐位相乘,得到新数据块Sir=Hir×Er;然后,k个新数据块进行逐位相加,得到原始数据块Di,
Hi1×E1+…+Hir×Er+…+Hik×Ek=Di (2)
纠删码的编解码计算对内存空间的需求取决于数据块的大小。随着海量数据规模的不断增大,数据对象的大小和数据对象的数目都呈现出逐渐增长的趋势。数据对象越来越大直接导致数据块大小不断变大,从而使得纠删码的编解码计算对内存空间的需求越来越大,甚至超出服务器的内存容量。
为了有效实现纠删码的编解码计算,一个原始数据块(冗余数据块)可以进一步划分为k+m-1个原始数据子块(冗余数据子块),即,原始数据块Di(1≤i≤k)划分为k+m-1个原始数据子块,原始数据子块表示为dil(1≤l≤k+m-1),冗余数据块Cj(1≤j≤m)划分为k+m-1个冗余数据子块,冗余数据子块表示为cjl(1≤l≤k+m-1)。纠删码的编解码计算可以在原始数据子块和冗余数据子块之间进行,从而降低编解码计算对内存空间的需求。
冗余数据子块cjl是原始数据子块dil(1≤i≤k,1≤l≤k+m-1)的线性组合,编码计算可表示为公式(3),其中,Gji(1≤j≤m,1≤i≤k)是数据块编码系数。也就是说,对于冗余数据子块cjl而言,首先,编码系数Gji与数据子块dil进行逐位相乘,得到k个新数据子块,新数据子块表示为tjil,tjil=Gji×dil;然后,新数据子块tj1l,……,tjil,……,tjkl进行逐位相加,得到冗余数据子块cjl,
Gj1×d1l+…+Gji×dil+…+Gjk×dkl=cjl (3)
原始数据子块dil(1≤i≤k,1≤l≤k+m-1)是其它任意k个可用数据子块erl(1≤r≤k,1≤l≤k+m-1)(原始数据子块或者冗余数据子块)的线性组合,解码计算可表示为公式(4),其中,Hir(1≤i≤k,1≤r≤k)是数据块解码系数。也就是说,对于原始数据子块dil而言,首先,解码系数Hir与可用数据子块erl进行逐位相乘,得到新数据子块sirl=Hir×erl(1≤r≤k);然后,新数据子块si1l,……,sirl,……,sikl进行逐位相加,得到原始数据子块dil,
Hi1×e1l+…+Hir×erl+…+Hik×ekl=dil (4)
尽管随着技术的进步,各种软硬件资源的可靠性得到了显著提高,但是,随着存储资源规模的不断扩大,资源的失效概率明显上升。在大规模分布存储系统中,资源失效是一种常态行为。在数据块失效时,基于纠删码的容错技术需要多个数据块才能解码恢复失效的原始数据块,需要占用较多的网络资源。
如果发现数据块失效,传统修复方法是从k+m-1个可用数据块中选择k个可用数据块,然后通过解码计算恢复得到失效的数据块。众所周知,网络环境中的上行带宽(指上传数据的速率)和下行带宽(指下载数据的速率)是不对称的,一般上行带宽小于下行带宽。因此,传统修复方法从k+m-1个可用数据块中选择k个可用数据块,从k个可用数据块所在的存储节点上传数据,只利用了这k个可用数据块所在存储节点的上行带宽,没有充分利用所有k+m-1可用数据块所在存储节点的上行带宽进行全分布修复,其修复效率往往受限于这k个可用数据块所在的存储节点的上行带宽。
因此,如何针对纠删码的特点,设计高效的失效数据修复方法,充分利用各存储节点的上行带宽,有效避免网络中的瓶颈带宽,有效提高失效数据的修复效率,已经成为分布存储领域的热点研究问题。
发明内容
本发明要解决的技术问题是:针对纠删码的特点,提出一种基于纠删码的全分布修复方法,充分利用各存储节点的上行带宽,有效避免网络中的瓶颈带宽,提高失效数据的修复效率。
本发明技术方案包括以下步骤:
第一步,构建一个分布存储系统,它由多个节点构成,每个节点都是一台可独立运行的计算机,各节点通过网络设备互连。
分布存储系统中的节点分为两类:控制节点和存储节点。控制节点和存储节点上均安装有操作系统、TCP/IP协议软件,配置了网络环境。
分布存储系统包括一个控制节点,负责与用户交互,接收用户提交的数据对象写入请求,负责存储编码系数,对数据对象进行分块和编码计算,向各存储节点分发数据块写入请求;接收用户提交的失效数据块修复请求,为失效数据块选择新的存储节点,向各存储节点发送失效数据子块修复请求、可用数据子块编号及可用数据子块解码系数、失效数据块的新存储节点编号,接收修复成功信息,向用户返回修复成功信息。
分布存储系统包括N个存储节点(N为正整数),它们负责存储数据对象的原始数据块(由多个原始数据子块组成)和冗余数据块(由多个冗余数据子块组成)。接收来自控制节点的数据块写入请求,完成数据块写入任务;接收控制节点发送的失效数据子块修复请求、可用数据子块编号及可用数据子块解码系数、失效数据块的新存储节点编号;根据可用数据子块编号获取可用数据子块,基于可用数据子块及可用数据子块解码系数进行解码计算,得到修复成功的数据子块,并将修复成功的数据子块发送给失效数据块的新存储节点;合并修复成功的数据子块得到恢复的数据块,完成修复后向控制节点发送修复成功信息。在分布存储系统中,每个数据块(指原始数据块和冗余数据块)拥有唯一的数据块编号。
控制节点上安装有数据写入管理程序和数据修复管理程序。数据写入管理程序接收用户提交的数据对象写入请求,负责存储编码系数,对数据对象进行分块和编码计算,向各存储节点分发数据块写入请求。数据修复管理程序接收用户提交的失效数据块修复请求,为失效数据块选择新的存储节点,向各存储节点发送失效数据子块修复请求、可用数据子块编号及可用数据子块解码系数、失效数据块的新存储节点编号,从存储节点接收修复成功信息,向用户返回修复成功信息。
存储节点上安装有数据写入程序和数据修复程序。数据写入程序负责接收来自控制节点的数据块写入请求,完成数据块写入任务。数据修复程序接收控制节点发送的失效数据子块修复请求、可用数据子块编号及可用数据子块解码系数、失效数据块的新存储节点编号;获取可用数据子块,基于可用数据子块及可用数据子块解码系数进行解码计算,得到修复成功的数据子块,并将修复成功的数据子块发送给失效数据块的新存储节点;合并修复成功的数据子块得到恢复的数据块,完成修复后向控制节点发送修复成功信息。
第二步,控制节点的数据写入管理程序对用户提交的数据对象NData进行分块和编码计算,得到k个原始数据块和m个冗余数据块,将原始数据块和冗余数据块分别写入不同的存储节点。具体步骤如下:
2.1控制节点的数据写入管理程序接收用户提交的数据对象NData(即用户程序要用到的正常数据)写入请求。
2.2控制节点的数据写入管理程序将NData分割为k个原始数据块,记这k个原始数据块为D1,D2,……,Di,……,Dk(1≤i≤k),并将每个原始数据块分割为k+m-1个原始数据子块,记原始数据块Di分割的第l个原始数据子块为dil(1≤l≤k+m-1),k+m+1≤N。
2.3控制节点的数据写入管理程序利用存储的编码系数对k个原始数据块的原始数据子块进行编码计算,得到m个冗余数据块的冗余数据子块,记m个冗余数据块为C1,C2,……,Cj,……,Cm(1≤j≤m),记Cj的第l个冗余数据子块为cjl(1≤l≤k+m-1),具体步骤如下:
2.3.1初始化信息,具体包括:
2.3.1.1令冗余数据块Cj的序号j=1。
2.3.1.2令冗余数据子块cjl的序号l=1。
2.3.1.3令原始数据块Di的序号i=1。
2.3.2控制节点的数据写入管理程序进行编码计算,将编码系数Gji与原始数据子块dil进行逐位相乘,即,tjil=Gji×dil,得到新数据子块tjil。
2.3.3如果i=1,令cjl=tjil,转第2.3.4步;否则,将tjil与cjl进行逐位相加,即,cjl=cjl+tjil,转第2.3.4步。
2.3.4更新原始数据块Di的序号,i=i+1。
2.3.5如果i>k,则令i=1,l=l+1。
2.3.6如果l>k+m-1,则令l=1,j=j+1。
2.3.7如果j>m,则说明编码计算生成冗余数据子块结束,转第2.4步;否则,转第2.3.2步,继续编码计算生成冗余数据子块。
2.4控制节点的数据写入管理程序将k个原始数据块(即,D1,D2,……,Di,……,Dk)和m个冗余数据块(即,C1,C2,……,Cj,……,Cm)分别写入不同的存储节点,具体步骤如下:
2.4.1初始化信息,具体包括:
2.4.1.1分布存储系统的N个存储节点构成集合SNSet。
2.4.1.2令原始数据块Di的序号i=1。
2.4.1.3令冗余数据块Cj的序号j=1。
2.4.2控制节点的数据写入管理程序从SNSet中任意选择一个存储节点SN,并向存储节点SN发送Di的写入请求,将存储节点SN从SNSet中删除,即,SNSet=SNSet-{SN}。
2.4.3存储节点SN的数据写入程序接收来自控制节点的Di写入请求,将Di写入本地磁盘。
2.4.4更新Di的序号,i=i+1。
2.4.5如果i>k,则说明k个原始数据块已经分别写入不同的存储节点,转第2.4.6步;否则,转到第2.4.2步,继续将原始数据块写入存储节点。
2.4.6控制节点的数据写入管理程序从SNSet中任意选择一个存储节点SN,控制节点的数据写入管理程序向存储节点SN发送Cj的写入请求,将存储节点SN从SNSet中删除,即,SNSet=SNSet-{SN}。
2.4.7存储节点SN的数据写入程序接收来自控制节点的Cj写入请求,将Cj写入本地磁盘。
2.4.8更新Cj的序号,j=j+1。
2.4.9如果j>m,则说明m个冗余数据块已经分别写入不同的存储节点,为了区分用户提交的数据对象NData和已经写入存储节点的数据对象,将写入存储节点的数据对象记为Data,转第三步;否则,转第2.4.6步,继续将冗余数据块写入存储节点。
第三步,控制节点的数据修复管理程序为Data中待修复的失效数据块D'i(1≤i≤k)选择新存储节点LN,具体方法是:
3.1控制节点的数据修复管理程序接收用户提交的失效数据块D'i(即Data中原始数据块Di失效后的数据块)修复请求。
3.2控制节点的数据修复管理程序从可用存储节点中选择一个存储节点作为D'i的新存储节点LN,选择原则是LN未存储数据对象Data的任何数据块(即在SNSet中既未存放任何原始数据块,又未存放任何冗余数据块的N-k-m个存储节点中选取)。
第四步,控制节点的数据修复管理程序向数据对象Data的k+m-1(除去D'i)个可用数据块所在的存储节点发送D'i的数据子块修复请求、可用数据子块编号及可用数据子块解码系数、D'i的新存储节点LN的编号。数据对象Data的k+m-1(除去D'i)个可用数据块所在的存储节点执行数据修复程序,接收控制节点发送的D'i的数据子块修复请求、可用数据子块编号及可用数据子块解码系数、D'i的新存储节点LN的编号;获取可用数据子块,基于可用数据子块及可用数据子块解码系数进行解码计算,得到修复成功的数据子块,并将其发送给LN。具体方法是:
4.1控制节点的数据修复管理程序将数据对象Data的除去D'i以外的k+m-1个可用数据块所在的存储节点构成存储节点数组NSet,NSet[l]表示第l个可用数据块所在的存储节点,1≤l≤k+m-1。
4.2初始化存储节点序号l=1。
4.3控制节点的数据修复管理程序向NSet[l]发送d'il修复请求。
4.4控制节点的数据修复管理程序为d'il选择用于修复的可用数据子块,具体步骤如下:
4.4.1采用可用数据子块编号数组DBSetil存储用于修复d'il的可用数据子块的编号,DBSetil[r]表示用于修复d'il的第r个可用数据子块的编号,1≤r≤k。
4.4.2初始化可用数据子块序号r=1。
4.4.3令DBSetil[r]=l+r-1。
4.4.4如果DBSetil[r]≥k+m,令DBSetil[r]=DBSetil[r]-(k+m-1),转第4.4.5步;否则,转第4.4.5步。
4.4.5更新可用数据子块序号,r=r+1。
4.4.6如果r≤k,转第4.4.3步继续选择可用数据子块;否则,说明已经找到用于修复d'il的k个可用数据子块,转第4.5步。
4.5控制节点的数据修复管理程序向存储节点NSet[l]发送DBSetil及DBSetil中的k个可用数据子块的解码系数Hi1,Hi2,……,Hir,……,Hik和D'i的新存储节点LN的编号。
4.6存储节点NSet[l]的数据修复程序接收控制节点发送的d'il修复请求。
4.7存储节点NSet[l]的数据修复程序接收控制节点发送的DBSetil及DBSetil中的k个可用数据子块的解码系数Hi1,Hi2,……,Hir,……,Hik。
4.8存储节点NSet[l]的数据修复程序接收控制节点发送的D'i的新存储节点LN的编号。
4.9存储节点NSet[l]的数据修复程序获取可用数据子块,基于可用数据子块及可用数据子块解码系数进行解码计算,得到修复成功的数据子块,具体步骤如下:
4.9.1初始化可用数据子块序号r=1。
4.9.2令x=DBSetil[r]。
4.9.3存储节点NSet[l]向存储节点NSet[x]发送读取数据对象Data的第x个可用数据块Ex的第l个可用数据子块exl的请求。
4.9.4存储节点NSet[x]接收exl的读取请求,读取本地存储的可用数据子块exl,并发送给存储节点NSet[l]。
4.9.5存储节点NSet[l]接收存储节点NSet[x]发送的exl,进行本地解码计算,将解码系数Hir与exl进行逐位相乘得到新数据子块sirl,即,sirl=Hir×exl。
4.9.6如果r=1,令修复成功的数据子块rdil=sirl(rdil即为失效数据子块d'il修复成功后的数据子块),转第4.9.7步;否则,将解码计算结果进行合并,即令rdil=rdil+sirl,转第4.9.7步。
4.9.7更新可用数据子块序号r=r+1。
4.9.8如果r≤k,转第4.9.2步继续解码计算;否则,说明失效数据子块d'il已经修复成功,转第4.10步。
4.10存储节点NSet[l]的数据修复程序将rdil发送给LN。
4.11更新存储节点序号,l=l+1。
4.12如果l≤k+m-1,继续向NSet中的存储节点发送d'il修复请求,转第4.3步;否则,转第五步。
第五步,LN执行数据修复程序,接收k+m-1(除去失效数据块)个可用数据块所在的存储节点发送的所有修复成功的数据子块,即rdi1,rdi2,……,rdil,……,rdi(k+m-1),1≤l≤k+m-1,将rdi1,rdi2,……,rdil,……,rdi(k+m-1)按照数据子块编号由小到大进行合并,得到D'i恢复后的Di,向控制节点发送修复成功信息。
第六步,控制节点执行数据修复管理程序,接收来自存储节点LN的修复成功信息,并向用户返回修复成功信息。
与现有技术相比,本发明具有以下技术优点:
1.本发明2.3步控制节点利用存储的编码系数对k个原始数据块的原始数据子块进行编码计算,得到m个冗余数据块的冗余数据子块;本发明4.9步存储节点获取可用数据子块,基于可用数据子块及可用数据子块解码系数进行解码计算,得到修复成功的数据子块;在原始数据子块和冗余数据子块之间进行编解码计算,从而降低编解码计算对内存空间的需求。
2.本发明第四步采用全分布修复方式,数据对象Data的k+m-1(除去失效数据块)个可用数据块所在的存储节点全部参与数据修复,充分利用了k+m-1个可用存储节点的上行带宽;传统修复方法采用部分分布修复方式,从k+m-1个可用数据块中选择k个可用数据块所在的存储节点参与数据修复,只利用了这k个可用存储节点的上行带宽;与传统修复方法的部分分布修复方式相比,第四步采用的全分布修复方式充分利用了所有k+m-1个可用存储节点的上行带宽,有效避免网络中的瓶颈带宽,提高失效数据的修复效率。
3.本发明4.4步控制节点为失效数据子块dil选择用于修复的可用数据子块时,优先选择本地存储的可用数据子块,有效降低了存储节点之间的传输开销,有利于提高失效数据的修复效率。
附图说明
图1是本发明第一步构建的分布存储系统的物理结构图。
图2是本发明分布存储系统的软件部署图。
图3是本发明总体流程图。
具体实施方式
图3是本发明总流程图。具体流程如下:
第一步,构建一个如图1所示的分布存储系统,它由一个控制节点和N个存储节点(N为正整数)构成,每个节点(包括控制节点和存储节点)都是一台可独立运行的计算机,各节点通过网络设备互连。控制节点和存储节点均是包含处理器、存储器、磁盘和网络接口的计算机。控制节点和存储节点上均安装有操作系统、TCP/IP协议软件,配置了网络环境。控制节点负责与用户交互,接收用户提交的数据对象写入请求,负责存储编码系数,对数据对象进行分块和编码计算,向各存储节点分发数据块写入请求;接收用户提交的失效数据块修复请求,为失效数据块选择新的存储节点,向各存储节点发送失效数据子块修复请求、可用数据子块编号及可用数据子块解码系数、失效数据块的新存储节点编号,接收修复成功信息,向用户返回修复成功信息。存储节点负责存储数据对象的原始数据块(由多个原始数据子块组成)和冗余数据块(由多个冗余数据子块组成)。接收来自控制节点的数据块写入请求,完成数据块写入任务;接收控制节点发送的失效数据子块修复请求、可用数据子块编号及可用数据子块解码系数、失效数据块的新存储节点编号;根据可用数据子块编号获取可用数据子块,基于可用数据子块及可用数据子块解码系数进行解码计算,得到修复成功的数据子块,并将修复成功的数据子块发送给失效数据块的新存储节点;合并修复成功的数据子块得到恢复的数据块,完成修复后向控制节点发送修复成功信息。
如图2所示,控制节点上安装有数据写入管理程序和数据修复管理程序。数据写入管理程序接收用户提交的数据对象写入请求,负责存储编码系数,对数据对象进行分块和编码计算,向各存储节点分发数据块写入请求。数据修复管理程序接收用户提交的失效数据块修复请求,为失效数据块选择新的存储节点,向各存储节点发送失效数据子块修复请求、可用数据子块编号及可用数据子块解码系数、失效数据块的新存储节点编号,从存储节点接收修复成功信息,向用户返回修复成功信息。存储节点上安装有数据写入程序和数据修复程序。数据写入程序负责接收来自控制节点的数据块写入请求,完成数据块写入任务。数据修复程序接收控制节点发送的失效数据子块修复请求、可用数据子块编号及可用数据子块解码系数、失效数据块的新存储节点编号;获取可用数据子块,基于可用数据子块及可用数据子块解码系数进行解码计算,得到修复成功的数据子块,并将修复成功的数据子块发送给失效数据块的新存储节点;合并修复成功的数据子块得到恢复的数据块,完成修复后向控制节点发送修复成功信息。
第二步,控制节点的数据写入管理程序对用户提交的数据对象NData进行分块和编码计算,得到k个原始数据块和m个冗余数据块,将原始数据块和冗余数据块分别写入不同的存储节点。具体步骤如下:
2.1控制节点的数据写入管理程序接收用户提交的数据对象NData写入请求。
2.2控制节点的数据写入管理程序将NData分割为k个原始数据块,记这k个原始数据块为D1,D2,……,Di,……,Dk(1≤i≤k),并将每个原始数据块分割为k+m-1个原始数据子块,记原始数据块Di分割的第l个原始数据子块为dil(1≤l≤k+m-1),k+m+1≤N。
2.3控制节点的数据写入管理程序利用存储的编码系数对k个原始数据块的原始数据子块进行编码计算,得到m个冗余数据块的冗余数据子块,记m个冗余数据块为C1,C2,……,Cj,……,Cm(1≤j≤m),记Cj的第l个冗余数据子块为cjl(1≤l≤k+m-1),具体步骤如下:
2.3.1初始化信息,具体包括:
2.3.1.1令冗余数据块Cj的序号j=1。
2.3.1.2令冗余数据子块cjl的序号l=1。
2.3.1.3令原始数据块Di的序号i=1。
2.3.2控制节点的数据写入管理程序进行编码计算,将编码系数Gji与原始数据子块dil进行逐位相乘,即,tjil=Gji×dil,得到新数据子块tjil。
2.3.3如果i=1,令cjl=tjil,转第2.3.4步;否则,将tjil与cjl进行逐位相加,即,cjl=cjl+tjil,转第2.3.4步。
2.3.4更新原始数据块Di的序号,i=i+1。
2.3.5如果i>k,则令i=1,l=l+1。
2.3.6如果l>k+m-1,则令l=1,j=j+1。
2.3.7如果j>m,则说明编码计算生成冗余数据子块结束,转第2.4步;否则,转第2.3.2步,继续编码计算生成冗余数据子块。
2.4控制节点的数据写入管理程序将k个原始数据块(即,D1,D2,……,Di,……,Dk)和m个冗余数据块(即,C1,C2,……,Cj,……,Cm)分别写入不同的存储节点,具体步骤如下:
2.4.1初始化信息,具体包括:
2.4.1.1分布存储系统的N个存储节点构成集合SNSet。
2.4.1.2令原始数据块Di的序号i=1。
2.4.1.3令冗余数据块Cj的序号j=1。
2.4.2控制节点的数据写入管理程序从SNSet中任意选择一个存储节点SN,并向存储节点SN发送Di的写入请求,将存储节点SN从SNSet中删除,即,SNSet=SNSet-{SN}。
2.4.3存储节点SN的数据写入程序接收来自控制节点的Di写入请求,将Di写入本地磁盘。
2.4.4更新Di的序号,i=i+1。
2.4.5如果i>k,则说明k个原始数据块已经分别写入不同的存储节点,转第2.4.6步;否则,转到第2.4.2步,继续将原始数据块写入存储节点。
2.4.6控制节点的数据写入管理程序从SNSet中任意选择一个存储节点SN,控制节点的数据写入管理程序向存储节点SN发送Cj的写入请求,将存储节点SN从SNSet中删除,即,SNSet=SNSet-{SN}。
2.4.7存储节点SN的数据写入程序接收来自控制节点的Cj写入请求,将Cj写入本地磁盘。
2.4.8更新Cj的序号,j=j+1。
2.4.9如果j>m,将写入存储节点的数据对象记为Data,转第三步;否则,转第2.4.6步。
第三步,控制节点的数据修复管理程序为Data中待修复的失效数据块D'i(1≤i≤k)选择新存储节点LN,具体方法是:
3.1控制节点的数据修复管理程序接收用户提交的失效数据块D'i修复请求。
3.2控制节点的数据修复管理程序从可用存储节点中选择一个存储节点作为D'i的新存储节点LN,选择原则是LN未存储数据对象Data的任何数据块。
第四步,控制节点的数据修复管理程序向数据对象Data的k+m-1(除去D'i)个可用数据块所在的存储节点发送D'i的数据子块修复请求、可用数据子块编号及可用数据子块解码系数、D'i的新存储节点LN的编号。数据对象Data的k+m-1(除去D'i)个可用数据块所在的存储节点执行数据修复程序,接收控制节点发送的D'i的数据子块修复请求、可用数据子块编号及可用数据子块解码系数、D'i的新存储节点LN的编号;获取可用数据子块,基于可用数据子块及可用数据子块解码系数进行解码计算,得到修复成功的数据子块,并将其发送给LN。具体方法是:
4.1控制节点的数据修复管理程序将数据对象Data的除去D'i以外的k+m-1个可用数据块所在的存储节点构成存储节点数组NSet,NSet[l]表示第l个可用数据块所在的存储节点,1≤l≤k+m-1。
4.2初始化存储节点序号l=1。
4.3控制节点的数据修复管理程序向NSet[l]发送d'il修复请求。
4.4控制节点的数据修复管理程序为d'il选择用于修复的可用数据子块,具体步骤如下:
4.4.1采用可用数据子块编号数组DBSetil存储用于修复d'il的可用数据子块的编号,DBSetil[r]表示用于修复d'il的第r个可用数据子块的编号,1≤r≤k。
4.4.2初始化可用数据子块序号r=1。
4.4.3令DBSetil[r]=l+r-1。
4.4.4如果DBSetil[r]≥k+m,令DBSetil[r]=DBSetil[r]-(k+m-1),转第4.4.5步;否则,转第4.4.5步。
4.4.5更新可用数据子块序号,r=r+1。
4.4.6如果r≤k,转第4.4.3步;否则,转第4.5步。
4.5控制节点的数据修复管理程序向存储节点NSet[l]发送DBSetil及DBSetil中的k个可用数据子块的解码系数Hi1,Hi2,……,Hir,……,Hik和D'i的新存储节点LN的编号。
4.6存储节点NSet[l]的数据修复程序接收控制节点发送的d'il修复请求。
4.7存储节点NSet[l]的数据修复程序接收控制节点发送的DBSetil及DBSetil中的k个可用数据子块的解码系数Hi1,Hi2,……,Hir,……,Hik。
4.8存储节点NSet[l]的数据修复程序接收控制节点发送的D'i的新存储节点LN的编号。
4.9存储节点NSet[l]的数据修复程序获取可用数据子块,基于可用数据子块及可用数据子块解码系数进行解码计算,得到修复成功的数据子块,具体步骤如下:
4.9.1初始化可用数据子块序号r=1。
4.9.2令x=DBSetil[r]。
4.9.3存储节点NSet[l]向存储节点NSet[x]发送读取数据对象Data的第x个可用数据块Ex的第l个可用数据子块exl的请求。
4.9.4存储节点NSet[x]接收exl的读取请求,读取本地存储的可用数据子块exl,并发送给存储节点NSet[l]。
4.9.5存储节点NSet[l]接收存储节点NSet[x]发送的exl,进行本地解码计算,将解码系数Hir与exl进行逐位相乘得到新数据子块sirl,即,sirl=Hir×exl。
4.9.6如果r=1,令修复成功的数据子块rdil=sirl(rdil即为失效数据子块d'il修复成功后的数据子块),转第4.9.7步;否则,将解码计算结果进行合并,即令rdil=rdil+sirl,转第4.9.7步。
4.9.7更新可用数据子块序号r=r+1。
4.9.8如果r≤k,转第4.9.2步继续解码计算;否则,说明失效数据子块d'il已经修复成功,转第4.10步。
4.10存储节点NSet[l]的数据修复程序将rdil发送给LN。
4.11更新存储节点序号,l=l+1。
4.12如果l≤k+m-1,继续向NSet中的存储节点发送d'il修复请求,转第4.3步;否则,转第五步。
第五步,LN执行数据修复程序,接收k+m-1(除去失效数据块)个可用数据块所在的存储节点发送的所有修复成功的数据子块,即rdi1,rdi2,……,rdil,……,rdi(k+m-1),1≤l≤k+m-1,将rdi1,rdi2,……,rdil,……,rdi(k+m-1)按照数据子块编号由小到大进行合并,得到D'i恢复后的Di,向控制节点发送修复成功信息。
第六步,控制节点执行数据修复管理程序,接收来自存储节点LN的修复成功信息,并向用户返回修复成功信息。
Claims (4)
1.一种基于纠删码的全分布修复方法,其特征在于包括以下步骤:
第一步,构建一个分布存储系统,它由多个节点构成,每个节点都是一台可独立运行的计算机,各节点通过网络设备互连;节点包括控制节点和存储节点,控制节点和存储节点上均安装有操作系统、TCP/IP协议软件,配置了网络环境;
分布存储系统包括一个控制节点,负责与用户交互,接收用户提交的数据对象写入请求,负责存储编码系数,对数据对象进行分块和编码计算,向各存储节点分发数据块写入请求;接收用户提交的失效数据块修复请求,为失效数据块选择新的存储节点,向各存储节点发送失效数据子块修复请求、可用数据子块编号及可用数据子块解码系数、失效数据块的新存储节点编号,接收修复成功信息,向用户返回修复成功信息;
分布存储系统包括N个存储节点,N为正整数,存储节点负责存储数据对象的原始数据块和冗余数据块;接收来自控制节点的数据块写入请求,完成数据块写入任务;接收控制节点发送的失效数据子块修复请求、可用数据子块编号及可用数据子块解码系数、失效数据块的新存储节点编号;根据可用数据子块编号获取可用数据子块,基于可用数据子块及可用数据子块解码系数进行解码计算,得到修复成功的数据子块,并将修复成功的数据子块发送给失效数据块的新存储节点;合并修复成功的数据子块得到恢复的数据块,完成修复后向控制节点发送修复成功信息;
控制节点上安装有数据写入管理程序和数据修复管理程序;数据写入管理程序接收用户提交的数据对象写入请求,负责存储编码系数,对数据对象进行分块和编码计算,向各存储节点分发数据块写入请求;数据修复管理程序接收用户提交的失效数据块修复请求,为失效数据块选择新的存储节点,向各存储节点发送失效数据子块修复请求、可用数据子块编号及可用数据子块解码系数、失效数据块的新存储节点编号,从存储节点接收修复成功信息,向用户返回修复成功信息;
存储节点上安装有数据写入程序和数据修复程序;数据写入程序负责接收来自控制节点的数据块写入请求,完成数据块写入任务;数据修复程序接收控制节点发送的失效数据子块修复请求、可用数据子块编号及可用数据子块解码系数、失效数据块的新存储节点编号;获取可用数据子块,基于可用数据子块及可用数据子块解码系数进行解码计算,得到修复成功的数据子块,并将修复成功的数据子块发送给失效数据块的新存储节点;合并修复成功的数据子块得到恢复的数据块,完成修复后向控制节点发送修复成功信息;
第二步,控制节点的数据写入管理程序,对用户提交的数据对象NData进行分块和编码计算,得到k个原始数据块和m个冗余数据块,将原始数据块和冗余数据块分别写入不同的存储节点,具体步骤如下:
2.1控制节点的数据写入管理程序接收用户提交的数据对象NData写入请求;
2.2控制节点的数据写入管理程序将NData分割为k个原始数据块,记这k个原始数据块为D1,D2,……,Di,……,Dk,1≤i≤k,并将每个原始数据块分割为k+m-1个原始数据子块,记原始数据块Di分割的第l个原始数据子块为dil,1≤l≤k+m-1,k和m满足k+m+1≤N;
2.3控制节点的数据写入管理程序利用存储的编码系数对k个原始数据块的原始数据子块进行编码计算,得到m个冗余数据块的冗余数据子块,记m个冗余数据块为C1,C2,……,Cj,……,Cm,1≤j≤m,记Cj的第l个冗余数据子块为cjl;
2.4控制节点的数据写入管理程序将D1,D2,……,Di,……,Dk和C1,C2,……,Cj,……,Cm分别写入不同的存储节点,将写入存储节点的数据对象记为Data;
第三步,控制节点的数据修复管理程序,为Data中待修复的失效数据块D'i选择新存储节点LN,D'i为Data中原始数据块Di失效后的数据块,具体方法是:
3.1控制节点的数据修复管理程序接收用户提交的失效数据块D'i修复请求;
3.2控制节点的数据修复管理程序从可用存储节点中选择一个存储节点作为D'i的新存储节点LN,选择原则是LN未存储数据对象Data的任何数据块,即在SNSet中既未存放任何原始数据块,又未存放任何冗余数据块的N-k-m个存储节点中选取;
第四步,控制节点的数据修复管理程序向数据对象Data中除去D'i的k+m-1个可用数据块所在的存储节点发送D'i的数据子块修复请求、可用数据子块编号及可用数据子块解码系数、D'i的新存储节点LN的编号;数据对象Data的除去D'i的k+m-1个可用数据块所在的存储节点执行数据修复程序,接收控制节点发送的D'i的数据子块修复请求、可用数据子块编号及可用数据子块解码系数、D'i的新存储节点LN的编号,获取可用数据子块,基于可用数据子块及可用数据子块解码系数进行解码计算,得到修复成功的数据子块,并将其发送给LN,具体方法是:
4.1控制节点的数据修复管理程序将数据对象Data的除去D'i以外的k+m-1个可用数据块所在的存储节点构成存储节点数组NSet,NSet[l]表示第l个可用数据块所在的存储节点,1≤l≤k+m-1;
4.2初始化存储节点序号l=1;
4.3控制节点的数据修复管理程序向NSet[l]发送d'il修复请求;
4.4控制节点的数据修复管理程序为d'il选择用于修复的可用数据子块,得到可用数据子块编号数组DBSetil,DBSetil[r]表示用于修复d'il的第r个可用数据子块的编号,1≤r≤k;
4.5控制节点的数据修复管理程序向存储节点NSet[l]发送DBSetil及DBSetil中的k个可用数据子块的解码系数Hi1,Hi2,……,Hir,……,Hik和D'i的新存储节点LN的编号;
4.6存储节点NSet[l]的数据修复程序接收控制节点发送的d'il修复请求;
4.7存储节点NSet[l]的数据修复程序接收控制节点发送的DBSetil及DBSetil中的k个可用数据子块的解码系数Hi1,Hi2,……,Hir,……,Hik;
4.8存储节点NSet[l]的数据修复程序接收控制节点发送的D'i的新存储节点LN的编号;
4.9存储节点NSet[l]的数据修复程序获取可用数据子块,基于可用数据子块及可用数据子块解码系数进行解码计算,得到修复成功的数据子块,具体步骤如下:
4.9.1初始化可用数据子块序号r=1;
4.9.2令x=DBSetil[r];
4.9.3存储节点NSet[l]向存储节点NSet[x]发送读取数据对象Data的第x个可用数据块Ex的第l个可用数据子块exl的请求;
4.9.4存储节点NSet[x]接收exl的读取请求,读取本地存储的可用数据子块exl,并发送给存储节点NSet[l];
4.9.5存储节点NSet[l]接收存储节点NSet[x]发送的exl,进行本地解码计算,将解码系数Hir与exl进行逐位相乘得到新数据子块sirl,即,sirl=Hir×exl;
4.9.6如果r=1,令修复成功的数据子块rdil=sirl,转第4.9.7步;否则,将解码计算结果进行合并,即令rdil=rdil+sirl,转第4.9.7步;
4.9.7更新可用数据子块序号r=r+1;
4.9.8如果r≤k,转第4.9.2步;否则,转第4.10步;
4.10存储节点NSet[l]的数据修复程序将rdil发送给LN;
4.11更新存储节点序号,l=l+1;
4.12如果l≤k+m-1,继续向NSet中的存储节点发送d'il修复请求,转第4.3步;否则,转第五步;
第五步,LN执行数据修复程序,接收除去失效数据块的k+m-1个可用数据块所在的存储节点发送的所有修复成功的数据子块,即rdi1,rdi2,……,rdil,……,rdi(k+m-1),1≤l≤k+m-1,将rdi1,rdi2,……,rdil,……,rdi(k+m-1)按照数据子块编号由小到大进行合并,得到D'i恢复后的Di,向控制节点发送修复成功信息;
第六步,控制节点执行数据修复管理程序,接收来自存储节点LN的修复成功信息,并向用户返回修复成功信息。
2.如权利要求1所述的一种基于纠删码的全分布修复方法,其特征在于2.3步所述利用编码系数对k个原始数据块的原始数据子块进行编码计算,得到冗余数据子块C1,C2,……,Cj,……,Cm的具体方法为:
2.3.1初始化信息,具体包括:
2.3.1.1令冗余数据块Cj的序号j=1;
2.3.1.2令冗余数据子块cjl的序号l=1;
2.3.1.3令原始数据块Di的序号i=1;
2.3.2控制节点的数据写入管理程序进行编码计算,将编码系数Gji与原始数据子块dil进行逐位相乘,即,tjil=Gji×dil,得到新数据子块tjil;
2.3.3如果i=1,令cjl=tjil,转第2.3.4步;否则,将tjil与cjl进行逐位相加,即,cjl=cjl+tjil,转第2.3.4步;
2.3.4更新原始数据块Di的序号,i=i+1;
2.3.5如果i>k,则令i=1,l=l+1;
2.3.6如果l>k+m-1,则令l=1,j=j+1;
2.3.7如果j>m,结束;否则,转第2.3.2步。
3.如权利要求1所述的一种基于纠删码的全分布修复方法,其特征在于2.4步所述将D1,D2,……,Di,……,Dk和C1,C2,……,Cj,……,Cm分别写入不同的存储节点的具体方法为:
2.4.1初始化信息,具体包括:
2.4.1.1分布存储系统的N个存储节点构成集合SNSet;
2.4.1.2令原始数据块Di的序号i=1;
2.4.1.3令冗余数据块Cj的序号j=1;
2.4.2控制节点的数据写入管理程序从SNSet中任意选择一个存储节点SN,并向存储节点SN发送Di的写入请求,将存储节点SN从SNSet中删除,即,SNSet=SNSet-{SN};
2.4.3存储节点SN的数据写入程序接收来自控制节点的Di写入请求,将Di写入本地磁盘;
2.4.4更新Di的序号,i=i+1;
2.4.5如果i>k,转第2.4.6步;否则,转到第2.4.2步;
2.4.6控制节点的数据写入管理程序从SNSet中任意选择一个存储节点SN,控制节点的数据写入管理程序向存储节点SN发送Cj的写入请求,将存储节点SN从SNSet中删除,即,SNSet=SNSet-{SN};
2.4.7存储节点SN的数据写入程序接收来自控制节点的Cj写入请求,将Cj写入本地磁盘;
2.4.8更新Cj的序号,j=j+1;
2.4.9如果j>m,结束;否则,转第2.4.6步。
4.如权利要求1所述的一种基于纠删码的全分布修复方法,其特征在于4.4步控制节点的数据修复管理程序为d'il选择用于修复的可用数据子块的具体方法为:
4.4.1采用可用数据子块编号数组DBSetil存储用于修复d'il的可用数据子块的编号,DBSetil[r]表示用于修复d'il的第r个可用数据子块的编号;
4.4.2初始化可用数据子块序号r=1;
4.4.3令DBSetil[r]=l+r-1;
4.4.4如果DBSetil[r]≥k+m,令DBSetil[r]=DBSetil[r]-(k+m-1),转第4.4.5步;否则,转第4.4.5步;
4.4.5更新可用数据子块序号,r=r+1;
4.4.6如果r≤k,转第4.4.3步;否则,结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811171758.6A CN109343998B (zh) | 2018-10-09 | 2018-10-09 | 一种基于纠删码的全分布修复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811171758.6A CN109343998B (zh) | 2018-10-09 | 2018-10-09 | 一种基于纠删码的全分布修复方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109343998A true CN109343998A (zh) | 2019-02-15 |
CN109343998B CN109343998B (zh) | 2021-10-29 |
Family
ID=65308140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811171758.6A Active CN109343998B (zh) | 2018-10-09 | 2018-10-09 | 一种基于纠删码的全分布修复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109343998B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112445656A (zh) * | 2020-12-14 | 2021-03-05 | 北京京航计算通讯研究所 | 分布式存储系统中数据的修复方法及装置 |
CN114595092A (zh) * | 2022-04-28 | 2022-06-07 | 阿里云计算有限公司 | 分布式存储系统、数据重构方法、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103607304A (zh) * | 2013-11-21 | 2014-02-26 | 中国人民解放军国防科学技术大学 | 一种基于纠删码的失效数据线形修复方法 |
CN103729151A (zh) * | 2014-01-16 | 2014-04-16 | 中国人民解放军国防科学技术大学 | 一种基于改进型纠删码的失效数据修复方法 |
US20180095839A1 (en) * | 2016-01-29 | 2018-04-05 | Netapp, Inc. | Online Backup to an Object Service Using Bulk Export |
-
2018
- 2018-10-09 CN CN201811171758.6A patent/CN109343998B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103607304A (zh) * | 2013-11-21 | 2014-02-26 | 中国人民解放军国防科学技术大学 | 一种基于纠删码的失效数据线形修复方法 |
CN103729151A (zh) * | 2014-01-16 | 2014-04-16 | 中国人民解放军国防科学技术大学 | 一种基于改进型纠删码的失效数据修复方法 |
US20180095839A1 (en) * | 2016-01-29 | 2018-04-05 | Netapp, Inc. | Online Backup to an Object Service Using Bulk Export |
Non-Patent Citations (1)
Title |
---|
王意洁,许方亮,裴晓强: "分布式存储中的纠删码容错技术研究", 《计算机学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112445656A (zh) * | 2020-12-14 | 2021-03-05 | 北京京航计算通讯研究所 | 分布式存储系统中数据的修复方法及装置 |
CN112445656B (zh) * | 2020-12-14 | 2024-02-13 | 北京京航计算通讯研究所 | 分布式存储系统中数据的修复方法及装置 |
CN114595092A (zh) * | 2022-04-28 | 2022-06-07 | 阿里云计算有限公司 | 分布式存储系统、数据重构方法、设备及存储介质 |
CN114595092B (zh) * | 2022-04-28 | 2022-09-20 | 阿里云计算有限公司 | 分布式存储系统、数据重构方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109343998B (zh) | 2021-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103729151B (zh) | 一种基于改进型纠删码的失效数据修复方法 | |
CN103607304B (zh) | 一种基于纠删码的失效数据线形修复方法 | |
JP5298393B2 (ja) | 並列リードソロモンraid(rs−raid)アーキテクチャ、デバイス、および方法 | |
CN101488104B (zh) | 一种实现高效安全存储的系统和方法 | |
US8239734B1 (en) | Efficient data storage in storage device arrays | |
CN103944981B (zh) | 一种基于纠删码技术改进的云存储系统及实现方法 | |
CN107885612A (zh) | 数据处理方法和系统及装置 | |
CN109814807B (zh) | 一种数据存储方法及装置 | |
CN111697976B (zh) | 一种基于分布式存储的rs纠删快速解码方法及系统 | |
CN109491835B (zh) | 一种基于动态分组码的数据容错方法 | |
CN104035732B (zh) | 一种面向纠删码的数据放置方法 | |
WO2010133080A1 (zh) | 基于(d,k)摩尔图的网络存储结构的数据存储方法 | |
CN113190377B (zh) | 一种基于分布式存储系统的可靠冗余方法及设备 | |
CN112000512B (zh) | 一种数据修复方法及相关装置 | |
WO2023103213A1 (zh) | 一种分布式数据库的数据存储方法和装置 | |
CN110389848B (zh) | 基于分块构造的部分重复码构造方法及故障节点修复方法 | |
CN103761195A (zh) | 一种利用分布式数据编码的存储方法 | |
CN102184079B (zh) | 一种raid5级别磁盘阵列的写性能优化方法 | |
CN114816837B (zh) | 一种纠删码融合方法、系统、电子设备及存储介质 | |
CN111858169A (zh) | 一种数据恢复方法、系统及相关组件 | |
CN109343998A (zh) | 一种基于纠删码的全分布修复方法 | |
CN108762978B (zh) | 一种局部部分重复循环码的分组构造方法 | |
CN104102558B (zh) | 一种基于纠删码的文件追加方法 | |
CN107153661A (zh) | 一种基于hdfs系统的数据的存储、读取方法及其装置 | |
CN109067852A (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 |