X-Engine是阿里云研发的LSM-Tree结构的存储引擎,主打低存储成本带来的性价比。
问题
- the tsunami problem 海啸问题:122倍突发流量
- the flood discharge problem 泄洪问题:将内存数据快速转到持久化存储组件
- the fast-moving current problem 快变洋流问题:热点行变化快
架构
!http://loopjump.com/wp-content/uploads/2020/04/image-20200426093234341.png
优化总结
!http://loopjump.com/wp-content/uploads/2020/04/a-1024x520.jpg
读路径优化
Extent
!http://loopjump.com/wp-content/uploads/2020/04/image-20200426101920177.png
Cache
!http://loopjump.com/wp-content/uploads/2020/04/image-20200426102033197.png
多版本SuperVersion
增量cache替换
写路径优化
memtable热点行优化
减少skiplist node
执行和提交解耦
执行期间完全不写log
提交流水线
Flush & Compaction
快刷L0
只将L0刷下去,不做merge。另引入intra-L0 merge做多个L0 layer的合并。
加速Compaction
Extent复用
FPGA加速
Compaction调度
rule-based scheduler:
- Compaction for deletion:为了消除deletion
- Intra-L0 compaction:L0内部的多个layer
- Minor Compaction:除最底层之外的其他层之间的merge
- Major Compation:合并到最底层
- Self-major compaction:最底层内部合并以减少碎片
扫描二维码,分享此文章