Snapshot isolation
しかし snapshot isolation においては、T1 と T2 はそれぞれ独自のスナップショットの上で動作するので、両方共がそれぞれ 20,000円を引き出し、合計残高 ( V 1 + V 2 {\displaystyle V1+V2} ) が 0円であることを確認し、両者は衝突すうることなく共に成功してしまう。その結果 V 1 = V 2 = − 10 , 000 {\displaystyle V1=V2=-10,000} 円、合計残高 V 1 + V 2 = − 20 , 000 {\displaystyle V1+V2=-20,000} 円 となる。
Snapshot isolation が MVCC を用いて実装された場合、トランザクションは並行して行われている操作を心配することなく処理を進めることができ、コミットする際にリード操作を再検証する必要ない。トランザクション実行中に保持しなければならない情報は、更新のリストだけであり、コミット時にはそれを用いて衝突の有無を簡単に確認することができる (衝突が発生していた場合はトランザクションをアボートさせる)。