BASE理论
数据一致性模型
如果数据读取、写入、更新的结果都是可预测的,我们说它遵循数据一致性模型
。
-
严格一致性
(Strict Consistency)(强)
不论在哪个节点,看到的资源都是统一的结果。
顺序一致性
(Sequential Consistency)(弱)
节点的数据变动和操作的顺序保持一致
最终一致性
(Eventual consistency)(弱)
所有数据副本最终都会变成一致
严格一致性无论什么时候访问在哪个节点,看到的资源都是统一的结果,顺序一致性例如节点不断发生变更,在短暂的时间后其他时间也会按节点变化的顺序发生变更,读取可能会读到不是最新的数据,最终一致性节点变化的顺序可能会跳过,只保证最终数据相同。
注:强弱划分比较粗旷,但是比较容易理解,并发编程和分布式计算领域有更多的细分模型。
paxos
分布式算法的基石。
BASE理论
BASE是Basically Available(基本可用)Soft state(软状态)和Eventual consistency(最终一致性)三个短语的缩写。
- 基本可用:可能是部分功能不可用或者响应时间延长。
- 软状态:不同系统/节点之间,数据存在过渡状态。
- 最终一致:经过系统内部协调机制,最终所有节点保持一致。(
分布式系统中的一致并不一定指数据保持一样
)
达到效果,即让我们的系统是可用的,最终我们的数据是正确的,也就是增大可用性的需要,同时降低一致性的要求,但是我们数据最终要正确的,不能出错的,在三者之间作出一个均衡。