Simple and Correct Snapshot Isolation
2 days ago
- #database
- #concurrency-control
- #serializability
- Snapshot isolation (SI) is a popular concurrency control method in databases but does not guarantee serializability, the strongest correctness guarantee.
- Serializable snapshot isolation (SSI) patches SI with extra checks, but write-snapshot isolation (WSI) offers a simpler, elegant fix by changing one line of code.
- SI aborts on write-write conflicts, leading to false negatives and positives, while WSI aborts on stale reads, ensuring serializability.
- WSI still under-approximates serializability but may be necessary for strict serializability in lock-free MVCC implementations.
- WSI is not widely adopted partly due to timing and complexity, but is a compelling option for new database systems.