コンテンツへスキップ
uencoder

Log-Structured Merge Tree

LSMツリーは書き込みをインメモリテーブルに追記し、満杯になると不変な SSTable へフラッシュする。複数レベルのコンパクションが書き込みスループットと読み込み増幅のバランスを取る。

目的

書き込み中心のストレージエンジンの中核データ構造を理解する。LevelDB/RocksDB/Cassandra で使用されている。

メカニズム

書き込みは MemTable(メモリ上のスキップリスト)に入り、満杯になると L0 SSTable にフラッシュされる。読み取りは全 SSTable と MemTable をマージする。コンパクションは隣接レベルを統合して読み込み増幅を抑える。LSM の逐次書き込みは、読み込み・空間増幅と引き換えにスループットを最適化する。

ユースケース

  • 書き込み中心のストレージ設計
  • SSTableの最適化
  • LSMコンパクション

関連ツール

References