LSM

Categories: 编程

是什么

维基百科:Log-structured merge-tree

特点

Log-Structured-Merge-Tree,是一种存储结构。是顺序写入磁盘,在写多读少的场景下,性能比较好。(提高写性能,牺牲一点读性能)

应用

很多 NoSQL 数据库都使用了 LSM Tree,例如:

  • HBase
  • LevelDB
  • RocksDB

为什么 MySQL 使用 B + 树,没有使用 LSM Tree?B + 树的数据更新直接在原数据处更改,但是 LSM 树的数据更新是日志式的。

核心思想

MemTable

存储在内存中,最近更新的数据,key 有序(HBase 使用跳跃表)。使用 WAL 技术,保证数据不丢失。

Immutable MemTable

MemTable 达到一定大小后,会转换为 Immutable MemTable。Immutable MemTable 会被写入磁盘,成为一个 SSTable。

SSTable(Sorted String Table)

有序键值对集合,是 LSM 数组在磁盘的数据结构。

Compact 策略

待补充

参考链接

Read More

UML 用例图

【2024-01-05】