Two-Phase Locking
2 相ロッキング(2PL)はトランザクションをロック取得フェーズとロック解放フェーズに分け、直列化可能性を保証するが、デッドロックの危険がある。
目的
古典的な直列化可能な並行制御プロトコルと、そのデッドロックリスクと変種を理解する。
メカニズム
フェーズ 1(拡大)ではロックを取得するだけ、フェーズ 2(縮小)では解放するだけである。厳密 2PL(S2PL)はトランザクション終了時にのみロックを解放し、カスケードロールバックを避ける。強厳密 2PL(SS2PL)は読み取りロックも最後まで保持し、厳密な直列化可能性を保証する。
ユースケース
- 並行制御メカニズムの設計
- シリアライズ可能性の実装
- デッドロックの解析