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