Nosql

CAP 定理與 BASE(NoSQL)

  • May 26, 2012

CAP 定理與 BASE(NoSQL)

嗨,我正在嘗試為我的 NoSQL 工作寫一篇小論文,並將 CAP 定理描述為,如果不是全部,那麼大多數 NoSQL 數據庫都遵守。後來我讀了一篇關於 NoSQL 和 RDBMS 之間區別的論文,其中指出 NoSQL 數據庫使用 ACID 對應的 BASE。

我知道 BASE、ACID 和 CAP 的性質,但我很難弄清楚 CAP 定理和 BASE 之間的關係。據我了解,CAP 定理導致了 BASE 首字母縮寫詞,但這是正確的結論嗎?或者是兩種不同的方法來“建構”一個共享一些相似屬性的數據庫?

在這篇博文(http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/)中,作者寫道:

與挑剔的 ACID 世界相比,在容錯的 BASE 世界中開發軟體更難,但 Brewer 的 CAP 定理表明,如果你想擴大規模,你別無選擇。然而,正如 Brewer 在本演講中指出的那樣,ACID 和 BASE 之間存在連續統一體。您可以根據自己的優先級決定與連續體的一端或另一端有多接近。

在另一篇文章中,作者寫道:

許多 NOSQL 數據庫都放寬了對一致性的要求,以實現更好的可用性和分區。這導致了稱為 BASE(基本可用、軟狀態、最終一致)的系統。這些沒有傳統意義上的事務,並在數據模型上引入約束以實現更好的分區方案(如 Dynamo 系統等)。本介紹中提供了對 CAP、ACID 和 BASE 的更全面的討論。

這清楚地表明 CAP導致BASE。

我希望有人可以向我澄清這一點並消除我的困惑..

謝謝

  • 梅斯蒂卡

CAP 基本上是一個連續體,其中 BASE 和 ACID 位於相反的兩端。

CAP 圖

CAP是一致性、可用性和分區容差。基本上你可以選擇其中的 2 個,但你不能全部選 3 個。

ACID專注於一致性和可用性。

BASE專注於分區容錯性和可用性,並忽略了一致性。

引用自:https://dba.stackexchange.com/questions/18435