Concurrency & lockingsenior🔒 Pro concept

Isolation anomalies and Serializable Snapshot Isolation (write skew, SSI)

Simple terms

Two doctors are on call. Each one checks the roster, sees that two people are on, and signs off. At the same moment. Both transactions read the same rows; neither writes the row the other read. Nothing conflicts, both commit, and now nobody is on call. Repeatable Read permits this, because it promises you a frozen view, not that the outcome could have happened in some order. Serializable watches for exactly that shape and cancels one of the two.

You might be asked

Explain the difference between PostgreSQL's REPEATABLE READ and SERIALIZABLE isolation levels. Both give you a stable snapshot, so what can still go wrong under REPEATABLE READ? Demonstrate the write-skew anomaly, then explain HOW SERIALIZABLE (SSI) detects and prevents it, what it locks, what a 'dangerous structure' / pivot is, and what error the loser gets. Why is SERIALIZABLE not just 'take more locks'?

TopicTransaction isolation levels / snapshot isolation vs serializability / write-skew anomaly / SSI rw-antidependencies / predicate (SIRead) locks / serialization failure 40001
PostgreSQL14, 15, 16, 17, 18
Tools usedBEGIN ISOLATION LEVEL REPEATABLE READ/SERIALIZABLE, pg_locks (SIReadLock), two-session psql harness (FIFO), source navigation @REL_17_10, PG 17.10
Last reviewed2026-06-19

Pro concept

Full answer and evidence depth sit behind Pro

You have the question and a plain-English lead. Pro unlocks the short answer, what the docs say, what the code does, the labeled lab evidence or reproduction protocol, how to use it under pressure, and the references.

ProFull answer + evidence depth

Unlock the full breakdown for Isolation anomalies and Serializable Snapshot Isolation (write skew, SSI)

You have the interview question and a plain-English lead. Pro opens the short answer, the manual walkthrough, the source decode, and a 50-line evidence section that states whether it is raw output, a captured run summary, or a protocol to run yourself, plus how to use it under pressure.
  • How you'd answer it, the full senior-level short answer
  • What the docs say, the manual's actual wording, with the citations
  • What the code does, the mechanism decoded from PostgreSQL's own source at a pinned tag
  • Proof from a real run, labeled as raw output, a captured run summary, or a run-it-yourself protocol
  • Using it under pressure, the situation, the call you'd make, what goes wrong, and what people get wrong
  • Version notes, what changed across PostgreSQL releases
  • 7 interviewer follow-ups for this concept

Card required. Cancel before day 7 and you are not charged.

Compare plans

How this was verified

The open teaser is the question and a plain-English lead. The short answer, the manual walkthrough, the source decode, the lab evidence, and how to use it under pressure unlock with Pro. Evidence is labeled as raw output, a captured run summary, or a run-it-yourself protocol.

Connected

Where this concept connects

How this concept links across the library, the interview questions that test it, its plain-English glossary definition, and the guided pathways it belongs to. Open the full map to explore further.

Open in the interactive map →