LSMT 浅析 | 青训营笔记

75 阅读1分钟

这是我参与「第四届青训营 」笔记创作活动的第7天

LSM-Tree 被称之为结构日志合并树,产生于1970年,晚于经典的储存结构 B树。与B树操作中需要的一些稍显复杂的文件修改不同的是,LSM-Tree 是所谓的Append-Only的,即只能在文件的末尾追加数据,而不能在文件的中间做变动。

对于数据库而言,数据储存或者数据索引储存的组织形式是很重要的,对具体性能有相当大的影响。一般来说这部分都是通过所谓的储存引擎来实现,曾经许多储存引擎都是基于B树或者是B树的变种实现,而如今的储存引擎有许多是基于LSM-Tree实现的。

如果需要将两者进行对比,那么可以选取一些代表性的实现。比如说将鼎鼎有名的innodb的B+树和leveldb改进版rocksdb的LSM-Tree进行对比。

从写的角度而言,B+树在数据插入时总是原地插入而且还需要在必要的时候分裂节点,而LSMT则不必如此。一个重要的事实是如今的持久化储存设备的顺序写入性能都要强于随机写入。这是我参与「第四届青训营 」笔记创作活动的第1天