A Critique of ANSI SQL isolation Levels
1. Published in 1995.
2. SQL is defined as a phenomenon (phenomena) that defines four isolation levels, but is too different from the actual system.
3. SQL does not cover some common isolation levels, especially snapshot isolation under multiple versions of concurrency control.
4. Relational database acid The default is to support serializable, although the actual system mostly provides a lower isolation level. This also provides an argument for NoSQL and Newsql to provide only a lower level of isolation.
5. The SQL standard phenomena includes: Dirty read, non-repeatable read, and Phantom.
6. There is a difference between phenomena and anomalies.
7. The isolation level of SQL is affected by a strong blocking implementation, and the isolation level is defined with phenomena to allow for a non-blocking implementation.
8. Gray used to define different isolation levels with a degree of consistency, and it was not the same as the definition of SQL.
9. What is serializable is strictly defined.
The phenomenon of SQL definition can be strictly explained or interpreted in a lenient way (this is the shortcoming defined in natural language, which leads to ambiguity).
One. SQL's definition of serializable is quite clear, except that it is easy to mislead people. This is why Oracle and other products that only implement the snapshot isolation are also mistaken for serializable support.
12. Classic read lock, write lock, two-stage lock and corresponding isolation level definition.
13. Definition of relationship between isolation levels: strong, weak, equivalent, not comparable.
DB2 is the cursor stability and repeatable read level defined by the C J date.
Dirty Write, Lost Update, Constraint violation (Read Skew, Write Skew).
16. Different multi-version system practices, such as: Oracle's read consistency.
REPEATABLE read in SQL is actually a misnomer.
XX. Although it may seem less rigorous to define different isolation levels with these phenomena, they help us to identify differences between different isolation levels, different implementations, regardless of the flashy names they give to the isolation level.
Reread a critique of ANSI SQL isolation Levels