IPA公式正解:ア 同時実行される二つのトランザクションのうち,先発のトランザクションがデータを更新し,コミットする前に,後発のトランザクションが同じデータを参照すると,更新前の値を返す。
※ 正解はIPA公表の解答です。解説は当サイトが生成AIを用いて作成しています。誤りにお気づきの場合はお問い合わせください。
【解説】正解は選択肢【ア】です。MVCC(Multi-Version Concurrency Control)は、データの更新時に元のデータを上書きせず、タイムスタンプ等を付与した新しい版(バージョン)を作成・管理する方式です。参照処理は更新処理と排他ロックで競合せず、更新前の適切なバージョンのデータを読み出すことができます。
【詳細解説】■ 本問の核心・解法のポイント
MVCC(多版同時実行制御:Multi-Version Concurrency Control)は、データを更新する際に過去の版(スナップショット)を保持し、読み取りトランザクションには更新開始時点の版を見せることで、「読み取りが書き込みをブロックせず、書き込みも読み取りをブロックしない」高い並行性を実現する機構です。
・各選択肢の徹底解説:
・ア:【選択肢ア★】MVCCでは、先発トランザクションが未コミットの更新を行っていても、後発の参照トランザクションは更新前の版(スナップショット)を参照するため、更新前の値を返します。これがMVCCの適切な説明です。
・イ:厳密2相ロッキング(Strict 2PL)の説明です。トランザクション終了時まで共有ロック・専有ロックを保持します。
・ウ:通常の2相ロッキング(2PL)に類似した説明ですが、MVCCの説明ではありません。
・エ:楽観的同時実行制御(Optimistic Concurrency Control)の説明です。
よって正解はアです。