令和6年秋期試験問題 午前Ⅱ 問14
問14解説へ
トランザクションPが資源Xの値を4から5に更新した後にトランザクションQが開始し,Pがコミットする前にQが資源Xを参照しようとした。Qの挙動のa,bに入れる字句の組みはどれか。ただし,隔離性水準はREAD COMMITTEDとする。
〔Qの挙動〕
同時実行制御が単版2相ロッキングプロトコルの場合Qはa,多版同時実行制御(MVCC)の場合Qはb。
〔Qの挙動〕
同時実行制御が単版2相ロッキングプロトコルの場合Qはa,多版同時実行制御(MVCC)の場合Qはb。

正解 ア問題へ
分野 :テクノロジ系
中分類:データベース
小分類:トランザクション処理
中分類:データベース
小分類:トランザクション処理
広告
解説
多版同時実行制御(MVCC:MultiVersion Concurrency Control)は、トランザクションからの読書き要求に対して、トランザクション開始時点における同じデータのスナップショット(版、バージョン)を提供するというアプローチにより、トランザクションの同時実行制御を行う仕組みです。
単版の2相ロックでは、専有ロック中のデータに対する参照はできず、共有ロック中のデータに対する更新はできません。この際、ロックの解除待ちが生じることがトランザクションの同時実行における制約となっています。
多版同時実行制御では、各トランザクションが開始した時点におけるデータ項目の内容を「版」として保持しておき、並列実行されるトランザクションに対してこの「版」を提供します。これにより、読込みのロックと書込みのロックが競合することがなくなり、トランザクションの一貫性を保ったまま同時実行性を向上させます。
なお、設問では隔離性水準がREAD COMMITTEDとされているため、ダーティリード(コミットされていないデータの読取り)は発生しないことに注意が必要です。
〔単版の2相ロックの場合〕
単版の2相ロックでは、専有ロック中のデータに対する参照はできず、共有ロック中のデータに対する更新はできません。この際、ロックの解除待ちが生じることがトランザクションの同時実行における制約となっています。
多版同時実行制御では、各トランザクションが開始した時点におけるデータ項目の内容を「版」として保持しておき、並列実行されるトランザクションに対してこの「版」を提供します。これにより、読込みのロックと書込みのロックが競合することがなくなり、トランザクションの一貫性を保ったまま同時実行性を向上させます。
なお、設問では隔離性水準がREAD COMMITTEDとされているため、ダーティリード(コミットされていないデータの読取り)は発生しないことに注意が必要です。
〔単版の2相ロックの場合〕
- トランザクションPが資源Xを4から5に更新する
- トランザクションQが開始する
- トランザクションQが資源Xの参照を要求する
- 資源Xはコミット前なので、READ COMMITTEDの制約によりトランザクションQはコミットを待つ
- トランザクションPがコミットする
- トランザクションQはコミットされた資源Xの値5を読み込む
- トランザクションPが資源Xを4から5に更新する
- トランザクションQが開始する。MVCCはこの時点の資源Xの版「XQ=4」を生成する
- トランザクションQが資源Xの参照を要求する
- MVCCにより、トランザクションQの開始時における資源Xの版「XQ」が提供される。トランザクションQはXQの値4を読み込む
広告