一种基于二进制域里德所罗门码的数据编解码方法技术

技术编号:14563371 阅读:116 留言:0更新日期:2017-02-05 20:15
本发明专利技术涉及分布式存储系统领域,尤其涉及一种基于二进制域里德所罗门码(Binary Reed-Solomon Code,简为BRS码)的数据编解码方法,包括以下步骤:(A)原始数据构建二进制域里德所罗门码;(B)更新二进制域里德所罗门码;(C)重构二进制域里德所罗门码;所述步骤(A)、步骤(B)以及步骤(C)中的运算均采用异或运算。本发明专利技术的有益效果是:通过该方法大大提高了数据上传和下载的速率,很大程度上减少了系统操作复杂度(如元数据更新、更新后的数据广播等);在实际的分布式存储系统中具有很高的应用价值和发展潜力。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及分布式存储系统领域,尤其涉及一种基于二进制域里德所罗门码的数据编解码方法
技术介绍
随着计算机网络应用的迅速发展,网络信息数据量变得越来越大,海量信息存储变得尤为重要,持续增长的数据存储压力带动着整个存储市场的快速发展;分布式存储以其高性价比、低初期投资、按需付费等优越的特点日益成为当今大数据存储的主流技术。分布式存储系统的存储结点失效已经成为一种常态,当系统所部署的存储结点变得不可靠时,必须引入冗余来提高结点失效时的可靠性,引入冗余最简单的方法就是对原始数据直接备份,直接备份虽然简单但是其存储效率和系统可靠性不高,而通过编码引入冗余的方法可以提高其存储效率;因此分布式存储的高概率可用性、可靠性以及安全性等均是分布式存储系统的关键技术问题。在目前的存储系统中,编码方法一般采用MDS码,MDS码可以达到存储空间效率的最佳,一个(n,k)MDS纠删码需要将一个原始文件分成k个大小相等的模块,并通过线性编码生成n个互不相关的编码模块,由n个结点存储不同的模块,并满足MDS属性(n个编码模块中任意k个就可重构原始文件)。当存储系统中的存储结点失效时,为了保持存储系统的冗余量,需要恢复该失效结点存储的数据并将该数据存储在新结点中,该过程称为修复过程。在修复过程中,里德所罗门码首先需要下载k个存储结点的数据并恢复出原始数据,之后为新结点编码出失效结点的存储数据。而当原始数据出现改动时,为了维持数据的一致,需要对冗余的校验数据块进行更改,这个过程称为更新过程。RDP码,全称RowDiagonalParityCode,是一种简单的纠删码(引自论文ReferencesP.Corbettetal.“Rowdiagonalparityfordoublediskfailurecorrection,”4thUsenixConf.onFileandStorageTech.,SanFrancisco,2004)。它不需要使用有限域或者生成矩阵,只是按行和按泛对角线进行异或计算,生成两个校验数据块,构成了一种带有2个校验数据块的纠删码;但是RDP码更新复杂度偏高和不可拓展。论文[JamesS.Plank,\OptimizingCauchyReed-SolomonCodesforFault-TolerantNetworkStorageApplications\NetworkComputingandApplications,2006.]提出的柯西里德所罗门码(CauchyReed-SolomonCode,简称CRS码)是当前最常用的里德所罗门编码之一,已经被广泛用于分布式存储系统中,例如在HDFS中就提供了一套基于CRS编码的分布式存储系统。但是CRS依然存在着一些缺陷,首先,使用0-1生成矩阵,虽然能大大降低编解码复杂度,但实际上,它的解码复杂度却不是最优的,还存在许多纠删码,比如DRP编码,它们的解码复杂度要优于CRS。其次,它用于编解码的有限域二进制矩阵还是比较复杂,散乱无章的0和1使得编解码难以更进一步优化。然后,也是因为编码复杂度目前还比较高,使得数据更新时,需要分析各种不同的情况,也使得编码复杂度比较高。
技术实现思路
为了解决现有技术中的问题,本专利技术提供了一种基于二进制域里德所罗门码的数据构造、重构及更新方法,解决现有技术中主要针对传统的存储装置系统结构比较复杂,采用的编码方式结点数据存储量大,在编码解码更新过程中所需要计算复杂性高的问题,达到保证系统的冗余度,有效地减少了数据更新时的计算量,降低了编解码过程中的计算复杂度,并提高结点失效后修复过程的有效性(包括计算开销和修复时间)的目的。本专利技术提供了一种基于二进制域里德所罗门码的数据编解码方法,包括以下步骤:包括以下步骤:(A)原始数据构建二进制域里德所罗门码;(B)更新二进制域里德所罗门码;(C)重构二进制域里德所罗门码;所述步骤(A)、步骤(B)以及步骤(C)中的运算均采用异或运算。作为本专利技术的进一步改进,所述原始数据包括k个长度为Lbit原始的数据块,记为si=si,1si,2...si,L,i=0,1,2,...,k-1;校验数据块ma通过如下方式给出:校验数据块ma唯一的标识符为IDa=(r0a,r1a,...,rk-1a)=(0,a,2a,...,(k-1)a),a=0,1,2,...,n-k-1.;]]>原始的数据块和校验数据块是线性独立的;原始的数据块被存放在系统结点中,校验数据块被存放在校验结点中。作为本专利技术的进一步改进,所述步骤(A)中进一步包括:(A1)原始数据分块,将原始数据B平均分割成k个数据块,每个数据块有Lbit数据,记为S=(s0,s1,...,sk-1);(A2)构建校验数据块M=(m0,m1,...,mn-k-1),其中,表示在原始数据块sj前面添加的“0”的比特数,从而形成校验数据块mi;其中为(r0a,r1a,r2a,...,rk-1a)=(0,a,2a,...,(k-1)a),a=0,1,...,n-k-1.;]]>(A3)节点存储数据进行分发,将原始数据块和校验数据块共计N块发送到N个节点上;每个结点存储数据,结点Ni(i=0,1,...,n-1)存储的数据为s0,s1,s2,...,sk-1,m0,m1,m2,...,mn-k-1,校验数据块通过异或运算获取。作为本专利技术的进一步改进,所述步骤(B)中进一步包括:(B1)新的原始数据块分块,将更新后的文件进行分块,分成新的k个原始数据块;(B2)将新的原始数据块和对应的旧的原始数据块进行比较,算出每个块的变化量;(B3)判断每个块是不是发生改变,若发生改变,每个校验数据块根据冗余符号,在对应的位置上加上变化量,完成编码的更新;若没有发生改变则不进行任何操作。作为本专利技术的进一步改进,所述步骤(C)中进一步包括:收集任意k个结点上的原始数据块和/或校验数据块,通过循环迭代进行异或计算完成解码。本专利技术的有益效果是:通过该方法大大提高了数据上传和下载的速率,很大程度上减少了系统操作复杂度(如元数据更新、更新后的数据广播等);在实际的分布式存储系统中具有很高的应用价值和发展潜力;二进制域里德所罗门码(即BRS码)不仅拥有最优的编解码速度,同时也拥有最快的更新速度。面对庞大的数据量更新,BRS能以最快的速度完成更新,在最短的时间内完成任务,节省时间和资源,既能减少成本的消耗又能达到一种良好的用户体验。【附图说明】图1是本专利技术基于二进制域里德所罗门码的本文档来自技高网
...

【技术保护点】
一种基于二进制域里德所罗门码(BinaryReed‑Solomon Code,简为BRS码)的数据编解码方法,其特征在于:包括以下步骤:(A)原始数据构建二进制域里德所罗门码;(B)更新二进制域里德所罗门码;(C)重构二进制域里德所罗门码;所述步骤(A)、步骤(B)以及步骤(C)中的运算均采用异或运算。

【技术特征摘要】
【国外来华专利技术】1.一种基于二进制域里德所罗门码(BinaryReed-SolomonCode,简为BRS码)的数据
编解码方法,其特征在于:包括以下步骤:(A)原始数据构建二进制域里德所罗门
码;(B)更新二进制域里德所罗门码;(C)重构二进制域里德所罗门码;所述步骤
(A)、步骤(B)以及步骤(C)中的运算均采用异或运算。
2.根据权利要求1所述的基于二进制域里德所罗门码的数据编解码方法,其特征在于:
所述原始数据包括k个长度为Lbit原始的数据块,记为
si=si,1si,2...si,L,i=0,1,2,...,k-1;校验数据块ma通过如下方式给出:
校验数据块ma唯一的标识符为
IDa=(r0a,r1a,...,rk-1a)=(0,a,2a,...,(k-1)a),a=0,1,2,...,n-k-1.;]]>原始的数
据块和校验数据块是线性独立的;原始的数据块被存放在系统结点中,校验数据块
被存放在校验结点中。
3.根据权利要求2所述的基于二进制域里德所罗门码的数据编解码方法,其特征在于:
所述步骤(A)中进一步包括:(A1)原始数据分块,将原始数据B平均分割成k个
数据块,每个数据块有Lbit数据,记为S=(s0,s1,...,sk-1);(A2)构建校验数据
块M=(m0,m1,...,m...

【专利技术属性】
技术研发人员:李挥侯韩旭陈俊朱兵李硕彦
申请(专利权)人:深圳赛思鹏科技发展有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1