System Design: hash consistente
O hash consistente decide qual de N servidores guarda uma chave, e todo participante precisa chegar à mesma resposta sem coordenação. O curso separa o hash de identidade do hash de alocação, mede quantas chaves o módulo muda de lugar quando o cluster cresce e constrói o anel com nós virtuais. Trata de replicação, de rack e zona e de chaves quentes. Passa por memcached, Dynamo, Cassandra, Redis Cluster e balanceadores de carga, compara o hash de encontro e o jump e termina com um desafio de hash de encontro.
O que você vai aprender
- ✓A diferença entre hash de identidade e hash de alocação
- ✓Por que a alocação por módulo muda quase todas as chaves ao acrescentar um nó
- ✓Como o anel e os nós virtuais limitam a movimentação e equilibram a distribuição
- ✓Replicação em nós distintos, rack e zona, e chaves quentes
- ✓Onde memcached, Dynamo, Cassandra, Redis Cluster e balanceadores usam essas ideias
- ✓Quando o hash de encontro, o jump consistent hash ou um nó só servem melhor
Hash para identidade contra alocação
Esta aplicação calcula hashes em três lugares, e nenhum deles é o uso do hash consistente. Ver a diferença é o caminho mais rápido para entrar no assunto.
Ler a aula completa grátis →Currículo
7 aulasHash para identidade contra alocação
Três hashes de identidade desta aplicação mostram a diferença entre dar nome a algo e decidir onde fica.
Por que o módulo quebra
Medido em cem mil chaves, o hash módulo N muda até 99% das chaves quando entra um nó.
O anel
Nós e chaves dividem um espaço circular de hash, e nós virtuais reduzem a distância entre arcos aleatórios.
Replicação e chaves quentes
Réplicas ficam nos primeiros R nós distintos no sentido horário, e chaves quentes pedem réplicas, divisão ou cache.
Onde você já depende disso
Clientes de memcached, Dynamo, Cassandra, os slots do Redis Cluster e balanceadores resolvem o mesmo problema de alocação.
As alternativas mais simples
Hash de encontro, jump consistent hash e um nó só comparados ao anel em custo, equilíbrio e limites.
Juntando tudo
Um resumo das medições e de duas ideias gerais, seguido da implementação de um hash de encontro chamado place.