重讀A Critique of ANSI SQL Isolation Levels,critiqueisolation

來源:互聯網
上載者:User

重讀A Critique of ANSI SQL Isolation Levels,critiqueisolation
A Critique of ANSI SQL Isolation Levels

1. 1995年發表。
2. SQL是以現象(phenomena)來定義四個隔離等級的,但是與實際系統差別太大。
3. SQL沒有涵蓋某些常見的隔離等級,特別是多版本並發控制下的Snapshot Isolation。
4. 關聯式資料庫ACID預設是要支援可序列化的,不過實際系統大多提供了較低的隔離等級。這也為NoSQL、NewSQL只提供較低的隔離等級提供了論據。
5. SQL標準的phenomena包括:Dirty Read、Non-repeatable Read和Phantom。
6. Phenomena與anomalies是有區別的。
7. SQL的隔離等級帶有很強的封鎖實現的影響,用phenomena來定義隔離等級是為了允許非封鎖的實現。
8. Gray以前是用一致性程度來定義不同的隔離等級的,它和SQL的定義是不一樣的。
9. 什麼是可序列化是有嚴格定義的。
10. SQL定義的現象可以從嚴解釋或從寬解釋(這就是用自然語言定義的缺點,容易導致歧義)。
11. SQL對可序列化的定義很是比較明確的,只不過那個表格容易誤導大家。這也是為什麼Oracle等只實現了Snapshot Isolation的產品也被大家誤認為支援可序列化。
12. 經典的讀鎖、寫鎖、兩階段鎖以及對應的隔離等級的定義。
13. 隔離等級之間的關係定義:強,弱,等價,不可比。
14. DB2也就是C J Date定義的遊標穩定性和可重複讀層級。
15. Dirty Write、Lost Update、Constraint violation(Read Skew、Write Skew)。
16. 不同多版本系統的做法,例如:Oracle的Read Consistency。
17. SQL裡頭的REPEATABLE READ其實名不副實。
xx. 雖然拿這些現象來定義不同的隔離等級看起來不太嚴謹,但是它們有助於我們識別不同隔離等級、不同實現(不管它們給隔離等級起了什麼花裡胡哨的名字)的差異。


相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.