Apache zookeeper 为什么胖锁服务器不是多主服务器?

Apache zookeeper 为什么胖锁服务器不是多主服务器?,apache-zookeeper,paxos,Apache Zookeeper,Paxos,据我所知,Chubby在任何时候都有5台Chubby服务器。其中一个是主服务器,负责协调对仲裁的写入,另外4个服务器是只读的,负责对主服务器的写入进行前向处理。写入操作使用Paxos来保持一致性 有人能给我解释一下为什么母版和4个复制品之间有区别吗。为什么胖子不是多重主人?这个问题也适用于Zookeeper。拥有一个主节点更有效,因为节点不必处理那么多的争用 Chubby和Zookeeper都实现了一个分布式状态机,其中系统的重点是决定从一个状态到下一个状态转换的总顺序。当多个节点同时提议转换时

据我所知,Chubby在任何时候都有5台Chubby服务器。其中一个是主服务器,负责协调对仲裁的写入,另外4个服务器是只读的,负责对主服务器的写入进行前向处理。写入操作使用Paxos来保持一致性


有人能给我解释一下为什么母版和4个复制品之间有区别吗。为什么胖子不是多重主人?这个问题也适用于Zookeeper。

拥有一个主节点更有效,因为节点不必处理那么多的争用

Chubby和Zookeeper都实现了一个分布式状态机,其中系统的重点是决定从一个状态到下一个状态转换的总顺序。当多个节点同时提议转换时,解决争用可能需要大量消息(理论上是无限消息)

Paxos(也就是Chubby)使用了一种称为“杰出领导者”的优化,其中副本将写操作转发给杰出领导者以减少争用。(我假设胖乎乎的复制品能做到这一点。如果不能,他们也能做到,但设计师只是把责任推给了客户。)动物园管理员也是这样做的

查比和动物园管理员实际上都会处理多个领导者,因为他们必须处理一个不知道自己已经死了,然后又死而复生的领导者。对于查比来说,这就是使用帕克斯的全部意义:最终其中一位领导者将获胜。(理论上可能不会,但我们工程师会做一些实际的事情,比如随机退避,以使概率相当小。)另一方面,动物园管理员为每个领导者分配一个不递减的id;并且拒绝任何非当前领导者的过渡。这意味着当一个领导者去世时,Zookeeper在接受新的转换之前必须暂停并经历重新配置阶段