Gestión de llaves en nosql

Capacidades de lectura rápidas clave-valor tiendas 'se derivan de su uso de teclas bien definidos. Estas teclas son típicamente hash, lo que da un almacén de claves-valor de una forma muy predecible de determinar qué partición (y por lo tanto del servidor) de datos reside en. Un determinado servidor gestiona una o más particiones.

Una buena clave permite identificar de forma exclusiva el registro único que responde a una consulta sin tener que mirar a cualquier valor dentro de ese registro. Un mal llave, será necesario que el código de aplicación interpreta su expediente para determinar si, de hecho, coincide con la consulta.

Si no diseñar su muy clave, usted puede terminar con un servidor que tiene una carga desproporcionadamente pesada que las demás, lo que lleva a los malos resultados. Utilización de la hora actual del sistema como una clave, por ejemplo, empuja todos los datos nuevos en el último nodo del clúster, lo que conduce a un escenario de pesadilla de reequilibrio.

Particiones

Diseño de partición es importante porque algunas tiendas clave-valor, como Oracle NoSQL, no permiten que el número de particiones que se modificará una vez que se crea un clúster. Su distribución a través de los servidores, sin embargo, se puede modificar. Así que empieza con un gran número de particiones que puede extenderse en el futuro.

Un ejemplo de partición es hashing enfoque coherente de Voldemort, como se muestra. Aquí puede ver las mismas particiones repartidas en tres servidores inicialmente y luego a través de cuatro servidores más tarde. El número de particiones sigue siendo el mismo, pero su asignación es diferente a través de servidores. Lo mismo es cierto de sus réplicas.

imagen0.jpg

Acceso a los datos en particiones

Tiendas de valores clave son altamente distribuidos sin ningún punto único de fallo. Esto significa que no hay necesidad de un maestro de la coordinación de nodo para realizar un seguimiento de los servidores dentro de un clúster. Gestión de clústeres se realiza automáticamente por un protocolo de chat entre los nodos del servidor.

Usted puede usar un truco en el controlador de cliente para exprimir el máximo rendimiento de recuperación y almacenamiento de claves y valores - el controlador de cliente mantiene un registro de los servidores que tienen que gama de llaves. Así que el controlador de cliente siempre sabe qué servidor con quien hablar.

La mayoría de las bases de datos, NoSQL incluido, pasan una solicitud a todos los miembros de un clúster. Ese cúmulo bien acepta la escritura interna o se lo pasa uno bajo el capó al nodo correcto. Esta configuración significa un viaje de red adicional entre los nodos es posible, que se puede añadir a la latencia.

Con el fin de evitar la latencia descubrimiento, la mayoría de los controladores de cliente clave-valor tiendas 'mantienen una lista de metadatos de los nodos actuales en un clúster y que los rangos de clave de partición cada guiño gestiona. De esta manera, el controlador de cliente puede ponerse en contacto con el servidor correcto, lo que hace que las operaciones más rápido.

Si un nuevo nodo se agrega a un clúster y los metadatos no está actualizado, el grupo informa al controlador de cliente, que luego descarga la última metadatos clúster antes de volver a enviar la solicitud al nodo correcto. Este rendimiento máximo manera se mantiene con un mínimo de gastos generales durante el desarrollo. Otro beneficio adicional es que no hay necesidad de un equilibrador de carga para pasar consultas a la siguiente disponible, o menos ocupado, servidor - sólo un servidor (o leer servidor de réplica) nunca recibe una petición del cliente, así que no hay necesidad de equilibrio de carga .




» » » » Gestión de llaves en nosql