CAP理論和BASE模型

轉自:http://blog.itpub.net/58054/viewspace-660826/

CAP (Eric Brewer)
Web服務無法同時滿足以下3個屬性
Consistency(一致性),數據一致更新,所有數據變動都是同步的
Availability(可用性),每個操作都必須以可預期的響應結束
Partition tolerance(分區容錯性),即使出現單個組件無法可用,操作依然可以完成

在任何數據庫設計中,一個Web應用至多隻能同時支持上面的兩個屬性,不可能三者兼顧。對於分佈式系統來說,分區容錯是基本要求,所以必然要放棄一致性。對於大型網站來說, 分區容錯和可用性的要求更高,所以一般都會選擇適當放棄一致性。對應CAP理論,NoSQL追求的是AP,而傳統數據庫追求的是CA,這也可以解釋爲什麼 傳統數據庫的擴展能力有限的原因。

ACID解決方案
ACID數據庫事務極大地簡化了應用開發人員的工作.正如其縮寫標識所示,ACID事務提供以下幾種保證:
Atomicity(原子性),事務中的所有操作,要麼全部成功,要麼全部不做.
Consistency(一致性)在事務開始與結束時,數據庫處於一致狀態.
Isolation(隔離性) 事務如同只有這一個操作在被數據庫所執行一樣.
Durability(持久性). 在事務結束時,此操作將不可逆轉.(也就是隻要事務提交,系統將保證數據不會丟失,即使出現系統Crash,譯者補充).
數據庫廠商在很久以前就認識到數據庫分區的必要性,並引入了一種稱爲2PC(兩階段提交)的技術來提供跨越多個數據庫實例的ACID保證

BASE解決方案
Basically Available(基本可用)
Soft-state( 軟狀態/柔性事務)
Eventual Consistency(最終一致性)
BASE模型是傳統ACID模型的反面,不同與ACID,BASE強調犧牲高一致性,從而獲得可用性,數據允許在一段時間內的不一致,只要保證最終一致就可以了。


發佈了144 篇原創文章 · 獲贊 75 · 訪問量 182萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章