過去問解きまくり研究所 ホーム

令和6年度 秋期 午前Ⅱ 問14

トランザクション処理

多版同時実行制御に関する問題

トランザクションPが資源Xの値を4から5に更新した後にトランザクションQが開始し,Pがコミットする前にQが資源Xを参照しようとした。Qの挙動のa,bに入れる字句の組みはどれか。ただし,隔離性水準はREAD COMMITTEDとする。

〔Qの挙動〕

同時実行制御が単版2相ロッキングプロトコルの場合Qは[ a ],多版同時実行制御(MVCC)の場合Qは[ b ]。

選択肢は原典ではa・bの表。

答えと解説を見る

✓ これが正解アa:Pがコミット完了するまで待機した後,Xの値5を得る / b:Pのコミット完了を待機することなく,Xの値4を得る

解説

ロック方式では待って5を得て、多版方式では待たずに4を得ます。

単版の2相ロッキングでは、データの版は一つだけです。P は X を更新するために排他ロックを取り、コミットするまで持ち続けます。Q が X を読もうとすると、共有ロックを取れないので待たされ、P がコミットしてロックを解除したあとに、コミット済みの値5を読みます。一方、多版同時実行制御(MVCC)では、更新前の版が残されています。READ COMMITTED では、その時点でコミット済みの最新の版を読むので、Q は P のコミットを待たずに、更新前の値4を得ます。見分ける軸は、版が一つで読む側がロックを待つのか、版が複数あって読む側が古い版を読めるのかです。MVCC は読込みが更新を待たない点が特徴です。

ほかの選択肢はなぜ違うのか

この問題の用語

出典:令和6年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問14

同じ用語が出る問題

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)