多版同時実行制御 (MVCC) の仕組み
正解の理由 多版同時実行制御(Multi-Version Concurrency Control: MVCC)は、データベースの更新時に元のデータを直接上書き更新せず、タイムスタンプやトランザクション番号を付与した新しい「版(バージョン)」を生成して保持する方式です。 MVCCの最大の特徴は、「読取り処理が書込み処理をブロックせず、書込み処理も読取り処理をブロックしない」点にあります。読取りトランザクションは自身の開始時点に一致する過去の確定版(スナップショット)を参照するため、更新処理が実行中であってもロックによる待機が発生しません。したがって、ウが正解です。 各選択肢の解説 `SELECT ... FOR UPDATE` などの構文を用いて、アプリケーション側から明示的に行ロックを獲得することが可能です。 どの版を参照すべきかはDBMSがトランザクションの開始時点や隔離レベルに基づき自動判定するため、アプリケーションが明示的に指定する必要はありません。 正しい記述です。書込み時に新しい版を作ることで、読取りと書込みの競合・待機を回避し、高い同時実行性能を実現します。 複数のトランザクションが同一データを更新しようとする場合などには排他ロックが使われるため、デッドロックが発生する可能性は依然として存在します。
スナップショット
排他制御
多版同時実行制御 (MVCC) の特徴のうち,適切なものはどれか。
出典
2021r03a_db_am2_問16
ア
アプリケーションプログラムからデータに対する明示的なロックをかけることができない。
イ
データアクセスの対象となる版をアプリケーションプログラムが指定する必要がある。
ウ
データ書込みに対して新しい版を生成し,同時にデータ読取りが実行されるときの排他制御による待ちを回避する。
エ
デッドロックは発生しない。
【正解・解説】多版同時実行制御 (MVCC) の仕組み|2021r03a_db_am2_問16 | IT資格ラボ