Open zhengsunf opened 5 years ago
这个“优化”看似减少了chosen的耗时,但实则对耗时降低没有任何帮助,反而会降低吞吐,且无法进行成员变更。这里解释一下为什么,假设A是Proposer,B是acceptor。 几个耗时的假设:
我们来看看加了这个”优化“后的情况是怎样的。
而“优化之前” accept 写磁盘和发请求给 B 是并行的,一次请求只需要 3ms。在 Instance 串行运作的情况下,明显吞吐是下降了。
这样的实现由问题, 破坏了paxos 的协议,因为accept 也是有可能被拒绝的。 因为 acceptor 接受了更高的 propsal_id, 就会拒绝这个老的propsal的 accept请求。
在3台机器的时候,发送accept之前,proposer自己先accept,成功后发送,acceptor接受到后,只要自己accept,就认为这个proposal被chosen。