CAP理論下對比ACID模型與BASE模型
阿新 • • 發佈:2017-12-02
關系 實現 數據庫 需要 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模型