CAP和BASE理論

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

CAP定理

2000年7月,加州大學(xué)伯克利分校Eric Brewer教授提出了著名的CAP猜想。2年后,來自麻省理工學(xué)院的Seth Gilbert和Nancy Lynch從理論上證明了CAP,從此CAP定理成為了分布式計算領(lǐng)域公認(rèn)的定理。

CAP理論告訴我們:一個分布式系統(tǒng)不可能同時滿足一致性(C:Consistency)、可用性(A:Availability)、分區(qū)容錯性(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

對于一個分布式系統(tǒng)來說,分區(qū)容錯是基本需求否則不能稱為分布式系統(tǒng)。因此架構(gòu)師需要在C和A之間尋求平衡。

Base理論

Base = Basically Available+Soft state+Eventually consistent 基本可用性+軟狀態(tài)+最終一致性,由eBay架構(gòu)師Dan Pritchett提出。Base是對CAP中一致性和可用性權(quán)衡的結(jié)果,源于提出者自己在大規(guī)模分布式系統(tǒng)上實踐的總結(jié)。核心思想是無法做到強一致性,但每個應(yīng)用都可以根據(jù)自身的特點,采用適當(dāng)方式達(dá)到最終一致性。

基本可用:可響應(yīng)時間可損失、可功能損失。

軟狀態(tài):允許系統(tǒng)數(shù)據(jù)存在中間狀態(tài),但不會影響到系統(tǒng)的整體可用性,即允許系統(tǒng)在不同節(jié)點的數(shù)據(jù)副本之間進(jìn)行數(shù)據(jù)同步時存在延時。

最終一致性:要求系統(tǒng)數(shù)據(jù)副本最終能夠一致,而不需要實時保證數(shù)據(jù)副本一致。

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容