一种提高纠错能力的交叉分组编译码方法技术

技术编号:17561379 阅读:40 留言:0更新日期:2018-03-28 11:59
本发明专利技术公开了一种提高纠错能力的交叉分组编译码方法,用于提高现有分布式存储系统的纠错能力。该方法是将原数据S平均分为k块并储存于k个数据节点上,将k个数据节点交叉分组,对分好组的数据节点在有限域上求得一个生成矩阵G,利用生成矩阵G求得校验块,然后将校验块并存入新的节点,当某个或部分节点失效时,利用剩余节点及校验块联立方程组解出失效节点。本发明专利技术利用交叉分组编码方法存储校验数据,它的校验节点个数可以根据用户自身的需要来设定,校验节点的个数关乎着纠错能力,所以用户可以通过衡量自身的情况来进行设定。本发明专利技术可以使得存储空间的利用率提高,空间冗余度降低,节约大量的空间,对于存储空间有限的用户来说非常实用。

A cross block coding and decoding method for improving error correction ability

The present invention discloses a cross block encoding and decoding method for improving the error correction ability, which is used to improve the error correction ability of the existing distributed storage system. This method is the original data S divided into k blocks and K data stored in the node, the K node data packet data node on the cross, good group to obtain a matrix over finite field G, G obtained by generating matrix check blocks and then check blocks and stored in a new node. When a part or node failure, with the remaining nodes and parity blocks of simultaneous equations solved node failure. The invention uses cross block coding to store check data, and the number of check nodes can be set according to users' needs. The number of check nodes is related to the ability of error correction, so users can set them by measuring their own situations. The invention can improve the utilization ratio of the storage space, reduce the space redundancy and save a lot of space, which is very practical for users with limited storage space.

【技术实现步骤摘要】
一种提高纠错能力的交叉分组编译码方法
本专利技术涉及计算机信息存储及恢复
,特别涉及一种提高纠错能力的交叉分组编译码方法。
技术介绍
进入大数据时代,数据在规模上呈现出几何级的数量增长趋势。构建于大量商用硬件之上的分布式存储系统,不仅可以通过并行访问的方式提供极高的数据存取性能,也可以通过增加存储节点增加存储规模。因此,分布式存储系统在大数据的存储管理中得到了极为广泛的应用。数据容错是大规模分布式存储系统中一项不可或缺的关键技术。由于数据量极为庞大,该类存储系统往往包含几千甚至几万个存储节点。因此,采用一定的数据容错技术,从而保证在部分存储节点失效的情况下,数据仍然能够被正常地访问就显得尤为重要。目前,常见的数据容错技术有两种:一种是多副本容错技术,通过复制进行容错;另一种是纠删码容错技术,通过编码进行容错。与多副本容错技术相比,纠删码容错技术可以在显著降低存储空间消耗的同时提供相同甚至高得多的数据容错能力。因此,在分布式存储系统中寻找合适的纠删码极具意义。
技术实现思路
本专利技术的目的是提供一种可灵活应用在分布式存储系统中的一种纠删码。该编码方法在空间效率、耐用性及恢复效率三者之间可达到一种相对的平衡,可显著提高系统效率及系统稳定性。为实现这一目的,本专利技术利用一种交叉分组的编码方法将数据分块分组存储于分布式存储系统中,使用者可以自己设置参数,很好的体现了编码方法的灵活性,同时也更好地降低了数据冗余,提高了效率。本专利技术所述的方法整体原理是将原数据S平均分为k块,分别为D1、D2、…、Dk。校验块节点数用户自定义为n个,分别是P1、P2、…、Pn,其中,P1~Pn-1为局部校验块节点,Pn为全局校验块节点。将k个数据节点分组,每组中的数据节点个数为k/2个。利用柯西矩阵在有限域上得到生成矩阵G,a1、a2、…为生成矩阵G的元素。最后再利用生成矩阵G与数据节点Di(1≤i≤k)相乘,得出对应的校验块Pi(1≤i≤n),并存入新的数据节点中。当某个数据节点Di失效时,联立方程组即可解出,也就是恢复出失效的数据。本专利技术所述的一种基于交叉分组的编码及数据恢复方法,其步骤是:⑴、将原数据S平均分为k块,分别为D1、D2、…、Dk,并分布储存于k个数据节点上,其中,k为偶数;⑵、将k个数据节点交叉分组,每组中的数据节点个数为l,其中,l=k/2个;⑶、对分好组的数据节点,在有限域上求得一个生成矩阵G,利用生成矩阵G求得局部校验块,然后将局部校验块并存入新的节点;⑷、当一组数据节点中的一个节点失效时,利用该组中剩余数据节点和局部校验块联立方程组恢复出失效节点。当所有数据节点中有2个以上的数据节点失效时,编译码步骤是:⑴、将原数据S平均分为k块,分别为D1、D2、…、Dk,并分布储存于k个数据节点上,其中,k为偶数;⑵、将k个数据节点进行交叉分组,每组中的数据节点个数为l,其中,l=k/2个;⑶、对分好组的数据节点,在有限域上求得一个生成矩阵G,得到局部校验块,并存入新的数据节点中;⑷、利用生成矩阵G最后一行,求出全局校验块,然后将全局校验块存入新的节点;⑸、当所有数据节点中有两个以上数据节点失效时,则结合剩余数据节点,局部校验块和全局校验块联立方程组共同恢复出失效节点。进一步地,上述步骤⑵中所述的交叉分组的方法是,第一组从第一个数据节点D1开始,连续选取l个数据节点;第二组向后错开m位,其中m≥1,从第1+m个数据节点D1+m开始,连续选取l个数据节点,依次类推进行多个分组,当后面组数中数据节点延续到Dk,该组数据节点个数仍小于l时,则该循环向前面的数据节点Di(1≤i≤k)借位,形成交叉分组,确保每组中均包含l个数据节点,这是为了保证每个与数据节点相关的校验节点个数相同。也即是交叉分组后的每个数据节点Di(1≤i≤k)与之关联的局部校验块为(n-1)l/k个,与之相关联的全局校验块则为(n-1)l/k+1个,其中,参数n由用户自行选取。进一步地,所述生成矩阵G由柯西矩阵转化而来,所述生成矩阵G的每一列代表一个数据节点Di(1≤i≤k),每一行代表一个分组,每个分组中无数据节点时,将其系数设为0。进一步地,生成矩阵G与数据节点Di(1≤i≤k)相乘,得出每一组的局部校验块,并分别存入新的局部节点Pj中,其中,1≤j≤n-1。进一步地,生成矩阵G的最后一行与数据节点Di(1≤i≤k)相乘,得出全局校验块,并存入新的全局节点中。本专利技术所阐述的编码方法可以从三个性能指标来进行评价分析,即空间效率、耐用性和恢复效率。空间效率为数据块的比率,即数据节点占总编码节点的比率,表示为k/(k+n+1)。数据块所占比重越大,校验块所占比重越小,冗余度低,空间效率越高;耐用性为数据丢失概率,表示为PDL=P×(1/MTBF)×(MTTR/MTBF)f-1,其中:PDL为数据丢失概率,MTTR为平均恢复时间,MTBF为平均故障时间,f为并发磁盘故障的数量,P=s!/(s-f)!,s为全部磁盘的数量,平均故障时间越小,耐用性越好。恢复效率被定义为恢复开销的倒数,恢复开销是指在数据读取期间恢复块占所有块的比率,一般来说局部校验块越小,恢复效率越高。本专利技术利用交叉分组的方式进行编码,在三种性能上都处于适中的状态,达到一种相对平衡。利用分组的方式使得单节点修复的效率提高,只需下载同组与之相关的数据节点即可,大大的提高了效率;利用交叉的方式使得每个数据节点都会有(n-1)l/k+1个与之相关的校验节点,即使(n-1)l/k+1个节点发生错误,仍然可以利用剩余的一个将其恢复出来。本专利技术也可以恢复多节点的丢失,有些情况下最多允许(n-1)l/k+2个编码块节点同时发生丢失。所以本专利技术所提供的方法可以提高系统效率和系统的稳定性,可以广泛应用于分布式存储系统中。由上述技术方案可知,本专利技术的有益效果在于:1、解决了纠删码灵活编码的问题。使用者可以根据自身需要来设置编码校验节点个数n,然后再根据编码校验节点数量来分配数据节点和校验节点,使纠删码能更方便的被使用。2、解决了单节点失效时的数据恢复效率问题。经典的RS码中,当单点失效时,需要下载所有有用的节点来共同恢复单个失效节点,而本专利技术的交叉分组的编码方法只需下载所有的数据节点的一半的节点即可,即下载失效节点所在组的其余未失效节点和相对应的校验块,即可恢复出失效节点,从而可将单点恢复速率提高50%,也能在一定程度上提高系统的性能。3、解决了多副本容错技术中的空间冗余问题。以往的三副本复制容错技术都是将数据全部复制三份然后进行存储,虽然安全性得到了保证,但也大大的浪费了空间,对于空间有限的系统来说很不实用。本专利技术利用交叉分组编码方法存储校验数据,它的校验节点个数可以根据用户自身的需要来设定,校验节点的个数关乎着纠错能力,所以用户可以通过衡量自身的情况来进行设定。本专利技术可以使得存储空间的利用率提高,空间冗余度降低,节约大量的空间,对于存储空间有限的用户来说非常实用。4、解决了多节点失效的问题。本专利技术所述的交叉分组的编码方法可以容纳(n-1)l/k+1个节点错误,它的个数依用户对于参数n的选择来确定。(n-1)l/k个数据节点与(n-1)l/k个校验节点相关,所以当(n-1)l/k个节点失效时,我们仍然可以本文档来自技高网...
一种提高纠错能力的交叉分组编译码方法

【技术保护点】
一种提高纠错能力的交叉分组编译码方法,其特征在于,包括如下步骤:⑴、将原数据S平均分为k块,分别为D1、D2、…、Dk,并储存于k个数据节点上,k为偶数;⑵、将k个数据节点交叉分组,每组中的数据节点个数为l,其中,l=k/2个;⑶、对交叉分组后的数据节点,在有限域上求得一个生成矩阵G,利用生成矩阵G求得局部校验块,然后将局部校验块存入新的节点;⑷、当一组数据节点中的一个节点失效时,利用该组中剩余数据节点和局部校验块联立方程恢复出失效节点。

【技术特征摘要】
1.一种提高纠错能力的交叉分组编译码方法,其特征在于,包括如下步骤:⑴、将原数据S平均分为k块,分别为D1、D2、…、Dk,并储存于k个数据节点上,k为偶数;⑵、将k个数据节点交叉分组,每组中的数据节点个数为l,其中,l=k/2个;⑶、对交叉分组后的数据节点,在有限域上求得一个生成矩阵G,利用生成矩阵G求得局部校验块,然后将局部校验块存入新的节点;⑷、当一组数据节点中的一个节点失效时,利用该组中剩余数据节点和局部校验块联立方程恢复出失效节点。2.如权利要求1所述的一种提高纠错能力的交叉分组编译码方法,其特征在于,采用如下步骤代替上述步骤(4),⑴、利用生成矩阵G最后一行,求出全局校验块,然后将全局校验块存入新的节点;⑵、当所有数据节点中有两个以上的数据节点失效时,则结合剩余数据节点,局部校验块和全局校验块联立方程组共同恢复出失效节点。3.如权利要求1或2所述的一种提高纠错能力的交叉分组编译码方法,其特征在于:步骤⑵中所述的交叉分组的方法是,第一组从第一个数据节点D1开始,连续选取l个数据节点;第二组向后错开m位,其中m≥1,从第1+m个数据节点D1+m开始...

【专利技术属性】
技术研发人员:唐聃范迪萧枫
申请(专利权)人:成都信息工程大学
类型:发明
国别省市:四川,51

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

1