实验室动态

[2020 VLDB] Leaper: A Learned Prefetcher for Cache Invalidation in LSM-tree based Storage Engines

杨磊关于使用预取方法解决在LSM-tree存储引擎中出现的缓存失效的论文Leaper: A Learned Prefetcher for Cache Invalidation in LSM-tree based Storage Engines被VLDB 2020接收。

在基于LSM-tree的存储引擎中,传统的基于访问频率的缓存替换策略存在一定的问题。主要原因是LSM-tree中的追加写和写时复制技术需要引入可变的存储数据块和频繁的后台操作来重新组织数据块。这些后台操作会使得数据块对应的缓存失效,从而导致缓存命中率骤降和访问延迟的急剧升高。已有方法都不能很好的解决这种缓存失效问题。我们提出了一个基于机器学习的轻量级可插拔解决方案,通过预测存储引擎中的热数据并且在访问之前将他们预取到缓存中这样的方式来避免缓存策略受到后台操作的影响。我们在阿里巴巴的一个高性能存储引擎X-Engine中以极小的开销实现了我们的方法。同时在多个实际应用上实验结果表明,我们的方法能够消除70%以上的缓存失效,减少99%的访问延迟升高,同时总的开销控制在0.95%以内,这些都远高于已有方法。