令和5年度 春期 ITサービスマネージャ試験 午前II 問題 問23
2相ロッキングプロトコルに従うトランザクションで発生する可能性のある現象はどれか。
解答・解説
正解: イ. デッドロック
2相ロッキングプロトコル(2PL) は、データベースのトランザクション処理において、ロックの獲得(成長相)と解放(縮退相)の2つのフェーズを分けて行うことで、直列化可能性(シリアライザビリティ)を保証する並行性制御手法です。
このプロトコルに従うことで、ダーティリード や ノンリピータブルリード などの不整合を防ぐことができます。しかし、複数のトランザクションが互いに必要なデータのロック解放を待ち合う状態に陥る可能性があり、この現象を デッドロック と呼びます。したがって、正解は「イ」となります。
各選択肢の解説
- ア ダーティリード: 他のトランザクションが更新中でコミットされていないデータを読み込んでしまう現象です。2PLではデータがロックで保護されるため発生しません。
- イ デッドロック: 複数のトランザクションが互いのロック解放を待ち合い、永久に処理が進まなくなる現象です。2PLでは、トランザクションが次々とロックを獲得していく過程で発生する可能性があります。
- ウ ノンリピータブルリード: 同一トランザクション内で同じデータを複数回読み込む際、途中で他のトランザクションがデータを更新したため、読み込み結果が異なってしまう現象です。2PLでは必要なデータのロックを維持するため発生しません。
- エ ロストアップデート: 複数のトランザクションが同じデータを同時に更新した結果、一方の更新が上書きされ失われてしまう現象です。2PLの排他制御により発生しません。