paxos是一个会者不难,难者不会的算法,门槛高,但一旦明白又感觉很简单!
总体说来,paxos就是通过两个阶段确定一个决议:
Phase1:确定谁的编号最高,只有编号最高者才有权利提交proposal;
Phase2:编号最高者提交proposal,如果没有其他节点提出更高编号的proposal,则该提案会被顺利通过;否则,整个过程就会重来。
你编号高,我比你更高,反复如此,算法永远无法结束,这叫活锁。FLP Impossibility已经证明,在异步通信中不存在任何一致性算法,活锁便是Paxos无法解决的硬伤。
Phase1,Phase2非常像2PC中的两个阶段,因此paxos本质上是多个2PC交替执行!
另外,即使你明白了,在实现时会知道有多难,工程实现与理论差距很大
phase1:确定谁的编号最高,只有编号最高者才有权利提交proposal;
phase2:编号最高者提交proposal,如果没有其他节点提出更高编号的proposal,则该提案会被顺利通过;否则,整个过程就会重来。
反复如此,算法永远无法结束,这叫活锁。flp impossibility已经证明,在异步通信中不存在任何一致性算法,活锁便是paxos无法解决的硬伤。
phase1,phase2非常像2pc中的两个阶段,因此paxos本质上是多个2pc交替执行!
另外,即使明白了,在实现时会知道有多难,工程实现与理论差距很大。
Hadoop|
Apache Pig|
Apache Kafka|
Apache Storm|
Impala|
Zookeeper|
SAS|
TensorFlow|
人工智能基础|
Apache Kylin|
Openstack|
Flink|
MapReduce|
大数据|
云计算|
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....