Cuando agrega un nuevo nodo o uno de los nodos existentes no está disponible, deberá reequilibrar el anillo. Con un hash constante, todos los nodos deberían obtener aproximadamente el mismo número de claves, pero esto depende en gran medida de la distribución de las claves. Es posible que uno de los nodos en el anillo esté sobrecargado y sirva una porción más grande del rango de teclas. Incluso si las claves están bien distribuidas, aún es posible que un nodo esté sobrevendiendo un rango de claves debido a la actividad sesgada del usuario u otras razones. Por lo tanto, algunos nodos pueden estar muy ocupados atendiendo solicitudes de lectura y escritura mientras que otros están relativamente inactivos. Por lo tanto, hay casos para reequilibrar incluso cuando los nodos tienen poca capacidad, pero tienen un uso sesgado. Por lo tanto, cuando agrega un nodo, puede dejar que el nuevo nodo elija dónde quiere unirse al anillo o puede que desee insertar el nodo específicamente en un rango de teclas dado para disminuir la carga sobre los nodos de servicio. De cualquier manera, el reequilibrio requiere la migración de datos, pero su objetivo debe ser minimizar su efecto en todos los nodos. Es posible que desee echar un vistazo a Cassandra, una solución NoSQL, sobre cómo reequilibran el anillo. Específicamente, eche un vistazo al código debajo de la carpeta dht: https://github.com/apache/cassan….
¿Qué implica reequilibrar un anillo hash?
Related Content
¿Cuáles son las herramientas necesarias para construir un software como la información del empleado?
¿Cuál es el mejor software para el envío programado de correo electrónico?
¿Debo pasar a las pruebas del desarrollo de software?
¿Qué es mejor para un pequeño equipo de desarrollo ágil, JIRA Agile o Rally?
More Interesting
¿Qué beneficios tienen más probabilidades de obtener las empresas del software de minería de texto?
¿Cuáles son buenos ejemplos de abstracciones con fugas en la arquitectura de software?
¿Elegiría un lenguaje de programación debido a sus sistemas de gestión de dependencias?
¿Es realista mantener las especificaciones actualizadas?
¿Cómo empezar a aprender desarrollo web y desarrollo de aplicaciones móviles?
¿Cómo se calcula el 'tiempo medio entre fallas' (MTBF) para el software de la computadora?
¿Contratar programadores promedio es peor que quedarse solo?
¿Qué es exactamente el software libre?
¿Qué hace JPA de manera diferente o mejor que JDBC?