一种辅助实现纠删码程序的工作方法技术

技术编号:26790560 阅读:21 留言:0更新日期:2020-12-22 17:05
本发明专利技术提出了一种辅助实现纠删码程序的工作方法,包括如下步骤:S1,根据计算工具获取计算机数据,形成先导数据层,对计算机数据进行数据存储整理;S2,将数据存储整理之后,通过应用层的纠删码程序进行数据分割放置,并且对数据分割放置后形成放置地址;S3,数据经过纠删码执行后,如果发生文件块丢失,通过分割放置形成的放置地址,遍历找寻丢失文件块,并完成数据恢复。

【技术实现步骤摘要】
一种辅助实现纠删码程序的工作方法
本专利技术涉及计算机领域,尤其涉及一种辅助实现纠删码程序的工作方法。
技术介绍
纠删码(erasurecoding,EC),也称为前向纠错编码,是一种计算机数据保护方法,将数据分割成片段,把冗余数据块扩展、编码,并将其存储在不同的位置,基于查表实现的伽罗瓦域计算,已经可以有效地节省纠删码编解码时的效率,但每次在程序启动时通过计算初始化正反表gflog和gfilog,从实用性上来讲,不够方便,存在一定的优化空间。这就亟需本领域技术人员解决相应的技术问题。
技术实现思路
本专利技术旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种辅助实现纠删码程序的工作方法。为了实现本专利技术的上述目的,本专利技术提供了一种辅助实现纠删码程序的工作方法,其特征在于,包括如下步骤:S1,根据计算工具获取计算机数据,形成先导数据层,对计算机数据进行数据存储整理;S2,将数据存储整理之后,通过应用层的纠删码程序进行数据分割放置,并且对数据分割放置后形成放置地址;S3,数据经过纠删码执行后,如果发生文件块丢失,通过分割放置形成的放置地址,遍历找寻丢失文件块,并完成数据恢复。优选的,所述S1包括:当获取计算机数据后,完成先导数据层的建立,设置某一计算机数据中切块份数k,校验文件块数m的配置数据,将某一计算机数据分割成k份,k1,k2,k3...kk,并且每份是等大小数据块,将分割成k份的数据块依据编码矩阵(常见有范德蒙矩阵和柯西矩阵,此处列举范德蒙矩阵)构建方程:10*k1+20*k2+30*k3+...+k0*kk=m111*k1+21*k2+31*k3+...+k1*kk=m2....1m-1*k1+2m-1*k2+3m-1*k3+...+km-1*kk=mm方程中k1-kk的系数来源自范德蒙矩阵,仅用于保证方程有解。最终得到源数据块k1-kk和校验块m1-mm共计k+m个文件,当其中任意丢失不超过m数量个文件时,通过计算剩余校验文件块的方式还原出原文件;方程的计算和丢失块的还原需要依托于伽罗瓦域的四则运算。优选的,所述S2包括:伽罗瓦域的四则运算为,生成元是计算机数据域上的一类特殊元素,生成元的幂可以遍历计算机数据域上的所有元素;假设g是计算机数据域GF(2^w)上生成元,那么集合{g0,g1,……,g(2^w-1)}包含了计算机数据域GF(2^w)上所有非零元素;在计算机数据域GF(2^w)中2总是生成元;将生成元应用到多项式中,GF(2^w)中的所有多项式都是可以通过多项式生成元g通过幂求得;即计算机数据域中的任意元素a,表示为a=g^s;GF(2^w)是一个有限计算机数据域,就是元素个数是有限的,但指数s是可以无穷的;所以必然存在循环;这个循环的周期是2^w-1,其中g不能生成多项式0;所以当s大于等于2^w-1时,g^s=g^(s%(2^w-1));对于g^s=a,有正过程和逆过程;知道指数s求a是正过程,知道值a求指数s是逆过程;对于乘法,假设第一纠码a=g^n,第一纠码b=g^m;那么a*b=g^n*g^m=g^(n+m);查表的方法就是根据a和b,分别查表得到第一结果n和第二结果m,然后查表g^(n+m)即可;因此需要构造正表和反表,在计算机数据域GF(2^w)域上分别记为gflog和gfilog;gflog是将二进制形式映射为多项式形式,gfilog是将多项式形式映射为二进制形式;多项式0,是无法用生成元生成的;g^0等于多项式1,而不是0;优选的,所述S3包括:二进制形式映射为多项式形式Gflog时,和多项式形式映射为二进制形式gfilog是将时,查表进行乘法和除法运算,在计算机数据域GF(2^4)域上的乘法和除法,已知2^w-1=2^4-1=15:乘法:7*9=gfilog[gflog[7]+gflog[9]]=gfilog[10+14]=gfilog[24mod15]=gfilog[9]=10除法:13/11=gfilog[gflog[13]-gflog[11]]=gfilog[13-7]=gfilog[6]=12,通过一个辅助性的先行计算工具,计算出不同配置下的正反表,并将所有正反表以json格式存入相应的数据存储地址中;根据提供给不同配置的纠删码程序,将正反表内置在计算机数据块中,程序初始化时直接加载到内存中,并在数据发生损坏时进行恢复。优选的,还包括:当丢失其中一个数据文件块高于同时丢失两份或更多数据文件块;解决单一文件丢失后能马上进行修复的情况,将若干文件区成为数据切块份数k,校验文件块数m的配置数据的编解码区域,这样在丢失一份文件时。综上所述,由于采用了上述技术方案,本专利技术的有益效果是:该程序已实现通过输入配置参数,直接生成相应的正反表,并将结果复制到粘贴板,以便复制到需要的程序中。该程序基于java语言编写,可跨平台执行。该程序内置jdbc连接器,可将多种纠删码配置下正反表的json字符串存入指定数据库中。本专利技术的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明本专利技术的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:图1是本专利技术先导数据层的示意图;图2是本专利技术纠删码执行示意图;图3是本专利技术总体示意图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本专利技术,而不能理解为对本专利技术的限制。通过一个正反表辅助计算程序,可以直接生成不同配置(k和m根据实际情况变化)下的正反表,可将表数据直接内置在应用内部或数据库中,无需每个使用纠删码的程序另行计算生成。纠删码技术,通过对原文件切片计算,例如在k=4,m=2的配置下,将4M原文件切割成4份1M等大小数据文件K块,同时计算出2份1M等大小校验文件m块,即可满足在6份文件中任意丢失了其中2块,都可以通过计算剩余文件块的方式还原出原文件;纠删码的实现需要依托于伽罗瓦域的四则运算。伽罗瓦域的四则运算,伽罗瓦域能够有效的针对计算机应用提供数学计算支持,其本身开销巨大。如果基于查表的方式进行计算,可以有效地节省编解码的性能损耗。伽罗瓦域查表实现四则运算的原理。首先介绍一个概念,生成元。生成元是域上的一类特殊元素,生成元的幂可以遍历域上的所有元素。假设g是域GF(2^w)上生成元,那么集合{g0,g1,……,g(2^w-1)}包含了域GF(2^w)上所有非零元素。在域GF(2^w)中2总是生成元。将生成元应用到多项式中,GF(2^w)中的所有多项式都是可以通过多项式生成元g通过幂求得。即域中的任意元素a本文档来自技高网...

【技术保护点】
1.一种辅助实现纠删码程序的工作方法,其特征在于,包括如下步骤:/nS1,根据计算工具获取计算机数据,形成先导数据层,对计算机数据进行数据存储整理;/nS2,将数据存储整理之后,通过应用层的纠删码程序进行数据分割放置,并且对数据分割放置后形成放置地址;/nS3,数据经过纠删码执行后,如果发生文件块丢失,通过分割放置形成的放置地址,遍历找寻丢失文件块,并完成数据恢复。/n

【技术特征摘要】
1.一种辅助实现纠删码程序的工作方法,其特征在于,包括如下步骤:
S1,根据计算工具获取计算机数据,形成先导数据层,对计算机数据进行数据存储整理;
S2,将数据存储整理之后,通过应用层的纠删码程序进行数据分割放置,并且对数据分割放置后形成放置地址;
S3,数据经过纠删码执行后,如果发生文件块丢失,通过分割放置形成的放置地址,遍历找寻丢失文件块,并完成数据恢复。


2.根据权利要求1所述的辅助实现纠删码程序的工作方法,其特征在于,所述S1包括:
当获取计算机数据后,完成先导数据层的建立,设置某一计算机数据中切块份数k,校验文件块数m的配置数据,将某一计算机数据分割成k份,k1,k2,k3...kk,并且每份是等大小数据块,将分割成k份的数据块依据编码矩阵构建方程:
10*k1+20*k2+30*k3+...+k0*kk=m1
11*k1+21*k2+31*k3+...+k1*kk=m2
....
1m-1*k1+2m-1*k2+3m-1*k3+...+km-1*kk=mm
方程中k1-kk的系数来源自范德蒙矩阵,仅用于保证方程有解。最终得到源数据块k1-kk和校验块m1-mm共计k+m个文件,当其中任意丢失不超过m数量个文件时,通过计算剩余校验文件块的方式还原出原文件;方程的计算和丢失块的还原需要依托于伽罗瓦域的四则运算。


3.根据权利要求1所述的辅助实现纠删码程序的工作方法,其特征在于,所述S2包括:
伽罗瓦域的四则运算为,生成元是计算机数据域上的一类特殊元素,生成元的幂可以遍历计算机数据域上的所有元素;假设g是计算机数据域GF(2^w)上生成元,那么集合{g0,g1,……,g(2^w-1)}包含了计算机数据域GF(2^w)上所有非零元素;在计算机数据域GF(2^w)中2总是生成元;将生成元应用到多项式中,GF(2^w)中的所有多项式都是可以通过多项式生成元g通过幂求得;即计算机数据域中的任意元素a,表示为a=g^s;GF(2^w)是一个有限计算机数据域,就是元素个数是有限的,但指数s是可以无...

【专利技术属性】
技术研发人员:田文丰冯宏伟刘铜徐强张博
申请(专利权)人:北京易安睿龙科技有限公司
类型:发明
国别省市:北京;11

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

1