1. 程式人生 > >CAP理論下對比ACID模型與BASE模型

CAP理論下對比ACID模型與BASE模型

關系 實現 數據庫 需要 ava base 庫存 sof 一個

CAP介紹

Consistency(一致性), 數據一致更新,所有數據變動都是同步的。比如網購,庫存減少的同時資金增多。
Availability(可用性), 好的響應性能。比如支付操作10ms內響應用戶。
Partition tolerance(分區容錯性) 可靠性。比如電商網站商品庫存庫掛了並不影響用戶資金賬戶庫。

CAP定理:任何分布式系統只可同時滿足以上二點,沒法三者兼顧。
忠告:架構師不要將精力浪費在如何設計能滿足三者的完美分布式系統,而是應該進行取舍。

關系型數據庫的ACID模型:高一致性 + 可用性 很難進行分區

Atomicity原子性:一個事務中所有操作都必須全部完成,要麽全部不完成。
Consistency一致性. 在事務開始或結束時,數據庫應該在一致狀態。
Isolation隔離層. 事務將假定只有它自己在操作數據庫,彼此不知曉。
Durability. 一旦事務完成,就不能返回。

BASE模型反ACID模型:完全不同ACID模型,犧牲高一致性,獲得可用性或可靠性

Basically Available基本可用。支持分區失敗(e.g. sharding碎片劃分數據庫)

Soft state軟狀態 狀態可以有一段時間不同步,異步。
Eventually consistent最終一致,最終數據是一致的就可以了,而不是時時高一致。

BASE實現

1.按功能劃分數據庫
2.sharding碎片

BASE思想

主要強調基本的可用性,如果你需要High 可用性,也就是純粹的高性能,那麽就要以一致性或容錯性為犧牲,BASE思想的方案在性能上還是有潛力可挖的。

參考文獻

http://www.jdon.com/37625

CAP理論下對比ACID模型與BASE模型