Cómic: ¿Qué es el hash consistente?

Cómic: ¿Qué es el hash consistente?

Cómic: ¿Qué es el hash consistente?

Cómic: ¿Qué es el hash consistente?

Cómic: ¿Qué es el hash consistente?
Cómic: ¿Qué es el hash consistente?

Hace un año
Cómic: ¿Qué es el hash consistente?
Cómic: ¿Qué es el hash consistente?

En los próximos dos años, el número total de pedidos estimado por el sistema alcanzará los 100 millones.

Calculado en base a una sola tabla Mysql que almacena 5 millones de registros, no hay necesidad de crear una sub-base de datos por el momento, 30 sub-tablas en una sola base de datos es una solución de sub-tabla horizontal más apropiada.

Entonces Xiao Hui diseñó esta lógica de submesa:

La tabla de pedidos crea una única base de datos con 30 subtablas
para modular el ID de usuario y 30. El resultado del
módulo determina qué subtabla del registro se almacena en la consulta. Se requiere el ID de usuario como condición y la subtabla que se va a consultar se determina de acuerdo con el resultado del módulo.

La forma de las subtablas es la siguiente (para facilitar la descripción, simplificada a 5 subtablas):
Cómic: ¿Qué es el hash consistente?

Después de dos meses--
Cómic: ¿Qué es el hash consistente?

Cómic: ¿Qué es el hash consistente?

Pasó más de medio año ...

Cómic: ¿Qué es el hash consistente?

Cómic: ¿Qué es el hash consistente?

Cómic: ¿Qué es el hash consistente?
Cómic: ¿Qué es el hash consistente?

Cómic: ¿Qué es el hash consistente?
Cómic: ¿Qué es el hash consistente?
Cómic: ¿Qué es el hash consistente?

Los recuerdos de Xiao Hui llegan a su fin.
Cómic: ¿Qué es el hash consistente?

Cómic: ¿Qué es el hash consistente?

Cómic: ¿Qué es el hash consistente?
Cómic: ¿Qué es el hash consistente?
Cómic: ¿Qué es el hash consistente?
Cómic: ¿Qué es el hash consistente?

1. En primer lugar, tratamos todo el espacio de caché como una estructura de almacenamiento en anillo. El espacio de anillo se divide en un total de 2 ^ 32 áreas de búfer. En Redis, la clave de búfer se asigna a 16384 ranuras.
Cómic: ¿Qué es el hash consistente?

2. Cada clave de caché se puede convertir en un número binario de 32 bits mediante el algoritmo Hash, que corresponde a una determinada área de caché en el espacio del anillo. Asignamos todas las claves de caché a diferentes ubicaciones en el espacio del anillo.
Cómic: ¿Qué es el hash consistente?

3. Cada uno de nuestros nodos de caché (Shards) también sigue el mismo algoritmo Hash, como usar IP como Hash y asignarlo al espacio del anillo.
Cómic: ¿Qué es el hash consistente?

4. ¿Cómo hacer que la clave se corresponda con el nodo? Es muy simple: el nodo más cercano a la derecha de cada clave es el nodo de almacenamiento al que pertenece la clave. Entonces, en la figura, key1 se almacena en node1, key2, key3 se almacena en node2 y key4 se almacena en node3.
Cómic: ¿Qué es el hash consistente?

Cómic: ¿Qué es el hash consistente?

Cómic: ¿Qué es el hash consistente?

1. Agregar nodos

Cuando aumenta la cantidad de nodos en el clúster de caché, la asignación de todo el espacio del anillo seguirá manteniendo la regla de hash consistente en el sentido de las agujas del reloj, por lo que la propiedad de una pequeña cantidad de claves se verá afectada.

Cómic: ¿Qué es el hash consistente?

¿Qué claves se verán afectadas? En la figura, se agrega un nuevo nodo node4, ubicado entre node1 y node2.Según la regla de las agujas del reloj, la caché del nodo1 al nodo4 ya no pertenece al nodo2, sino al nuevo nodo node4. Por lo tanto, la única clave afectada es key2.

Cómic: ¿Qué es el hash consistente?

Finalmente, los datos de caché de key2 se migran del nodo2 al nodo4, y se forma una nueva estructura de caché que se ajusta a la regla de hash consistente.

2. Eliminar nodo

Cuando es necesario eliminar los nodos del clúster de caché (por ejemplo, el nodo cuelga), la asignación de todo el espacio del anillo también mantendrá la regla de hash consistente en el sentido de las agujas del reloj, y la propiedad de una pequeña cantidad de claves también se verá afectada.
Cómic: ¿Qué es el hash consistente?

¿Qué claves se verán afectadas? El nodo original node3 se elimina en la figura De acuerdo con la regla de las agujas del reloj, los datos almacenados en caché originalmente propiedad de node3 deben ser "confiados" al nodo sucesor de las agujas del reloj node1 de node3. Por lo tanto, la única clave afectada es key4.
Cómic: ¿Qué es el hash consistente?

Finalmente, los datos de la caché de key4 se migran de node3 a node1, y se forma una nueva estructura de caché que se ajusta a la regla de hash consistente.
Cómic: ¿Qué es el hash consistente?
Cómic: ¿Qué es el hash consistente?
Cómic: ¿Qué es el hash consistente?
Cómic: ¿Qué es el hash consistente?

Cómic: ¿Qué es el hash consistente?
Cómic: ¿Qué es el hash consistente?

Cómic: ¿Qué es el hash consistente?
Cómic: ¿Qué es el hash consistente?

Como se muestra en la figura anterior, si la ip del nodo1 es 192.168.1.109, entonces la ubicación del nodo1 original en el espacio del anillo es hash ("192.168.1.109").

Construimos dos nodos virtuales basados ​​en nodo1, nodo1-1 y nodo1-2. La posición del nodo virtual en el espacio del anillo se puede calcular usando (IP + sufijo), por ejemplo:

hash (“192.168.1.109 # 1”) , hash (“192.168.1.109 # 2”)

En este momento, no hay más nodos físicos nodo1 y nodo2 en el espacio del anillo, sino solo nodos virtuales nodo1-1, nodo1-2, nodo2-1 y nodo2-2. Debido a la gran cantidad de nodos virtuales, la relación de mapeo entre las claves de caché y los nodos virtuales se ha vuelto relativamente equilibrada.
Cómic: ¿Qué es el hash consistente?
Cómic: ¿Qué es el hash consistente?

Cómic: ¿Qué es el hash consistente?

Cómic: ¿Qué es el hash consistente?
Cómic: ¿Qué es el hash consistente?

-----FIN-----

Amigos a los que les gusta este artículo, mantengan presionada la imagen para seguir la cuenta de suscripción, soñar con ella y ver contenido más emocionante.

Cómic: ¿Qué es el hash consistente?

Supongo que te gusta

Origin blog.51cto.com/14982143/2550942
Recomendado
Clasificación