知识卡片
在线去重与离线去重的空间代价
内容
离线去重先把用户数据原样写入存储,等上传结束后再统一扫描去重,实现简单但最坏情况下需要额外准备一份与原始数据等大的存储空间来做过渡(类比反刍动物先把食物吃进一个胃,之后再倒回来慢慢消化),也就是最多可能付出100%的冗余存储代价。在线去重则在数据上传的同时就按切片计算指纹、当场判断是否已存在,省去了这份过渡空间,但对CPU、内存、网络、磁盘的实时消耗更高。发散:这是典型的”先落地再整理”和”边收边处理”两种系统设计范式的取舍,前者实现简单但要多付一份缓冲空间的代价,后者省空间但对实时处理能力要求更高,类似的取舍在流处理与批处理的选型里同样存在。
参考来源
《Linux开源存储全栈详解从Ceph到容器存储》第1章《Linux开源存储》