数据分块与读写者锁优化技术解析
1. 数据分块相关内容
数据去重可视为一种特殊的数据压缩形式,其目标是在更粗粒度上避免数据冗余。常见的存储解决方案会使用分块算法将文件分割成子部分,通常通过对分块内容进行哈希处理,利用哈希签名作为唯一访问键,实现数据的单次存储和传输。
-
常见分块算法
- 固定大小分块(FSC) :如图 2 所示,该算法存在明显缺点,当在文件开头添加字节时,后续所有分块边界都会发生偏移。
- 基于内容的分块(CDC) :为解决 FSC 的问题,CDC 算法借助滚动哈希函数(如 Rabin - Karp)。如图 3 所示,创建一个固定大小的滑动窗口,在待分块的字节序列上逐字节滑动,每次计算窗口的哈希签名,当哈希值与边界模式匹配时,创建一个分块。这种方法能识别出在字节序列任意位置修改时仍保持稳定的分块边界。
-
分块算法优化
- 基本滑动窗口算法(BSW) :在无进一步优化时,CDC 算法常被称为 BSW。
- 引入双阈值(TT) :Muthitacharoen 等人提出的 BSW 算法变体,定义了分块的最小和最大尺寸阈值,避免无限等待边界匹配。
- 双阈值与备用除数(TTTD) :Eshghi 等人提出的
超级会员免费看
订阅专栏 解锁全文
603

被折叠的 条评论
为什么被折叠?



