分佈式如今是很流行的名詞,尤爲分佈式數據處理領域,隨着海量數據的產生,你們都在研究更高效、可擴展性好、高可用性的數據存儲系統,雖然你們想盡各類辦法,基本上尚未什麼產品能超越分佈式數據庫的CAP原理。 數據庫
所謂CAP理論,即: 網絡
Cosistency 數據的一致性 架構
Availability 高可用性 分佈式
Tolerance to newowrk Partitions 分區容忍性 性能
一個數據存儲系統不可能同時知足上述三個特性,只能同時知足其兩個特性,也就是: CA,CP,AP。能夠這麼說,當前全部的數據存儲解決方案,均可以歸類的上述三種類型。 設計
CA 知足數據的一致性和高可用性,但沒有可擴展性,如傳統的關係型數據,基本上知足是這個解決方案,如ORACLE , MYSQL 的單節點,知足數據的一致性和高可用性。 同步
CP 知足數據的一致性和分區性,如Oracle RAC ,Sybase 集羣。雖然Oracle RAC具有一點的擴展性,但當節點達到必定數目時,性能(也便可用性)就會降低很快,而且節點之間的網絡開銷很在在,須要實時同步各節點之間的數據。 產品
AP 在性能和可擴展性方面表現不錯,但在數據一致性方面會用犧牲,各節點的之間數據同步沒有哪麼快,但能保存數據的最終一致性。當前熱炒的NOSQL大多類是典型的AP類型數據庫。 it
綜合上述,架構師不要企圖設計一套同是知足CAP三方面的數據庫。只能在根據業務場景,對數據存儲要求有所折衷。 io