読み方 : にそうロック
2相ロック【ツーフェーズロック】2PL
別名 :Two-Phase Locking/2相ロッキングプロトコル
概要
2相ロックとは、並列システムにおけるロック処理の方式の一つで、(複数の対象に)ロックを取得する段階と、それらを解放する段階を分ける方式。リレーショナルデータベースにおけるトランザクション処理などで用いられる。

あるトランザクションを実行する際に、必要な資源に順にロックを獲得していき(成長相)、処理が終わったら順にロックを解放していく(縮退相)。ロックを解放してから再び別のオブジェクトのロックを獲得することが無いようにする。
並行に実行されるすべてのトランザクションが2相ロックに従うことで、すべてのデータアクセスが直列化され、途中で他のトランザクションにデータを書き換えられてしまい処理に矛盾を生じるデータの不整合を避けることができる。
このうち、ロックの解放をコミット時にまとめて行う方式を「厳密な2相ロック」(S2PL:Strict 2PL)、トランザクション開始時にロックの獲得をまとめて行う方式を「保守的な2相ロック」(C2PL:Conservative 2PL)という。
(2021.8.2更新)
「2相ロック」の関連用語
他の用語辞典による「2相ロック」の解説 (外部サイト)
資格試験などの「2相ロック」の出題履歴
▼ 基本情報技術者試験
【令1秋 問29】 2相ロッキングプロトコルに従ってロックを獲得するトランザクションA,Bを図のように同時実行した場合に,デッドロックが発生しないデータ処理順序はどれか。