浅读:PebblesDB: Building Key-Value Stores using Fragmented Log-Structured Merge Trees

论文地址:https://www.cs.utexas.edu/~vijay/papers/sosp17-pebblesdb.pdf

背景

       主要解决LSM Tree的level compaction写放大:预期解决第N层到第N+1层compaction过程中需要参与compaction的文件过多的问题;

主要思想

借鉴skipList的思想,引入guard概念,将level compaction的每层切割为不同的guard分而治之;

guard特点:

  • 弱化全局有序的约束;
  • 每层分段,每层的段之间不重叠;
  • 每层的guard之间要求保序,但是guard内部可以无序;
  • guard如果在上一层存在,那么下面所有层都存在;
  • 层数越深,guard越多;
  • L0没有guard划分;

compaction流程的变化

  • Level compaction:
    • 分层组织结构导致写放大的原因是Li在下推数据的时候跟整个Li+1是重叠的,所以导致所有Li和Li+1的数据都要重写,这显然增加了写放大。
  • FLSM:
    • 使用guard分而治之,当L-n层数据需要下推的时候,不再是整个L-n一起下推,而是以guard粒度进行,那些基本没有数据变化的guard就不用下推了;
    • compaction 第N层文件,直接放入N+1层,而不是和N+1层的文件合并;

FLSM优点:因为每次需要重写的文件少了,所以写放大减小了;

FLSM缺点:因为文件变多,读放大严重了;

参考资料

https://www.cs.utexas.edu/~vijay/papers/sosp17-pebblesdb.pdf

https://zhuanlan.zhihu.com/p/46069535

https://zhuanlan.zhihu.com/p/32225460

https://zhuanlan.zhihu.com/p/368061877

https://www.cs.utexas.edu/~vijay/papers/pebblesdb-sosp17-slides.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值