分布式存储系统中的混合冗余容错编解码方法及系统技术方案

技术编号:12705462 阅读:131 留言:0更新日期:2016-01-14 01:52
本发明专利技术公开了一种分布式存储系统中的混合冗余容错编解码方法包括:判断当前输出网络状况的好坏;若当前输出网络状况良好,采用Reed-Solomen纠删码编码方式对数据进行编码;若当前输出网络状况不好,则采用非线性自修复码编码方式;对采用不同编码方式编码得到的数据,采用相对应的解码方式对数据进行解码。本发明专利技术还公开了一种分布式存储系统中的混合冗余容错编解码系统,包括:判断网络状况模块,Reed-Solomen纠删码编解码模块,非线性自修复码编解码模块。本发明专利技术提供的分布式存储系统中的混合冗余容错编解码方法和系统,根据不同网络状况采取不同的容错方式,降低对存储和网络带宽的要求,通过解决少量编码信息重构问题,较大程度降低丢包导致的数据重组困难。

【技术实现步骤摘要】

本专利技术涉及分布式存储系统
,特别是指一种分布式存储系统中的混合冗 余容错编解码方法及系统。
技术介绍
目前常用的容错技术主要有基于复制(r印lication)的容错技术和基于纠删码 (erasure code)的容错技术。前者需要的存储开销巨大,后者是一类源于信道传输的编码 技术,因为能够容忍多个数据帧的丢失,被引入到分布存储领域,使得基于纠删码的容错技 术成为能够容忍多个数据块同时失效的、最常用的基于编码的容错技术。采用纠删码进行 容错的步骤如下: 第一步,数据分块,把待存储的数据对象分割成若干大小相等的数据块; 第二步,数据块编码,对上述数据块进行编码,得到一些编码后的编码块,依据编 码方式的不同可以分为Reed-Solomon码、奇偶阵列码(parity array code)、奇偶校验码 (parity-check code)和低密度奇偶校验码(low-density parity-check code)等类型; 其中常用的Reed-Solomon编码是一种前向纠错的信道编码,对由校正过采样数 据所产生的多项式有效,编码过程首先在多个点上对这些多项式求冗余,然后将其传输或 者存储,对多项式的这种超出必要值的采样使得多项式超定(过限定),当接收器正确的收 到足够的点后,它就可以恢复原来的多项式,即使接收到的多项式上有很多点被噪声干扰 失真; Reed-Solomen纠删码是目前应用最广泛的多进制码,能纠正随机错误和突发错 误。其特点是:首先在相同的编码冗余度下,具有很强的纠正随机错误和突发错误的能力; 其次在编码效率相同的情况下,纠错能力是最强的,可获得较大的编码增益;再次,它在短 码和中等码长的情况下接近限,而且它与数据交织技术结合后,能大大提高纠突发错误的 性能;最后,它具有严格的代数结构,体现为线性循环多项式。 第三步,数据解码,读取数据时只要获得任意足够数量的编码后的数据块,就可以 解码得到原始数据。 基于复制的容错技术简单直观,易于实现和部署,当数据失效以后,基于复制的容 错技术只需要从其他副本下载同样大小的数据即可进行修复,但需要为每个数据对象创建 若干同样大小的副本,存储空间开销巨大。 纠删码容错技术针对有损信道进行信息重建,能够把多个数据块的信息融合到较 少的冗余信息中。其优点是存储空间利用率高,缺点在于对数据的读写操作要分别进行编 码和解码操作,导致对分布式系统的计算能力和网络要求较高,且纠删码并不重构已损编 码信息;此外当数据失效以后则需要下载至少k个同样大小的数据块才能解码恢复原始数 据,要占用更多的网络带宽资源,给数据中心中本来就比较紧张的带宽资源带来了巨大的 压力,也给数据的读取带来很大的性能损失,维护丢失冗余的代价限制了基于纠删码的容 错技术的应用和推广。
技术实现思路
有鉴于此,本专利技术的目的在于提出一种存储空间开销小、对网络带宽要求低并能 够降低数据重构困难的分布式存储系统中的混合冗余容错编解码方法及系统。 基于上述目的本专利技术提供的分布式存储系统中的混合冗余容错编解码方法包 括: 判断当前输出网络状况的好坏; 若当前输出网络状况良好,则采用Reed-Solomen纠删码编码方式对数据进行编 码; 若当前输出网络状况不好,则采用非线性自修复码编码方式对数据进行编码; 对采用不同编码方式编码得到的数据,采用相对应的解码方式对数据进行解码。 在一些实施方式中,所述判断当前输出网络状况的好坏的步骤包括: 确定判断阀值,反复测试多组网络带宽和响应时间数据,算出网络状况值的平均 值,以该平均值作为判断阀值,其中单次网络状况值=网络带宽/响应时间; 对比判断当前输出网络状况好坏,将当前网络状况值与所述判断阀值比较,当前 网络状况值大于所述判断阀值时,判定输出网络状况良好,当前网络状况值小于所述判断 阀值时,判定输出网络状况不好。 在一些实施方式中,所述采用非线性自修复码编码方式对数据进行编码和解码的 步骤包括: 数据分块,将目标数据分割成若干大小相等的数据块; 通过构建非线性多项式对数据块进行循环编码; 构建新的空间基,将每个数据块通过构建非线性多项式获得的相应编码信息在此 空间基上进行映射得到编码矢量; 若编码矢量丢失,通过对数据块和编码矢量之间关系构建牛顿多项式,计算得到 全部原始数据; 若编码矢量没有丢失,通过对编码矢量解码获得原始数据。 在一些实施方式中,所述所述数据分块的步骤包括: 定义目标数据分块个数N,单个数据块B,,j e ,j为整数; 则所述目标数据B = (B1, B2,…,Bj。 在一些实施方式中,所述通过构建非线性多项式对数据块进行循环编码步骤包 括:定义码本c ; 确定编码的目标是对所有数据块^通过码本c映射得到L维的编码矢量V = (V1, V2,…,vL),L>N,即 Vj= c*B J; 构建非线性多项式,其中k为网络节点的个数; 码本 c = (ρ(α ρ(α 2),…,p(a J),其中 α $ B ο i e ,i 为整数,中的 非零元素,实现循环编码。 在一些实施方式中,所述空间基是2M,则B = (B1, B2,…,BN} e 2M,其中M是单个数 据块的尺寸。 本专利技术提供还提供一种分布式存储系统中的混合冗余容错编解码系统,其特征在 于,包括: 判断网络状况模块,用于判断网络状况的好坏; Reed-Solomen纠删码编解码模块,用于网络状况良好时通过对数据进行编码、解 码,恢复原始数据; 非线性自修复码编解码模块,用于网络状况不好时通过对数据进行编码、解码,恢 复原始数据。 在一些实施方式中,所述判断网络状况模块包括: 响应时间测试模块,用于测试网络的响应时间; 带宽能量测试模块,用于测试网络带宽能量值,并与响应时间作比计算得出网络 状况值。 在一些实施方式中,所述非线性自修复码编解码模块包括: 数据分块模块,将目标数据分割成若干大小相等的数据块; 非线性多项式循环编码模块,用于对数据块编码,获得相应的可映射数据块的编 码?目息; 构建空间基模块,用于将每个数据块通过相应的编码信息在该空间基上进行映射 得到编码矢量; 解码模块,用于通过解码获得原始数据。 在一些实施方式中,所述解码模块包括: 牛顿多项式差值解码模块,用于所述编码矢量丢失时,通过对所述数据块和所述 编码矢量关系构建牛顿多项式,计算得出全部原始数据; 编码矢量解码模块,用于所述编码矢量没有丢失时对所述编码矢量进行解码。 从上面所述可以看出,本专利技术提供的分布式存储系统中的混合冗余容错编解码方 法和系统通过采用非线性自修复码与Reed-Solomen纠删码混合的容错方式: 在网络状况较好时,采用Reed-Solomen纠删码; 在网络状况不佳时,采用非线性自修复码,通过已损编码信息的少量本地相关编 码信息或片段对其进行重构,提高维护数据冗余的效率。 采用两种编解码混合的容错技术,减少了网络传输数据量,同时也明显减少参与 数据恢复运算的数据量和重建时间,可较大程度的降低丢包导致的数据重组困难。【附图说明】 图1为本专利技术实施例提供的分布式存储系统中的混合冗余容错编解码方法示意 图; 图2为本专利技术实施例提供的非线性自修复码编解码示意图; 图3本文档来自技高网
...

【技术保护点】
一种分布式存储系统中的混合冗余容错编解码方法,其特征在于,包括:判断当前输出网络状况的好坏;若当前输出网络状况良好,则采用Reed‑Solomen纠删码编码方式对数据进行编码;若当前输出网络状况不好,则采用非线性自修复码编码方式对数据进行编码;对采用不同编码方式编码得到的数据,采用相对应的解码方式对数据进行解码。

【技术特征摘要】

【专利技术属性】
技术研发人员:孙乔付兰梅邓卜乔杨毅裴旭斌
申请(专利权)人:北京国电通网络技术有限公司国家电网公司国网浙江省电力公司北京中电飞华通信股份有限公司清华大学北京万里开源软件有限公司
类型:发明
国别省市:北京;11

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

1