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

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

  • アプリケーションプログラムからデータに対する明示的なロックをかけることができない。
  • データアクセスの対象となる版をアプリケーションプログラムが指定する必要がある。
  • データ書込みに対して新しい版を生成し,同時にデータ読取りが実行されるときの排他制御による待ちを回避する。
  • デッドロックは発生しない。
正解 問題へ
分野 :テクノロジ系
中分類:データベース
小分類:トランザクション処理
解説
多版同時実行制御(MVCC:MultiVersion Concurrency Control)は、トランザクションからの読書き要求に対して、トランザクション開始時点における同じデータのスナップショット(版、version)を提供するというアプローチにより、トランザクションの同時実行制御を行う仕組みです。

単版の2相ロックでは、専有ロック中のデータに対する参照はできず、共有ロック中のデータに対する更新はできません。この際、ロックの解除を待たなければならないことがトランザクションの同時実行における制約となっています。

多版同時実行制御では、各トランザクションが開始した時点におけるデータ項目の内容を「版」として保持しておき、並列実行されるトランザクションに対してこの「版」を提供します。これにより、読込みのロックと書込みのロックが競合することがなくなり、トランザクションの一貫性を保ったまま同時実行性を向上させます。
  • 多版同時実行制御は、ロック方式と組み合わせて使用することも可能です。データ書込みが競合したときには、ロックを獲得するようになっているDBMSがほとんどです。
  • DBMSが自動的に新しい版を生成し、維持管理するので、アプリケーションプログラムが指定する必要はありません。
  • 正しい。多版同時実行制御(MVCC)では、書込み要求があったデータについて、別のトランザクションからデータ読取りをすることが可能です。
  • 同一のデータに対するデータ書込みが競合した場合には、新しい版が提供されることはなくデータのロックにより排他制御を行います。よって、ロック獲得の順序によってはデッドロックが発生することがあります。

Pagetop