日志结构合并树(Log-Structured Merge-Tree):基于合并和压缩排序文件原理的存储引擎通常都被称为 LSM 存储引擎。

压缩排序文件基于排序字符串表:SSTables

LSM-Tree 基本思想:保存在后台并合并的排序字符串表:SSTables。即使数据集远远大于可用内存,仍然能够正常工作。 基于有序的特性,可以有效的执行区间查询,并且由于磁盘是顺序写入,所以 LSM-Tree 可以支持非常高的写入吞吐量。

性能优化

  1. 通过布隆过滤器优化 LSM-Tree 查找不存在的键性能低下的问题。
  2. 通过大小分级和分层压缩优化 SSTables 压缩和合并时的具体顺序和时机。
    • 大小分级:较新和较小的 SSTables 被连续合并到较旧和较大的 SSTables。
    • 分层压缩:键的范围分裂成多个更小的 SSTables,就数据被移动到单独的“层级”,这样压缩可以逐步进行并节省磁盘空间。