令和3年度 秋期 午前Ⅱ 問16
トランザクション処理
MVCCに関する問題
多版同時実行制御(MVCC)の特徴のうち,適切なものはどれか。
- アアプリケーションプログラムからデータに対する明示的なロックをかけることができない。
- イデータアクセスの対象となる版をアプリケーションプログラムが指定する必要がある。
- ウデータ書込みに対して新しい版を生成し,同時にデータ読取りが実行されるときの排他制御による待ちを回避する。
- エデッドロックは発生しない。
答えと解説を見る
✓ これが正解ウデータ書込みに対して新しい版を生成し,同時にデータ読取りが実行されるときの排他制御による待ちを回避する。
解説
書込みで新しい版を作り、読取りが排他制御で待たされないようにします。
多版同時実行制御(MVCC)は、データを書き込むときに元のデータを上書きせず新しい版を作り、古い版も残しておく方式です。読取りを行うトランザクションは、自分が読むべき時点の版を参照できるので、別のトランザクションが同じデータを書き込んでいても、その完了を待たずに読めます。こうして、読取りと書込みが同時に起きたときの排他制御による待ちを避けられることが、この方式の大きな特徴です。どの版を読むかは DBMS が判断するため、アプリケーションプログラムが版を指定する必要はありません。書き込むたびに版を増やし、読む側は待たない、と一言でまとめて覚えると、他の記述との違いが見えます。
ほかの選択肢はなぜ違うのか
- アアプリケーションプログラムからデータに対…:MVCC を使う DBMS でも、更新の前に行を確保したい場合などに、アプリケーションプログラムから明示的にロックを掛ける手段が用意されていることがあります。明示的なロックが一切できないという性質は、この方式の特徴ではありません。
- イデータアクセスの対象となる版をアプリケー…:どの時点の版を読ませるかは、DBMS がトランザクションの開始時刻などをもとに判断します。アプリケーションプログラムが版を一つずつ指定しなければならないのであれば、利用者の負担が大きく、方式の利点が損なわれます。
- エデッドロックは発生しない。:読取りと書込みの待ちは避けられても、二つのトランザクションが互いに相手の更新した行をさらに更新しようとすれば、書込みどうしの待ち合いが起こり得ます。MVCC であってもデッドロックが発生しないとはいえません。
この問題の用語
- 排他制御同じデータを同時に更新しても、矛盾が起きないようにする仕組みです。先の処理が終わるまで、後の処理を待たせて防ぎます。
出典:令和3年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問16
同じ用語が出る問題
- 令和3年度 秋期 午前Ⅱ 問14:排他制御に関する問題(排他制御)
- 平成29年度 春期 午前Ⅱ 問18:排他制御に関する問題(排他制御)
- 平成25年度 春期 午前Ⅱ 問14:ロールフォワードに関する問題(排他制御)
- 平成24年度 春期 午前Ⅱ 問13:排他制御の方式(排他制御)
- 平成23年度 特別 午前Ⅱ 問12:分散データベースに関する問題(排他制御)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)