¿Por qué usar consistent hashing para repartir claves entre nodos de caché?
Opciones
- Cifra las claves guardadas en la caché
- Un cambio de nodo reasigna solo cerca de 1/N de las claves (Opción correcta)
- Garantiza un equilibrio perfecto sin nodos virtuales
- Elimina por completo la necesidad de replicación
Respuesta
Añadir o quitar un nodo reasigna solo cerca de 1/N de las claves en lugar de casi todas
Por qué
Con hash(key) % N, añadir un servidor cambia N, así que casi todas las claves pasan de golpe a otro servidor: en la práctica se pierde toda la caché.
Consistent hashing coloca servidores y claves en un círculo; cada clave va al siguiente servidor en sentido horario. Añadir un servidor solo le da las claves entre él y su vecino, cerca de 1/N.
Los 'nodos virtuales' (varios puntos por servidor) reparten la carga de forma uniforme.
Recuerda
Consistent hashing = añadir un nodo mueve pocas claves.