知识卡片

变长分片如何解决去重的蝴蝶效应

专业/工作 · 549.d

内容

重复数据删除按固定大小切分数据(定长切片)实现简单,但一旦文件开头插入或删除一个字符,后面所有切片的偏移都会整体错位,导致原本高度相似的两个文件的指纹几乎全部不同,去重率骤降为零。基于内容分片(CDC)用滑动窗口计算哈希,把满足条件的位置当作切分锚点,切分依据的是数据内容而不是绝对偏移,因此局部修改只影响附近一两个切片,不会引发连锁错位。发散:这本质是把”寻址方式”从位置索引换成内容寻址,和后面会遇到的[[CRUSH用计算寻址替代查表寻址解决的核心问题]],是同一类思路——用可重新计算的规则替代脆弱的固定偏移关系。

参考来源

《Linux开源存储全栈详解从Ceph到容器存储》第1章《Linux开源存储》