Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DB Tree Algorithms

DB Tree Algorithms

Yunosuke Yamada

October 16, 2022
Tweet

More Decks by Yunosuke Yamada

Other Decks in Programming

Transcript

  1. LSM tree 書き込みに最適化されたデータ構造 Cassandra などの NoSQL, Spanner などの分散 DB で用いられる

    書き込みが 、読み込みが 書き込み時はメモリとログに書くだけにして、 重複を読み込み時に解決する ディスク上のコンポーネントはイミュータブルで、 ロックなしで読み書きできる O(1) O(N) 10
  2. LSM tree の書き込みと読み込み 追加・更新は memtable に新たに key と value を追加するだけ

    削除では memtable からデータレコードを削除するだけでは不十分 (ディスク上のコンポーネントが同じキーのデータレコードを 保持している可能性がある) value に特別な削除エントリ(墓石)を割り当てることで対応 読み込みでは複数のコンポーネントにアクセスし、 タイムスタンプを比較して最新の結果を返すようにする → どのコンポーネントにレコードがあるか知りたい 14
  3. Bloom Filter 構築時:  要素の key に対して hash 値のビットを全て立てる  (ビット配列は共有) 探索時:

      hash 値のビットが全て立っていれば要素かもしれない、  そうでなければ要素ではない 17