CAP理论
Most of the data, Most of the time.
一. 什么是CAP 1. Atomic Data Objects (Consistent)为了保证一致性,所有的操作必需保证有序,且每一个操作看起来在一瞬间完成。这等价于要求分布式的共享内存好像就在一个节点上,一次相应一个操作。对于原子的读写共享内存操作有一个重要的性质,即当完成一个写操作后,读操作必需返回正确的值。这是一致性最简单的模型。
2. Available Data Objects(Availble)关于可用性一个比较弱的定义:对于一个算法完成的时间没有限制,即允许无限制的计算。一个比较强的定义是:即使当严重网络故障发生时,每个请求都必须要能终止(返回给客户端)。
3. Partition Tolerance分区即当不允许消息任意的在节点间传输。当一个网络被分割,从一个分区内的任意节点往另一个分区的节点发送的消息都会丢失。
例如:如果有一个数据库允许在80个节点上分布于两个机架,当连接两个机架的的网络故障时,现在这个数据库是被分区的。如果数据库是分区容错的,那么数据库现在在各自的分区仍然可以进行读写操作。如果不是分区容错,那么这个集群就完全不能访问。
定理:任何分布式系统只可同时满足以上二点,没法三者兼顾。忠告:架构师不要将精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍。
二. 概念、定理两个基本概念:
异步网络模型 没有时钟,节点所做的决定只依据收到的消息和本地计算
In the asynchronous model,there is no clock,and nodes must make decisions based only on the messages received and local computation.
[...]
浙公网安备 33010602011771号