コンテンツへスキップ
uencoder

Two-Phase Locking

2 相ロッキング(2PL)はトランザクションをロック取得フェーズとロック解放フェーズに分け、直列化可能性を保証するが、デッドロックの危険がある。

目的

古典的な直列化可能な並行制御プロトコルと、そのデッドロックリスクと変種を理解する。

メカニズム

フェーズ 1(拡大)ではロックを取得するだけ、フェーズ 2(縮小)では解放するだけである。厳密 2PL(S2PL)はトランザクション終了時にのみロックを解放し、カスケードロールバックを避ける。強厳密 2PL(SS2PL)は読み取りロックも最後まで保持し、厳密な直列化可能性を保証する。

ユースケース

  • 並行制御メカニズムの設計
  • シリアライズ可能性の実装
  • デッドロックの解析

関連ツール

References