Distributed-Databases

ACID 和 CAP 定理的一致性,它們是一樣的嗎?

  • March 23, 2018

據我了解,ACID 中的一致性是為了確保數據的完整性。

但是,CAP 中的一致性意味著數據可以在分佈式系統中快速出現。

這是否意味著:它們不是同一個概念?

由於數據的範圍,它們並不完全相同

  • 一致性(所有節點通過最終一致性擁有相同的數據)
  • 可用性
  • Partition-Tolerance :儘管任意消息失去或系統部分故障,系統仍繼續執行

概要

  • ACID 解決單個節點的數據一致性問題
  • CAP 解決集群範圍內的數據一致性問題

CAP 定理:指定分佈式系統可以提供兩種服務(例如可用性和分區容限),但不能提供三種服務。例如,如果一項服務提供可用性和分區,它永遠無法確保一致性,而不是立即確保一致性,因此使用最終一致性,這允許基礎設施在不一致和一致性之間流動,但是在某一時刻,遲早,基礎設施將變得一致,導致最終的一致性。雲服務以這種方式工作,亞馬遜的 Simple DB 使用最終一致性。

**ACID**特性通常應用於關係數據庫。如果要以分佈式方式(分佈式 DB)應用 ACID,ACID 使用 2PC(兩階段送出)來強制跨分區保持一致性。然而,由於 ACID 提供了一致性和分區,將 CAP 定理應用於(分佈式環境)這將意味著可用性受到損害。

因此,使用了BASE(基本可用、軟狀態、最終一致),它可以提供 ACID 無法獲得的可伸縮性級別。

希望這可以幫助。

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