我的問題很簡單,正在尋找一個更簡單的答案,爲什麼C中的C定理與A中的C不同?爲什麼CAP中的C和ACID中的C不一樣?
閱讀this HN線程。
更新
A Hitchhiker's Guide to NOSQL v1.0,滑動71說:C在CAP = A + C(原子一致性)
我的問題很簡單,正在尋找一個更簡單的答案,爲什麼C中的C定理與A中的C不同?爲什麼CAP中的C和ACID中的C不一樣?
閱讀this HN線程。
更新
A Hitchhiker's Guide to NOSQL v1.0,滑動71說:C在CAP = A + C(原子一致性)
兩個C'S立場一致,但在CAP一致性的概念是指「所有節點同時看到相同的數據「和ACID中的一致性概念意味着」數據庫執行的任何事務將從一個一致的狀態到另一個狀態「。 (維基百科)
沒有原子性,你幾乎不可能具有有意義的一致性。這就是爲什麼CAP定理以這種方式定義C的原因。想象一下這個簡單的場景:
有一個數據庫有兩個帳戶。我們沒有錢進入數據庫。只是兩個賬戶上的錢。在數據庫中,資金在一個賬戶與另一個賬戶之間移動。
沒有原子性,用戶可以讀取數據,當錢從一個賬戶中扣除,但尚未被寫入另一個賬戶。在這種情況下,這兩個賬戶的總數將隨讀數而變化,這應該是不可能的,因爲「新」錢不會離開或進入數據庫。
以任何其他方式談論一致性就像思考一個Java布爾「幾乎」爲真,而世界其他地方將其視爲假。
順便說一句,除了上面我回答的內容,當你在這裏談論諸如「最終一致性」等其他類型的「一致性」時,請大聲呼籲皇帝是赤裸的。讓客戶解釋爲什麼報告爲那些希望將問題「重新命名」的開發者誤讀了數量的尷尬。有時候,事實是簡單而苛刻的。引入了新的「一致性」類型,因爲一致性不會水平擴展,縮放也不是時髦的。不幸的是(或幸運的),自然界,數學和物理學往往不尊重人類的時尚(問伽利略的敵人)。 – 2012-10-15 21:02:03