Repeat A Critique of ansi SQL Isolation Levels, critiqueisolation
A Critique of ansi SQL Isolation Levels
1. Published on April 9, 1995.
2. SQL defines four isolation levels by symptom (phenomena), but it is too different from the actual system.
3. SQL does not cover some common Isolation levels, especially Snapshot Isolation under multi-version concurrency control.
4. By default, relational database ACID must support serializability. However, most real systems provide a lower isolation level. This also provides arguments for NoSQL and NewSQL to only provide lower isolation levels.
5. standard SQL phenomena includes Dirty Read, Non-repeatable Read, and Phantom.
6. Phenomena differs from anomalies.
7. the SQL isolation level has a strong impact on blocking implementation. phenomena is used to define the isolation level to allow non-blocking implementation.
8. Gray used to define different isolation levels with consistency, which is different from the definition of SQL.
9. What is serializable is strictly defined.
10. SQL-defined phenomena can be strictly explained or explained in width (this is the disadvantage of defining with natural language, which may easily lead to ambiguity ).
11. The definition of serializable SQL is quite clear, but that table is easy to mislead everyone. This is why Oracle and other products that only implement Snapshot Isolation are also mistaken for support for serializability.
12. Classic locks, write locks, two-phase locks, and corresponding isolation levels.
13. Relationship definitions between isolation levels: Strong, weak, equivalent, and incomparable.
14. DB2, that is, the cursor stability and Repeatable read level defined by c j Date.
15. Dirty Write, Lost Update, Constraint violation (Read Skew, Write Skew ).
16. Different multi-version systems, such as the Read Consistency of Oracle.
17. The repeatable read in SQL is actually not sub-real.
Xx. although it seems less rigorous to define different isolation levels using these phenomena, they help us identify different isolation levels and different implementations (no matter what the isolation levels are named).