Stan Blog

學習過程中的一些記錄

CAP定理(CAP theorem)

又稱布魯爾定理(Brewer’s theorem)

最初由 Eric Brewer (目前 Google VP Infrastructure)在 2000 年提出

是指對於一個分布式系統(Distributed System)來說,不可能同時滿足以下三點

  • 一致性(Consistency): 每次對系統讀取皆可得到最新資料
  • 可用性(Availability): 每次對系統請求皆可得到回應,意即正常讀寫
  • 分區容錯性(Partition tolerance): 如網路出問題導致資料分區,系統仍要可以正常運作

這三個特性只能同時滿足兩個。也就是必須要做出取捨(trade-off)

考慮到網路問題,一般的分散式系統都會要求要有 P (分區容錯性)

通常都是 CP (一致性與分區容錯性) 或是 AP (可用性與分區容錯性)

  • CP (一致性與分區容錯性) 假設有兩個資料庫。使用者連線到其中一個,想要讀取或寫入資料 若此時發現無法與另一個資料庫同步,使用者的請求就會失敗

  • AP (可用性與分區容錯性) 假設有兩個資料庫。使用者連線到其中一個,想要更新某筆資料 若此時發現無法與另一個資料庫同步,仍會更新這筆資料,並回傳更新成功的訊息

Ref:

Comments

comments powered by Disqus