Quick Answer
SSI tracks read/write dependencies between transactions using predicate locks. Instead of locking rows before reading, it records what each transaction reads. At commit time, PostgreSQL checks if the commit would create a cycle in the dependency graph (non-serializable schedule). If so, one transaction is aborted with "could not serialize access." This is safer than two-phase locking and has no deadlocks - just retryable serialization failures.
Answer
PostgreSQL uses Serializable Snapshot Isolation (SSI), which tracks read-write dependencies. If a dangerous pattern occurs, it aborts one transaction to maintain serializability. This avoids heavy 2PL locking while preserving correctness.
S
SugharaIQ Editorial Team
Verified Answer
This answer has been peer-reviewed by industry experts holding senior engineering roles to ensure technical accuracy and relevance for modern interview standards.