数据的一致性及一致性算法
CAP原则
CAP原则:一个提供数据服务的存储系统最多只能满足下述3个条件中的2个
一致性
系统在执行过某项操作后仍然处于一致的状态。在分布式系统中,更新操作执行成功后所有的用户都应该读取到最新值。
可用性
每一个操作总是能够在一定时间内返回结果(操作成功或失败)
分区容忍性
是否可以对数据进行分区
数据的一致性
定义
一些分布式系统通过复制数据来提高系统的可靠性和容错性,并且将数据的不同的副本存放在不同的机器,在数据有多分副本的情况下,如果网络、服务器或者软件出现故障,会导致部分副本写入成功,部分副本写入失败。这就造成各个副本之间的数据不一致,数据内容冲突。
强一致性
要求无论更新操作实在哪一个副本执行,之后所有的读操作都要能获得最新的数据。
弱一致性
用户读到某一操作对系统特定数据的更新需要一段时间,我们称这段时间为“不一致性窗口”。
最终一致性
是弱一致性的一种特例,保证用户最终能够读取到某操作对系统特定数据的更新。
从客户端来看,有可能暂时获取的不是最新的数据,但是最终还是能访问到最新的
从服务端来看,数据存储并复制到分布到整个系统超过半数的节点,以保证数据最终一致。