Paxos算法
原文:
过程:
看书理解的过程中,书讲解的是从初始条件开始一步一步缩小要求,所以看起来有点迷;
举例理解:
假如现在有个 2 个 富商(proposer) 去收买 5个官员(accepter)
请求阶段
富商 1 出发了 他带了 5 万块(这个 5 代表的是标号,不是Value)打算去收买这些官员,每个给 5 万元,他出手了3个(多数派),三个官员纷纷 承诺 (promise):只要别的人不给更多的钱(更大的编号N),我就不会给别人承诺,也就是不会理他;
提出阶段
富商1得到了多数派的承诺,于是他可以找官员签协议(发出proposal,这次是value了),如果多数官员都签了协议(accept了),那么也就稳了,富商 2 无法插手。
再来看看另一种情况,富商 2:
请求阶段
我们假如 富商1用 5 万元 搞定了3个官员了,他发协议让签了,这时,富商 2 出手更高,他 6 万元(编号更大)
富商 1 提出阶段
富商 1 连签 3 个 官员 1 2 3 ,这时富商 2 后来还在一阶段,他用 6 万元 得到了 4 5官员的承诺,他还要一个官员的承诺才可以进入二阶段,于是富商 2 (propser 2) 带着 6 (编号 N=6)去找官员3(发出prepare请求),官员3看到更多的钱(更大的编号)于是接受,告诉他可以签,但是!他已经签过富商 1的协议了(proposal 1),所以他给富商 2 一个承诺和一个协议内容(value = proposal 1),告诉他他只有提出这个协议(value)就给签,于是富商2 进入二阶段也只能发出
proposal 1;
最后,proposal 1 通过;
问问题的最好方法就是把自己的想法说出来让大家指正,为明天的考试。