分布式数据存储的CAP理论的理解

分布式现在是很流行的名词,尤其分布式数据处理领域,随着海量数据的产生,大家都在研究更高效、可扩展性好、高可用性的数据存储系统,虽然大家想尽各种办法,基本上还没有什么产品能超越分布式数据库的CAP原理。

所谓CAP理论,即:

Cosistency       数据的一致性

Availability      高可用性

Tolerance to newowrk Partitions    分区容忍性

分布式数据存储的CAP理论的理解

一个数据存储系统不可能同时满足上述三个特性,只能同时满足其两个特性,也就是: CA,CP,AP。可以这么说,当前所有的数据存储解决方案,都可以归类的上述三种类型。

CA  满足数据的一致性和高可用性,但没有可扩展性,如传统的关系型数据,基本上满足是这个解决方案,如ORACLE , MYSQL 的单节点,满足数据的一致性和高可用性。

CP  满足数据的一致性和分区性,如Oracle RAC ,Sybase 集群。虽然Oracle RAC具备一点的扩展性,但当节点达到一定数目时,性能(也即可用性)就会下降很快,并且节点之间的网络开销很在在,需要实时同步各节点之间的数据。

AP 在性能和可扩展性方面表现不错,但在数据一致性方面会用牺牲,各节点的之间数据同步没有哪么快,但能保存数据的最终一致性。当前热炒的NOSQL大多类是典型的AP类型数据库。

综合上述,架构师不要企图设计一套同是满足CAP三方面的数据库。只能在根据业务场景,对数据存储要求有所折衷。

你可能感兴趣的:(分布式数据存储的CAP理论的理解)