网易视频云技术分享:Reed Solomon纠删码

       网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,为客户提供稳定流畅、低时延、高并发的视频直播、录制、存储、转码及点播等音视频的PASS服务。在线教育、远程医疗、娱乐秀场、在线金融等各行业及企业用户只需经过简单的开发即可打造在线音视频平台。现在,网易视频云转载相关文章,与大家分享一下Reed Solomon纠删码。

       纠删码是存储领域常用的数据冗余技术,相比多副本复制而言,纠删码能够以更小的数据冗余度获得更高数据可靠性。 Reed Solomon Coding是存储领域常用的一种纠删码,它的基本原理如下:给定n个数据块d1, d2,…, dnn和一个正整数m RS根据n个数据块生成m个校验块, c1, c2,…, cm对于任意的nmn个原始数据块和m个校验块中任取n块就能解码出原始数据,RS最多容忍m个数据块或者校验块同时丢失(纠删码只能容忍数据丢失,无法容忍数据篡改,纠删码正是得名与此)。

编码原理
       RS
编码以word为编码和解码单位,大的数据块拆分到字长为wword(字长w取值一般为8或者16位),然后对word进行编解码。所以数据块的编码原理与word编码原理没什么差别,为论述方便,后文中变量Di, Ci将代表一个word
首先,把输入数据视为向量D=(D1D2…, Dn, 编码后数据视为向量(D1, D2,…, Dn, C1, C2,.., Cm)RS编码可视为如图1所示矩阵运算。下图最左边是编码矩阵,矩阵上部是单位阵(nn列),下边是vandermonde矩阵B(mn), vandermode矩阵如图2所示,i行,第j列的原数值为j^(i-1)。之所以采用vandermonde矩阵的原因是, RS数据恢复算法要求编码矩阵任意n*n子矩阵可逆。

1 RS纠删码编码运算

数据恢复原理
RS
最多能容忍m个删除错误。数据恢复原理的过程如下:
1)从编码矩阵中删去丢失数据块和丢失编码块对应行。假设D1C2丢失,根据图1所示RS编码运算等式,我们得到如下B’以及等式。


2vandermode矩阵

2)由于B‘是可逆的,两边乘上B’逆矩阵。

3 )得到如下原始数据 D 的计算公式


4 )对 D 重新编码,得到丢失的校验码

      矩阵求逆采用高斯消元法,需要进行实数加减乘除四则运算,无法作用于字长为w的二进制数据。为了解决这个问题, RS采用伽罗华群GF2^w)中定义的四则运算法则。 GF(2^w)域有2^w个值,每个值都对应一个低于w次的多项式,这样域上的四则运算就转换为多项式空间的运算[2] GF(2^w)域中的加法就是XOR乘法比较特殊,需要维护两个大小为2^w -1的表格: loggflog,反loggfilog

乘法公式: a * b = gfilog(gflog(a) + fglog(b)) % (2^w -1)

CRS(Cauchy Reed Solomon)

      RS纠删码的计算代价较高,瓶颈在于乘除法,乘除法操作需要3次查表操作,一次加(减)法操作,一次条件判断,一次取模操作(可优化为一次条件判断和一次减法操作)。 CRS从两个方面优化RS性能
(1)
使用Cauchy编码矩阵, Cauchy编码矩阵的好处是求逆矩阵比较快
(2)
GF(2^w)中的运算全部转换为XOR其中的数学原理比较复杂,可参见文献[3]

小结

RS的特点:
(1)
低冗余度,高可靠性。
(2)
数据恢复代价高。丢失数据块或者编码块时, RS需要读取n个数据块和校验块才能恢复数据,数据恢复效率也在一定程度上制约了RS的可靠性。
(3)
数据更新代价高。数据更新相当于重新编码,代价很高,因此常常针对只读数据,或者冷数据。
(4) RS
编码依赖于两张2^w-1大小的log表,通常只能采用16位或者8位字长,不能充分利用64位服务器的计算能力,具体实现上可能要做一些优化。


参考文献:
[1]James S. Plank. Erasure Codes For Storage Application.
[2]James S. Plank. A Tutorial on Reed-Solomon Coding for Fault-Tolerance inRAID-like Systems
[3]James S. Plank. Optimizing Cauchy Reed-Solomon Codes for Fault-TolerantStorage Applications

 

更多技术分享,请关注网易视频云官方网站(http://vcloud.163.com/或者网易视频云官方微信(vcloud163进行交流与咨询。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
分布式存储系统中常用的数据冗余技术包括多副本策略和删码删码是一种编码技术,它可以将原始数据增加冗余数据,并能通过任意一部分数据还原出原始数据。相比多副本策略,删码具有更高的磁盘利用率。在分布式存储系统中,删码技术主要有三类应用:阵列删码、Reed-Solomon删码和LDPC低密度奇偶校验删码。 阵列删码(Array Code)是一种常见的删码技术,例如RAID5和RAID6。它们通过将数据和校验信息分布在多个磁盘上,实现数据的冗余和容错能力。 Reed-Solomon删码是一种经典的删码技术,它能够容忍数据丢失,并通过冗余数据进行恢复。它在分布式存储系统中被广泛应用。 LDPC(Low-Density Parity Check)低密度奇偶校验删码是一种近年来兴起的删码技术,主要应用于通信、视频和音频编码等领域。 这些删码技术在分布式存储系统中的应用,可以提高数据的可靠性和冗余度,从而保护数据免受丢失或损坏的影响。同时,删码技术也能够提高磁盘利用率,减少存储成本。 #### 引用[.reference_title] - *1* *3* [删码--分布式存储数据备份](https://blog.csdn.net/weixin_41303815/article/details/130111204)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [分布式存储系统 | 删码(Erasure Coding),以Reed-Solomon(RS)码为例](https://blog.csdn.net/Sbs5218/article/details/127154553)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值