【技术实现步骤摘要】
一种高效数据读取的容错编码方法
本专利技术涉及一种高效数据读取的容错编码方法,属于分布式存储领域。
技术介绍
当前,随着分布式系统特别是云计算系统规模的不断扩大,系统中的服务器失效已成常态,这严重影响数据存储的可靠性。针对存储的可靠性问题,云计算系统通常采用数据冗余技术来提高数据的持久性和可用性。目前实际应用中最广泛的数据冗余技术是基于副本(replication)的数据冗余技术。副本冗余技术将原始数据文件复制为n份,分发给不同的网络节点;当一个数据节点失效时再利用可用节点恢复失效数据。然而,基于副本的数据冗余方案大大地增加了存储成本开销,难以有效支持云计算技术的快速发展。近几年来,基于编码的数据冗余技术成为研究热点。该方案先将原始数据切分成k个原始数据块,再用这些数据块编码生成(n-k)个校验数据块,即共有n个冗余数据块,之后存放到不同的存储节点。相比副本方案,在同等可靠性的情况下,该编码方案可以极大地减少数据的存储空间,换而言之,在同等存储开销的情况下,编码方案可以极大地提高数据的可靠性。编码方案可以既提高数据的可靠性又降低数据的存储开销。目前主要有三类基于编码的数据冗余技术:(1)里德--所罗门编码(Reed-SolomonCodes)[I.Reed,G.Solomon.PolynomialCodeSovercertainfinitefieldS.JournaloftheSocietyforIndustrialandAppliedMathematics.1960,8:300304.]:在用户读取数据时,若原始数据失效,则需要先下载k倍个冗余数据块,然 ...
【技术保护点】
一种高效数据读取的容错编码方法,其特征在于包括:IZSHC码的编码构造方法与IZSHC码下读取失效数据的方法,IZSHC码的编码构造方法是对要读取的原始数据冗余处理,即将原始文件进行编码来生成冗余数据块,冗余数据块分为原始数据块和校验数据块;IZSHC码下读取失效数据的方法是在原始数据块发生读取失效时利用冗余数据块对失效数据进行解码恢复;其中:(1)IZSHC码的编码构造方法,实现步骤如下:(11)将大小为M字节的原始二进制数据文件进行分块分组分片的预处理得到原始数据组,组中的每一个文件数据块称为原始数据块,每个组均分配有m+1个原始数据块并顺序编号;将每个数据块放置于分布式系统中不同的存储节点上,对应的节点称为原始节点;(12)基于原始数据组构造得到单元组,一个单元组包含一个原始数据组及由原始组内数据块编码生成的两个校验数据块:row块和zigzag块,每个校验块均由α个数据片连接组成;(13)基于单元组构造得到第1层复合组,一个复合组由若干,设为s1个单元组及新生成的两个校验块构成,记为两个校验块分别称为组内顶层row块和组内顶层zigzag块,均由α个数据片连接组成;(14)基于 ...
【技术特征摘要】
1.一种高效数据读取的容错编码方法,其特征在于包括:IZSHC码的编码构造方法与IZSHC码下读取失效数据的方法,IZSHC码的编码构造方法是对要读取的原始数据冗余处理,即将原始文件进行编码来生成冗余数据块,冗余数据块分为原始数据块和校验数据块;IZSHC码下读取失效数据的方法是在原始数据块发生读取失效时利用冗余数据块对失效数据进行解码恢复;其中:(1)IZSHC码的编码构造方法,实现步骤如下:(11)将大小为M字节的原始二进制数据文件进行分块分组分片的预处理得到原始数据组,组中的每一个文件数据块称为原始数据块,每个组均分配有m+1个原始数据块并顺序编号;将每个数据块放置于分布式系统中不同的存储节点上,对应的节点称为原始节点;(12)基于原始数据组构造得到单元组,一个单元组包含一个原始数据组及由原始组内数据块编码生成的两个校验数据块:row块和zigzag块,每个校验块均由α个数据片连接组成;(13)基于单元组构造得到第1层复合组,一个复合组由若干,设为s1个单元组及新生成的两个校验块构成,记为两个校验块分别称为组内顶层row块和组内顶层zigzag块,均由α个数据片连接组成;(14)基于第1层复合组构造得到第2层复合组,一个第2层复合组由若干,设为s2个第1层复合组及新生成的组内顶层row块和组内顶层zigzag块构成;(15)按照步骤(14)中的方法逐级构建更高层复合组,最终生成IZSHC编码IZSHC(k,r,α),其中k即为文件的原始数据块个数,r则是所有生成的校验块个数,α为每个数据块划分的片数;每个数据块,包括新生成的校验数据块,分别放置到不同的存储节点上;(2)IZSHC码下读取失效数据的方法,是对失效节点数据恢复后读取,采用下列步骤(21)或步骤(22)实现,所述步骤(21)与(22)相互独立,分别针对不同失效情况,步骤(21)针对一个节点发生失效的情况;步骤(22)针对两个节点同时发生失效的情况;步骤(2)通过在基于步骤(1)的编码结构得到的冗余数据块上进行实施;(21)当一个原始节点失效时,恢复过程如下:(211)设失效的原始节点的数据块编号为i,构造数据块i的修复集合Xi,其元素为相关的数据片编号;(212)从数据块i所属单元组中所有未失效数据块下载Xi标识的数据片来恢复数据块i;此时每个未失效节点所上传数据片的总数据量为M/2k,总共的传输量为(m+2)·M/2k;(22)当两个原始节点失效时,设失效节点的数据块编号为I,n,所处的单元组分别为p1,p2=0,1,2…,每个单元组中的原始数据块个数为m+1,每个数据块大小为M/k,针对p1,p2的不同取值情况,对应恢复过程如下:(221)若p1=p2,此时l,n位于同一组内,下载组内剩余m+1个未失效数据块即可恢复失效数据,此时下载量为单元组内m+1个数据块大小之和(m+1)·M/k;(222)若p1≠p2,此时l,n在不同的2个单元组内,使用步骤(21)的方法分别在各单元组中独自恢复这两个数据块,此时总共的下载量为(m+2)·M/k。2.根据权利要求1的高效数据读取的容错编码方法,其特征在于:所述步骤(11)中将大小为M字节的原始二进制数据文件进行分块分组分片的预处理得到原始数据组,并将每一块文件数据块放置于分布式系统中不同的存储节点上,具体实现过程为:a)将原始文件分割为大小相等的k个原始数据块,并顺序划分为s个组;这些组被称为原始数据组即原始组,每个组包含k/s个原始数据块并顺序编号;b)以数据块为单位,将每个数据块放置于不同存储节点上;c)将每个数据块在其存储节点上顺序分割为大小相等的α=2m个数据片并按数字顺序编号,m=k/s-1。3.根据权利要求1的高效数据读取的容错编码方法,其特征在于:所述步骤(12)基于原始数据组构造得到单元组,一个单元组包含一个原始数据组及由原始组内数据块编码生成的两个校验数据块:row块和zigzag块,每个校验块均由α个数据片连接组成的具体构造过程如下:d)row块中每个数据片均由组内所有原始数据块中同序号的数据片直接在某个有限域中相加生成;e)zigzag块中每个待生成的数据片依次按0,1,2,…α顺序编号,为组内每个原始数据块指定一个这些序号的排列组合,再...
【专利技术属性】
技术研发人员:黄震,游鹏飞,彭宇行,吴泉森,牛爱民,李明昊,李慧,方长江,马嫣,汪昌健,
申请(专利权)人:中国人民解放军国防科学技术大学,
类型:发明
国别省市:湖南;43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。