BwTree论文的一些整理

BwTree

面向场景:

主要是内存场景

打击点:

主要是内存场景:

  • LOCK:引入的上下文切换开销
  • CPU:本地更新引入的Cache coherence
  • 写放大问题:通过增量 + append的方式减少写入数据量,增加Flush过程中的Batch效果

主要方案:

  • 索引:btree
  • 内存和磁盘都是append写,使用mapping_table解决物理地址频繁变更的问题
  • lock_free:append + cas 实现无锁
  • SMO的原子操作:double cas
  • hash_lock_free:mapping_table

被打击点:

  • 乐观锁:更新的失败率在万分之二,Merge和SMO的失败率在5%
  • mapping_table的持久化:单独一个表,引入新的IO
  • delta链表长度导致CPU效率:Merge Delta
  • delta链表长度导致IO开销:
  • merge delta link的IO开销:
  • GC:
  • 日志类型的相关性不好:对读IO不大友好,从感知上,一个BLOCK的读取,最好这个BLOCK存储的内容都是相关的

结合LLAMA那篇论文,BWTREE在IO上的工作主要是:

  • 批量刷盘
  • 在持久化delta时,把多个delta合并成一个c-delta,然后进行持久化。
  • 在GC过程中,把页面搞成连续的,或者叫合并。

如果按照40写放大计算,一个页面8KB,单行160字节,可以存储50条记录。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值