LSbM-tree: Re-enabling Buffer Caching in Data Management for Mixed Reads and Writes
本文主要针对的问题是,在如leveldb等传统lsmtree的kvstore中,普通的buffercache会在compact过程之后失效,因为Ci+1层的重排序会导致已经缓存的block位置变化
现有的其他替代策略:
- cache中存放的是kvpair,不会随着compact失效。但在应对范围查询以及存在局部性的情况,没有办法起到buffer的作用。
- 专用的compact服务器,使用增量热身算法,在compact过程中,替换buffercache为新compacted的dataset,但作者通过实验证明,并不是很有效。(这部分感觉理解的有问题)
- stepped-merge算法:每个level中的data并不是完全有序,而只在compact到下一level时才会重排。这样可以显著减少缓存无效的情况。但因为data不是完全有序,在范围查询时效率不高,而