MVCC(多版型同時実行制御)とは、マルチユーザ環境における データベースの性能を向上させる高度な技術です。 Postgresのために、 Vadim Mikheev (<vadim@krs.ru>)氏が実装したものを 貢献してくださいました。
ロック機構を同時実行制御に使用する多くのデータベースシステムとは異なり、 Postgresではデータ整合性の維持にマルチ バージョン方式を使用しています。つまり個々のトランザクションは データベースへの問い合わせ実行の間、処理の基礎となるデータの 現在の状態には関知せず、現在から遡ったある時点に おけるスナップショット(データベースバージョン)を参照する、というものです。 これは、並行するトランザクション同士が同じ行を更新することによって 引き起こる整合性を欠いたデータの参照からトランザクションを保護し、 個々のデータベースセッションに対してトランザクションの隔離 を提供するものです。
多重バージョン方式とロック方式との最大の相違点は、MVCCでは問い合わせ(読み込み) ロックの獲得と、書き込みロックの獲得が競合しないことです。したがって 読み込みは書き込みを絶対にブロックしませんし、書き込みも読み込みをブロック することがありません。