Company
Date Published
Author
Daniel J. Abadi
Word count
3459
Language
English
Hacker News points
71

Summary

Most commercial database systems support multiple isolation levels that enable users to trade off exposure to various types of application anomalies and bugs for potentially small increases in transaction concurrency. Serializable isolation, the highest level of "bug-free correctness," guarantees that transactions are processed in a way equivalent to running them one after another, enabling developers to avoid reasoning about concurrency-related bugs. However, this guarantee allows time-travel anomalies, such as the immortal write, stale read, and causal reverse, which can lead to devastating application bugs. To address these issues, systems have implemented stricter guarantees, including strict serializability, which eliminates all types of time travel anomalies while maintaining the isolation guarantees of one-copy serializability. Various levels of serializability have been defined, including strong session serializable, strong write serializable, and strong partitioned serializable systems, each with their own set of vulnerabilities and benefits.