Pular para o conteúdo principal

Emergent Leader

Descrição​

Em clusters peer-to-peer, todos os nós são iguais e não existe uma eleição explícita como em Leader and Followers. Mesmo assim, alguém precisa coordenar tarefas globais, como atribuir partições aos nós e reagir a entradas e saídas de membros.

No Emergent Leader, os nós são ordenados pelo tempo em que entraram no cluster, e o mais antigo assume o papel de coordenador. Como todos os nós conhecem a lista de membros e as idades (normalmente propagadas por Gossip Dissemination), todos chegam à mesma conclusão sobre quem é o líder, sem trocar mensagens de votação. Se o nó mais antigo sai, o seguinte na ordem assume.

O coordenador decide mudanças de membership e distribui partições (veja Fixed Partitions). Esse estilo aparece em sistemas como Akka Cluster, onde o nó mais antigo é usado para tarefas de coordenação.

Problemas que resolve​

  • Sistemas peer-to-peer precisam de um coordenador, mas não têm líder fixo nem processo de eleição.
  • Não se quer depender de um Consistent Core separado, que pode reduzir a disponibilidade.
  • Eleições com votação têm custo e complexidade que se quer evitar para tarefas de coordenação leves.

Quando usar​

  • Clusters peer-to-peer baseados em gossip, com membership conhecido por todos.
  • Quando o papel do coordenador é leve (atribuir partições, tratar membership) e tolera visões temporariamente divergentes.
  • Quando disponibilidade é mais importante que consistência estrita nas decisões de coordenação.

Quando evitar​

  • Decisões que exigem exclusividade garantida: durante uma partição de rede, dois lados podem eleger coordenadores diferentes (split brain).
  • Quando a visão de membership não é confiável ou converge devagar.
  • Quando o líder precisa ordenar escritas de dados; nesse caso use Leader and Followers com eleição por quórum.

Trade-offs​

GanhoCusto / Risco
Sem eleição explícita nem votaçãoRisco de dois coordenadores durante partições ou visões divergentes
Sem dependência de serviço de consenso externoGarantias de consistência mais fracas
Simples de implementar sobre uma lista de membros ordenadaA qualidade da decisão depende da detecção de falhas e da convergência do gossip
Alta disponibilidadeMudanças de membership podem causar trocas de coordenador não ideais

Considerações adicionais:

  • Ações do coordenador devem ser idempotentes, para tolerar duplicidade temporária.
  • Pode-se exigir estabilidade da visão de membership antes de agir.
  • Observabilidade de quem cada nó considera o líder ajuda a diagnosticar divergências.

Diagrama​

O coordenador é sempre o nó mais antigo da lista de membros; quando ele sai, o seguinte na ordem assume sem votação.

Padrões relacionados​

Referência​