2相ロックとMVCCにおけるトランザクション挙動

1. 単版2相ロッキングプロトコル(2PL)の場合(空欄  a ): トランザクション P が資源 X を更新した時点で、排他ロック(Xロック)が保持されています。Q が X を参照するには共有ロック(Sロック)が必要ですが、XロックとSロックは競合するため、Q は P がコミットしてロックを解放するまで待機(ブロック)させられます。P のコミット完了後、Q は更新後の値「5」を取得します。 2. 多版同時実行制御(MVCC)の場合(空欄  b ): MVCC ではデータの更新時に過去のバージョンを保持します。READ COMMITTED 水準では、問合せ開始時点でコミット済みの最新スナップショットを参照するため、P の更新ロックによる待機は発生せず、コミット完了を待つことなく更新前の確定値「4」を直ちに取得します。 よって、a に「P がコミット完了するまで待機した後,X の値 5 を得る」、b に「P のコミット完了を待機することなく,X の値 4 を得る」が入る ア が正解です。

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

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

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

 a 

 b 

ア

Pがコミット完了するまで待機した後,

Xの値5を得る

Pのコミット完了を待機することなく,

Xの値4を得る

イ

Pがコミット完了するまで待機した後,

Xの値5を得る

Pのコミット完了を待機することなく,

Xの値5を得る

ウ

Pのコミット完了を待機することなく,

Xの値4を得る

Pのコミット完了を待機することなく,

Xの値5を得る

エ

Pのコミット完了を待機することなく,

Xの値5を得る

Pのコミット完了を待機することなく,

Xの値4を得る