分佈式事務——CAP和Base理論

如果我們期待實現一套嚴格滿足ACID(Atomicity原子性、Consistency一致性、Isolation隔離性、Durability持久性)的分佈式事務,很可能的情況就是系統的可用性和嚴格一致性出現衝突。在可用性和一致性之間永遠無法存在一個兩全其美的方案。

CAP定理

2000年7月,加州大學伯克利分校Eric Brewer教授提出了著名的CAP猜想。2年後,來自麻省理工學院的Seth Gilbert和Nancy Lynch從理論上證明了CAP,從此CAP定理成爲了分佈式計算領域公認的定理。

CAP理論:一個分佈式系統不可能同時滿足一致性(C:Consistency)、可用性(A:Availability)、分區容錯性(P:Partition tolerance)這三個基本需求,並且最多隻能滿足其中的兩項。

CAP猜想:http://www.cs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf

CAP證明:http://lpd.epfl.ch/sgilbert/pubs/BrewesConjecture-SigAct.pdf

對於一個分佈式系統來說,分區容錯是基本需求否則不能稱爲分佈式系統。因此架構師需要在C和A之間尋求平衡。

Base理論

Base = Basically Available+Soft state+Eventually consistent 基本可用性+軟狀態+最終一致性,由eBay架構師Dan Pritchett提出。Base是對CAP中一致性和可用性權衡的結果,源於提出者自己在大規模分佈式系統上實踐的總結。核心思想是無法做到強一致性,但每個應用都可以根據自身的特點,採用適當方式達到最終一致性。

基本可用:可響應時間可損失、可功能損失。

軟狀態:允許系統數據存在中間狀態,但不會影響到系統的整體可用性,即允許系統在不同節點的數據副本之間進行數據同步時存在延時。

最終一致性:要求系統數據副本最終能夠一致,而不需要實時保證數據副本一致。

最終一致性有5個變種:因果一致性、讀己之所寫(因果一致性特例)、會話一致性、單調讀一致性、單調寫一致性。在實際系統實踐中,可以將若干變種結合起來。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章