对 Paxos 的一些理解

  • 时间:
  • 浏览:3
  • 来源:uu快3输钱_uu快3赢钱诀窍_豹子

到这里,我无缘无故想通了 prepare 阶段是干嘛的, prepare 阶段只是我检查当前有那末 已经 accept的提案的,已经 已经 有了 accept 的提案, 那末 就不可都还能否不能提出了(已经 value 不同. 已经 强行提出呢? 只不过是浪费时延罢了

从这里, 大伙得到一个多多多神奇的结论, paxos 是 2pc 的单调递增优化!

大伙为什保证只批准一个多多多 value 呢? 那只是我看哪个 value 是多数派,多数派的那个有效. 为了形成多数派, 必然要有一方比当事人大约 多一个多多多, 而为什保证这人个多多多肯定老出,而完会摇摆不定呢? 好多好多 大伙有了约束p1:一个多多多 acceptor 需用 accept 遇到的第一个多多多提案

继续考虑, 条件2真是只说了批准 value, 没说不可都还能否不能 accept 多个决议. 好多好多 大伙有了约束p2:一个多多多 value 被 批准后, 已经 批准的提案需用具有你这人 value p2进一步加强可都还能否不能得到p2a: 一个多多多 value 被批准后, acceptor 不可都还能否不能接受具备你这人 value 的提案 而且p2a不具备可操作性, 与p1矛盾了. 好多好多 大伙用 p2b 代替 p2b: 一个多多多 value 被批准后, proposal 不可都还能否不能提出具备你这人 value 的提案

从 paxos 的推演的淬硬层 , 大伙来思考你这人 现象, paxos 需用满足以下一个多多多原始条件

multi paxos 是不需用 prepare 的, 而 basic paxos 需用, 为哪些多个leader 的已经 需用做 prepare 呢?

prepare 阶段是用来决定当需用进行 accept 的 proposal id 的. 拥有 prepare 阶段后的 accept 阶段可都还能否不能保证很大约 率下多数人可都还能否不能接受它的请求. 已经 抛妻弃子了 prepare 阶段, 而且有多个 leader 在并肩提交, 很已经 老出大伙完会做持久化,而且完会一群乌合之众,没另俩当事人是 majority. 真是有了 prepare 阶段后, 依已经 来老出完会乌合之众的情况表, 而且大大降低了.

在 prepare 和 accept 后都需用持久化, 不过 accept 才是数据持久化.

已经 大伙简单的把2pc 的 commit 条件设置为多数同意就 commit. 是完会就变得和 paxos 一样了呢?

2pc 的 commit 条件设置为多数同意, 这只是我 zookeeper 的 zab 算法. 它比 paxos 弱的一些是, 当一个多多多 acceptor 在 prepare 阶段接受了一个多多多提议后, 除非 rollback, 不然不可都还能否不能接受新的更大的提议, 也只是我有个锁在里边. 而 paxos 协议是可都还能否不能打破这把锁的. 打破锁的行为, 可都还能否不能提高吞吐量和容错率. ( 这点问你线上验证如保.

今天暂时想通了那末 多, 明天继续和同事切磋去.

今天 OB 的同事花了一个多多多小时讲了 paxos 的原理, 我相信场上听懂80%的人不超过80%. 大约 我当事人对 basic-paxos 还发生这几点现象.

而且故事还没完, p2b 的意思是, proposal 每提出决议,就要访问完整篇 一些节点, 看有那末 value 被批准. 这可太麻烦了. 退化为2pc 了喂! 好多好多 有了非常拗口的p2c: 已经 一个多多多编号为n的提案具有value v,那末 发生一个多多多数派,要么大伙中每每每个人都那末 接受(accept)编号小于n 的任何提案,要么大伙已经 接受(accept)的所有编号小于n的提案中编号最大的那个提案具有value v。