Confiabilidade do ZooKeeper - três versus cinco nós

DeFAQ do ZooKeeper:

Reliability:

A single ZooKeeper server (standalone) is essentially a coordinator with
no reliability (a single serving node failure brings down the ZK service).

A 3 server ensemble (you need to jump to 3 and not 2 because ZK works
based on simple majority voting) allows for a single server to fail and
the service will still be available.

So if you want reliability go with at least 3. We typically recommend
having 5 servers in "online" production serving environments. This allows
you to take 1 server out of service (say planned maintenance) and still
be able to sustain an unexpected outage of one of the remaining servers
w/o interruption of the service.

Com um conjunto de 3 servidores, se um servidor for retirado da rotação e um servidor tiver uma indisponibilidade inesperada, ainda haverá um servidor restante que deve garantir a não interrupção do serviço. Então, por que a necessidade de 5 servidores? Ou é mais do que apenas a interrupção do serviço que está sendo considerado?

Atualizar:

Obrigado ao @sbridges por apontar que isso tem a ver com manter um quorum. E o modo como o ZK define um quórum éceil(N/2) OndeN é ooriginal número no conjunto (e não apenas o conjunto atualmente disponível).

Agora, uma pesquisa no google sobre o quórum ZK encontra isso no livro do HBasecapítulo sobre ZK:

No ZooKeeper, um número par de pares é suportado, mas normalmente não é usado porque um conjunto de tamanho igual requer, proporcionalmente, mais pares para formar um quorum do que um conjunto de tamanhos ímpares requer. Por exemplo, um conjunto com 4 pares requer 3 para formar um quórum, enquanto um conjunto com 5 também requer 3 para formar um quórum. Assim, um conjunto de 5 permite que 2 pares falhem e ainda mantenham o quorum e, portanto, é mais tolerante a falhas do que o conjunto de 4, que permite apenas 1 peer inferior.

E essa paráfrase da Wikipedia em Edward J. Yoonblog:

Normalmente, essa é a maioria das pessoas que devem estar lá, embora muitos corpos possam ter um quórum mais baixo ou mais alto.

questionAnswers(2)

yourAnswerToTheQuestion