Concurrency Control in B+ Tree - Database Management Systems

Database Management Systemsの16章。

マインドマップから再構成したまとめ

Concurrency Control in B+ Tree

  • naive な実装ではページ単位でロックを行う
    • root に近い場所で競合が発生する
  • ではどうする?
  • Search
    • 基本は検索経路のページに Shared Lock をかける
    • 1つ下の node のロックが獲得できたら、現在の位置のロックは解放できる
      • Search で上のページに戻る事はないから。
  • Insert
    • 保守的な方法は、経路を全て Exclusive Lock。
    • それではあんまりなので Lock Coupling を使う
      • 1つ下の Node をロックし、下の Node が full でないならば自分の Lock を解放する
      • full でなければ、自分の Node に書き込みは発生しないから

所感

  • B+ Tree をまじめに勉強したので簡単に理解できた。万歳。