Paxos学习笔记(还在整理)

Paxos

介绍

Paxos算法是分布式技术大师Leslie Lamport提出的一种基于消息传递的一致性算法。

目的

参与分布式处理的每个参与者逐步达成一致意见。用好理解的方式来说,就是在一个选举过程中,让不同的选民最终做出一致的决定。 

情景

为描述 Paxos 算法,Lamport 虚拟了一个叫做 Paxos 的希腊城邦进行选举的情景,这个城邦采用民主提议和投票的方式选出一个最终的决议,

但由于城邦的居民没有人愿意把全部时间和精力放在这种事情上,所以他们只能不定时的来参加提议,不定时来了解提议、投票进展,不定时的表达自己的投票意见。

所以无论是议员,议长或者传递纸条的服务员都不能承诺别人需要时一定会出现,也无法承诺批准决议或者传递消息的时间。

但是这里假设没有拜占庭将军问题(Byzantine failure,即虽然有可能一个消息被传递了两次,但是绝对不会出现错误的消息);

只要等待足够的时间,消息就会被传到。另外,Paxos 岛上的议员是不会反对其他议员提出的决议的。

具体情况

  1. 在整个提议和投票过程中,主要的角色就是 “提议者”(向接收者提出建议) 和 “接受者”(收到提议者的提议后,向提议者表达自己的意见)
  2. 整个算法大致过程:

    第一阶段:

        因为存在多个“提议者”,如果都提意见,那么“接受者”接受谁的不接受的?太混乱了。所以,要先明确哪个“提议者”是意见领袖有权提出提议,

       未来,“接受者”们就主要处理这个“提议者”的提议了

    第二阶段:

       由上阶段选出的意见领袖提出提议,“接受者”反馈意见。如果多数“接受者”接受了一个提议,那么提议就通过了。

  3. 其他背景

    1) 怎么明确意见领袖呢?通过编号。每个“提议者”在第一阶段先报个号,谁的号大,谁就是意见领袖。如果不好理解,可以想象为贿选。每个提议者先拿着钞票贿赂一圈“接受者”,谁给的钱多。第二阶段“接受者”就听谁的

  4. 总结

猜你喜欢

转载自blog.csdn.net/yuzhou_1shu/article/details/81901180