简要介绍LSM树

2021-06-20  本文已影响0人  十毛tenmao

LSM(Log Structured Merged Tree)树一般用在写多读少的场景,比如日志类型的数据,是HBase、 Cassandra、 LevelDB、 RocksDB 以及 ClickHouse MergeTree 等流行的 NoSQL 数据库的底层数据结构

核心思想

核心原理

这张经典图片来自 Flink PMC 的 Stefan Richter 在Flink Forward 2018演讲的PPT typical LSM backed system SSTable (Sorted String Table)

LSM-Tree的优点和缺点

与B-tree系列数据结构相比,LSM的写性能提升10作用倍,读性能降低10倍左右(但是使用布隆过滤器Bloom Filter可以改进读性能,特别是针对不存在的key的读取性能的改进)

写入流程

读取流程

数据合并流程

因为LSM都是追加写入SSTable,哪怕是删除操作都是追加一个标识,所以经过一段时间的操作后,就会存在很多重复的key以及被删除的key,所以还需要进行数据合并,减少资源占用以及提供查询性能

参考

上一篇下一篇

猜你喜欢

热点阅读