令和3年秋期試験問題 午前Ⅱ 問16

多版同時実行制御(MVCC)の特徴のうち,適切なものはどれか。

  • アプリケーションプログラムからデータに対する明示的なロックをかけることができない。
  • データアクセスの対象となる版をアプリケーションプログラムが指定する必要がある。
  • データ書込みに対して新しい版を生成し,同時にデータ読取りが実行されるときの排他制御による待ちを回避する。
  • デッドロックは発生しない。
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:トランザクション処理
解説
多版同時実行制御(MVCC:MultiVersion Concurrency Control)は、複数の利用者から同時にデータベースの更新要求を受け取った場合でも、同時並行性と一貫性の両方を保証する仕組みです。
(単版の)2相ロックでは、専有ロック中のデータに対する参照はできず、共有ロック中のデータに対する更新はできません。これに対し、多版同時実行制御では、更新中のデータに対する参照要求に対してトランザクション開始時点のデータのコピー(スナップショット)を提供します。同様に、参照中のデータに対する更新要求に対して、トランザクション開始前のデータのコピーを提供します。これにより、読込みのロックと書込みのロックが競合することがなくなり、トランザクションの同時並行実行性が向上します。
  • 多版同時実行制御は、ロック方式と組み合わせて使用することも可能です。データ書込みが競合したときには、ロックを獲得するようになっているDBMSがほとんどです。
  • DBMSが自動的に新しい版を提供し、維持管理するので、アプリケーションプログラムが指定する必要はありません。
  • 正しい。多版同時実行制御(MVCC)では、書込み要求があったデータについて、別のトランザクションがデータ読み取りすることが可能です。
  • 同一のデータに対するデータ書込みが競合した場合には、新しい版が提供されることはなくデータのロックにより排他制御を行います。よって、ロック獲得の順序によってはデッドロックが発生することがあります。

Pagetop