首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分块文件的擦除代码

分块文件的擦除代码
EN

Stack Overflow用户
提问于 2015-10-27 06:26:55
回答 2查看 241关注 0票数 0

有没有擦除代码,可以通过(以某种方式)添加冗余块来应用于多个块(可能是100或200,每个块是几百kB)?

我听说过Reed-Solomon,但它看起来不能用于巨大的数据集和多个块,我错了吗?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2015-11-10 20:42:46

当然,里德-所罗门算法可以用于任何大小的数据。

只需将您的数据视为多个RS大小的块的集合(例如,255字节),并独立地对每个块进行计算。所有校验和加起来就是整个大数据的校验和。

如果您的数据长度不是RS块大小的倍数,即。最后一块太短了,编码前加一些0字节填满,解码后再去掉0即可。您必须将原始数据长度保存在某个位置,但这应该没有问题。

票数 1
EN

Stack Overflow用户

发布于 2015-12-18 14:05:11

擦除码将$N$原始数据区块编码为$M$奇偶校验区块以实现冗余,而这些$N$原始数据区块和$M$奇偶校验区块只是整个存储的条带。理论上,当RS码的伽罗瓦域$GF(2^w)$足够大时,RS码的$N$大小可以是任意大的。基于以上内容,您的问题更可能如下

为什么条带中(原始数据)块的数量很少会太大,例如,$N = 100$或$200$?

原因是update problemrepair problem:如果您通过擦除码将大量数据块编码为奇偶校验块,则许多数据/奇偶校验块是相互关联的。只要更新一个数据块,所有奇偶校验块也必须更新,这会导致奇偶校验部分的I/O繁重;repair problem是指当一个数据/奇偶校验块出现故障时,大量数据/奇偶校验块被访问和传输以进行修复,从而导致巨大的磁盘I/O或网络流量。

以RAID5 of $3$ data chunks (ABC)和parity chunk P=A+B+C为例,任何块的故障修复都需要其他所有三个块参与。

编码的区块数量越多,存储系统可能遇到的update problemrepair problem就越严重,从而进一步极大地影响系统性能。

顺便说一句,当$N$增大时,解码(获取原始数据的过程)速度会大大降低。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33356730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档