知识卡片
ObjectMap用位图加速稀疏卷的存在性判断
内容
克隆卷里大量对象实际并不存在(数据仍在父镜像里),每次读写前如果都要真的去 OSD 查一次”这个对象存在吗”才能决定是否走 [[RBD克隆靠CopyUp延迟复制父镜像数据|CopyUp]] 分支,会浪费一次往返。ObjectMap 用一个 bit vector 在客户端本地记录每个对象是否存在,把”对象是否存在”这个高频查询从一次网络请求压缩成一次本地位图查找。这是用一份小体积的元数据摘要(一个 bit 代表一个对象的存在状态)换取避免大量重复的存在性探测请求,空间换时间的经典取舍。
参考来源
《Ceph源码分析》第5章《Ceph客户端》