LSM 存储引擎
2022-02-16 本文已影响0人
NazgulSun
Reference
-
深入浅出分析LSM树(日志结构合并树)
https://zhuanlan.zhihu.com/p/415799237
核心思想,利用磁盘超高的顺序写性能来达到极致的write 吞吐量,同时优化查询时候的性能;
适合大数据相关的场景, leveldb,rocksdb,cassandra, 其实类似kafka也是采用了这种思路; 一切都是顺序写,极致的写性能; -
nebula 对 rocksdb 的key/value 的优化
nebula和其他图数据库,都在利用rocksdb的一些特型;
lsm 存在一个读写放大的问题,但是用 顺序读写的情况来提升成本的IO性能,只要读写放大的倍数,不超过顺写读写带来的性能提升,都是可以接受的。 但是随着ssd 技术的持续发展,读写放大的问题,对于性能的影响越来越不可忽略;
所以,nebula 尝试了使用 lsm 的key/value 分离来进一步优化性能; 大的value存储在单独的log文件,lsm 存储 小的key/value
这样可以使得 lsm tree的level 变得更小;树的层次变小,会减少读放大的开销;
具体可以参考: https://mp.weixin.qq.com/s/hK6Y3bLEFxi9OQjsecoUDw
整个nebula 团队,对技术的研究非常深入,而且有非常科学严禁的性能提升测试证明;