分类: LINUX
2015-05-08 08:28:40
解决的问题在分布式环境下,节点间的通信,以及协调的手段,甚至可以解决节点内部的多进程协调,多线程协调,多客户端协调,多个副本的请求响应的一致性
paxos算法实现多个副本的一致性,2段提交实现多个副本的提交的原子性
paxos算法好像只是定义了一个proposal和accept的过程,以及其中的相关的规则
proposal 中的proposal id是节点根据本地来生成的,并不需要其他的节点来协调,proposal id的递增方式是按照节点的总数来
节点加入到集群后,应该会自动发起proposal,然后不断递增proposal id,从集群中其他节点学习proposal value
节点的离开不会对集群有什么影响,只是投票的人数变少了
proposal是随意发的,还是要更新,更新到最新后,就不会再主动发起proposal了?
通过上述的基本的分析,paxos算法是实现了多节点的状态的一致性,只是最终的一致性,不一定能保证中间任意时刻的一致性,但是到达这个一致性时间过长就会有问题
2段提交协议就从两外一个角度解决这个问题,解决了中间状态的存在,要么全部提交,要么全部回滚,不会出现中间的状态不一致
paxos可以作为后端服务器集群之间的保持数据同步的一个协议,也可以独立存在作为一个决策机构,提供一致性服务,也就是client向集群请求一致性的状态,或者一致性的值