IPA公式正解:ウ データ書込みに対して新しい版を生成し,同時にデータ読取りが実行されるときの排他制御による待ちを回避する。
※ 正解はIPA公表の解答です。解説は当サイトが生成AIを用いて作成しています。誤りにお気づきの場合はお問い合わせください。
【解説】正解は選択肢【ウ】です。多版同時実行制御(MVCC: Multi-Version Concurrency Control)は、データを更新する際に過去のデータを上書きせず新しい版(スナップショット)を作成することで、読取り処理と書込み処理が互いにロックを待つことなく同時に実行できるようにする制御方式です。
【詳細解説】■ 本問の核心・解法のポイント
多版同時実行制御(MVCC: Multi-Version Concurrency Control)は、RDBMS(PostgreSQLやMySQL/InnoDB、Oracleなど)で広く採用されているトランザクション同時実行制御方式です。
従来の2相ロッキング方式では読取りと書込みが競合してロック待ちが発生しますが、MVCCではデータの更新時に元のレコードを上書きせず新しいバージョン(版)を追記作成します。読取り側はトランザクション開始時点の整合性のある過去バージョンを参照するため、「読取りは書込みをブロックせず、書込みは読取りをブロックしない」という高い並行性を実現します。
・各選択肢の徹底解説:
・ア:MVCCを採用しているDBMSでも、SELECT ... FOR UPDATEなどの構文を用いて明示的な行ロックをかけることが可能です。
・イ:参照すべきデータの版(コミットされた適切な時点の版)はDBMSがトランザクションの開始時点や分離レベルに基づいて内部的に自動管理するため、アプリケーションが版を指定する必要はありません。
・ウ:【選択肢ウ★】MVCCの本質的な特徴です。書込み時に新しい版を生成することで、読取りトランザクションは古い版を参照でき、排他制御による待ちを回避できます。
・エ:MVCCであっても、同一レコードを同時に更新しようとするトランザクション同士の書込み競合や排他的ロックの取得順序によってデッドロックは発生します。
よって正解はウです。