MultiVersion Concurrency Control
MVCCは、書き込み処理(トランザクション)が行われている最中に他のユーザによる読み取りアクセスがあった場合、書き込みの直前の状態(スナップショット)を処理結果として返す。つまり、書き込み中も読み取りができ、読み取り中でも書き込みができる。
MVCCにおいて可用性を達成するには、最低限、全ての処理が「どの順番で」行われたかを確実に記録する必要がある。そのため、タイムスタンプやトランザクションIDなどを用いて全ての更新処理が管理される。
なお、SQL規格(SQL92)で定められた4種類のトランザクション分離レベルにおいては、Read Committed (コミット済みデータは常に読み取る) に該当する処理である。