SPONSORED

LSMツリー(えるえすむつりー)

最終更新:2026/4/27

LSMツリーは、ログ構造化マージツリーを意味し、データベースやファイルシステムにおけるデータ構造の一種である。

別名・同義語 ログ構造化マージツリー

ポイント

LSMツリーは、書き込み性能を重視した構造であり、大量の書き込み処理を効率的に行うために用いられる。読み込み性能は、構造の最適化によって改善される。

LSMツリーとは

LSMツリー(Log-Structured Merge-Tree)は、書き込み処理を最適化するために設計されたデータ構造です。従来のB-treeなどのデータ構造が読み込み性能を重視するのに対し、LSMツリーは書き込み性能を最優先に考えられています。

LSMツリーの構造

LSMツリーは、複数のレベルから構成されます。最も上のレベルは、メモリ上に保持される書き込みバッファ(MemTable)です。データはまずこのMemTableに書き込まれます。MemTableが一定のサイズに達すると、ソートされ、ディスク上のSorted String Table (SSTable) にフラッシュされます。

SSTableは、キーでソートされたデータが格納されたファイルです。複数のSSTableが存在し、それぞれが異なるレベルに配置されます。レベルが下がるほど、SSTableの数は増え、データのバージョンも古くなります。

LSMツリーの動作

データの読み込み時には、まずMemTableを検索し、次に各レベルのSSTableを順番に検索します。書き込み時には、まずMemTableに書き込み、MemTableが一杯になるとSSTableにフラッシュします。複数のSSTableが存在する場合、定期的にマージ処理が行われ、重複したデータを削除し、SSTableの数を減らします。

LSMツリーの利点と欠点

利点:

  • 高い書き込み性能
  • 大量の書き込み処理に適している
  • SSDなどのフラッシュメモリとの相性が良い

欠点:

  • 読み込み性能がB-treeに比べて低い場合がある
  • マージ処理によるオーバーヘッド
  • データのバージョン管理が複雑

LSMツリーの応用例

LSMツリーは、以下のようなデータベースやファイルシステムで利用されています。

  • LevelDB
  • RocksDB
  • Cassandra
  • HBase

SPONSORED