分布式系統:CAP
所謂CAP理論,即:
Cosistency? ? 數據的一致性寫完數據后,立馬能看到最新數據。
Availability? ? 高可用性所有請求必須有響應。
Tolerance to newowrk Partitions? ? 分區容忍性網絡或服務器故障不會導致系統不可用。
一個數據存儲系統不可能同時滿足上述三個特性,只能同時滿足其兩個特性,也就是: CA,CP,AP。可以這么說,當前所有的數據存儲解決方案,都可以歸類的上述三種類型。
CA滿足數據的一致性和高可用性,但沒有可擴展性,如傳統的關系型數據,基本上滿足是這個解決方案,如ORACLE , MYSQL 的單節點,滿足數據的一致性和高可用性。
CP滿足數據的一致性和分區性,如Oracle RAC ,Sybase 集群。雖然Oracle RAC具備一點的擴展性,但當節點達到一定數目時,性能(也即可用性)就會下降很快,并且節點之間的網絡開銷很在在,需要實時同步各節點之間的數據。
AP在性能和可擴展性方面表現不錯,但在數據一致性方面會用犧牲,各節點的之間數據同步沒有哪么快,但能保存數據的最終一致性。當前熱炒的NOSQL大多類是典型的AP類型數據庫。
綜合上述,架構師不要企圖設計一套同是滿足CAP三方面的數據庫。只能在根據業務場景,對數據存儲要求有所折衷。