知识卡片
CacheTier五种模式应对缓存未命中的不同取舍
内容
[[CacheTier通过读写路径拦截实现透明分层|Cache Tier]] 针对”请求命中的对象不在缓存层”这一件事,提供了五种不同的处理策略:write back 下读写都优先走缓存层,未命中时用 read forward(直接告诉客户端去 data pool 读,缓存层不介入)或 read proxy(缓存层代为向 data pool 取数据再转发给客户端,順便可能顺手拉入缓存)应对读未命中,用 write proxy(未命中时不先把对象整体加载进缓存再写,而是直接把写请求转发给 data pool)应对写未命中;read only 模式则干脆读写分流——读固定走缓存层、写永远绕开缓存层直接落 data pool,配合单副本缓存把存储成本压到最低。每种模式本质是在”缓存未命中时要不要多绕一次缓存层”这件事上做不同选择:多绕一次能提高后续命中率但增加这次请求的延迟,直接转发能降低这次延迟但放弃了顺带预热缓存的机会。
参考来源
《Ceph源码分析》第13章《Ceph自动分层存储》