Core conceptsadvanced

Serializable Snapshot Isolation (SSI)

PostgreSQL's implementation of SERIALIZABLE that detects dangerous read/write dependency cycles between concurrent transactions and aborts one to preserve serial equivalence.

What this means

The strictest isolation level, done the clever way. Instead of making transactions queue, Postgres lets them run at the same time and watches for a dangerous pattern where their reads and writes could yield a result no one-at-a-time order ever would. Spot such a pattern and it cancels one transaction. You get the safety of "one at a time" without the waiting.

Why it matters operationally

SSI is why SERIALIZABLE workloads must be prepared to retry transactions that fail with a serialization error.

Related errors

Where it lives in the source

src/backend/storage/lmgr/predicate.c

← All glossary terms · GUC reference · Error catalog