Snapshot Isolation

Summary: An isolation level that ensures each transaction reads from a consistent snapshot of the database, preventing read skew.

Sources: chapter7

Last updated: 2026-04-17


Snapshot isolation is the most common solution to the problem of read skew (nonrepeatable reads). It is a boon for long-running, read-only queries such as backups and analytics (source: chapter7).

How it works

The idea is that each transaction reads from a consistent snapshot of the database—that is, the transaction sees all the data that was committed in the database at the start of the transaction. Even if the data is subsequently changed by another transaction, each transaction sees only the old data from that particular point in time (source: chapter7).

Implementation: MVCC

Snapshot isolation is typically implemented using multi-version-concurrency-control (MVCC). The database keeps several different committed versions of an object because various in-progress transactions may need to see the state of the database at different points in time (source: chapter7).