令和5年度 春期 午前Ⅱ 問23
データベース
トランザクションに関する問題
2 相ロッキングプロトコルに従うトランザクションで発生する可能性のある現象はどれか。
- アダーティリード
- イデッドロック
- ウノンリピータブルリード
- エロストアップデート
答えと解説を見る
✓ これが正解イデッドロック
解説
2相ロッキングでも、ロック待ちが循環するデッドロックは起こり得ます。
2 相ロッキングプロトコルは、トランザクションが必要なロックを獲得していく段階と、ロックを解放していく段階を分け、一度ロックを解放したら新たなロックを獲得しないという規約です。この規約に従うと、トランザクションを並行して実行しても、結果は直列に実行した場合と同じになることが保証されます。見分ける軸は、規約が防ぐ現象と、規約では防げない現象の区別です。ロックを獲得しながら処理を進めるので、二つのトランザクションが互いに相手の持つロックの解放を待つと、どちらも進めなくなるデッドロックは起こり得ます。直列化は守るが、待ち合いは防がない、と覚えると判断できます。
ほかの選択肢はなぜ違うのか
- アダーティリード:ダーティリードは、他のトランザクションがコミットしていない更新途中のデータを読む現象です。ロックを掛けてから読み書きし、確定までロックを持ち続ける運用では、確定前の値を他から読むことはできません。
- ウノンリピータブルリード:ノンリピータブルリードは、同じデータを2回読む間に他のトランザクションが更新し、読み取った値が変わる現象です。2 相ロッキングでは2回目の読取りまでロックを保持し続けるので、間に更新が入ることはありません。
- エロストアップデート:ロストアップデートは、二つのトランザクションが同じデータを更新し、一方の更新が他方に上書きされて失われる現象です。2 相ロッキングでは直列に実行した場合と同じ結果になるため、更新が失われることはありません。
この問題の用語
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
- プロトコル通信するときの、決まりごとや手順のまとまりのことをいいます。送る側と受ける側が同じものに従うことで、やり取りが成り立ちます。
出典:令和5年度 春期 ITサービスマネージャ試験 午前Ⅱ 問23
同じ用語が出る問題
- 令和7年度 春期 午前Ⅱ 問23(トランザクション)
- 令和4年度 春期 午前Ⅱ 問23:2相コミットプロトコルの問題(プロトコル)
- 令和3年度 春期 午前Ⅱ 問23:ロールフォワードに関する問題(トランザクション)
- 平成29年度 秋期 午前Ⅱ 問21:WALに関する問題(プロトコル)
- 平成29年度 秋期 午前Ⅱ 問20:SANに関する問題(プロトコル)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)