Saltar al contenido
uencoder

Consistent Hashing

El hash consistente remapea solo 1/n de las claves al añadir o eliminar nodos, minimizando la redistribución; se usa en caché distribuida y sharding.

Propósito

Minimizar el movimiento de datos cuando los nodos se unen o abandonan, técnica central para almacenamiento y caché distribuidos.

Mecanismo

Mapea nodos y claves en un anillo hash de 0-2^32; cada clave pertenece al primer nodo en sentido horario. Añadir o quitar un nodo afecta solo a las claves del arco adyacente. Los nodos virtuales (múltiples puntos hash por nodo) mejoran el equilibrio. La carga se reparte aproximadamente de forma uniforme.

Casos de uso

  • Caché distribuida (Memcached)
  • Sharding de nodos CDN
  • Sharding de bases de datos (Cassandra)
  • Balanceo de carga

Ejemplos

  • entrada
    Node C joins
    Output
    Only keys in C's adjacent arc migrate

    Minimal migration

Errores comunes

Too few virtual nodes causes uneven load
Use 150+ virtual nodes per node

Términos relacionados

References