Gestion des clés dans nosql

Capacités de lecture rapide de clé-valeur magasins découlent de leur utilisation de clés bien définis. Ces touches sont généralement hachés, qui donne un magasin clé-valeur d'une manière très prévisible de déterminer quelle partition (et donc serveur) données réside. Un serveur gère notamment une ou plusieurs partitions.

Sommaire

Un bon clavier vous permet d'identifier de manière unique le seul enregistrement qui répond à une requête sans avoir à regarder toutes les valeurs au sein de ce dossier. Une mauvaise touche, il faudra que votre code d'application interprète votre dossier afin de déterminer si elle ne, en fait, correspondent à la requête.

Si vous ne concevez pas votre bien clé, vous pouvez vous retrouver avec un serveur ayant une charge disproportionnée lourd que les autres, conduisant à une mauvaise performance. En utilisant le système-heure comme une clé, par exemple, pousse toutes les nouvelles données sur le dernier nœud du cluster, ce qui conduit à un scénario de cauchemar de rééquilibrage.

Partitionnement

La conception de la partition est importante parce que certains magasins clé-valeur, tels que Oracle NoSQL, ne permettent pas le nombre de partitions à être modifié une fois par cluster est créé. Leur répartition sur les serveurs, cependant, peut être modifié. Donc, commencer par un grand nombre de partitions que vous pouvez étaler dans le futur.

Un exemple de partitionnement est l'approche de hachage cohérente de Voldemort, comme indiqué. Ici vous voyez les mêmes partitions réparties sur trois serveurs d'abord, puis à travers quatre serveurs plus tard. Le nombre de partitions reste le même, mais leur répartition est différente sur les serveurs. La même chose est vraie de leurs répliques.

image0.jpg

Accès aux données sur les partitions

Magasins de valeurs-clés sont fortement distribués sans point de défaillance unique. Cela signifie qu'il n'y a pas besoin d'un maître nœud de coordination de garder une trace de serveurs au sein d'un cluster. La gestion du cluster est fait automatiquement par un protocole de chat entre les nœuds du serveur.


Vous pouvez utiliser une astuce dans le pilote client de serrer la performance maximale sur la récupération et le stockage des clés et des valeurs - le pilote client garde la trace des serveurs qui détiennent gamme de clés. Ainsi, le pilote client sait toujours quel serveur à qui parler.

La plupart des bases de données, NoSQL inclus, passent une demande à tous les membres d'un cluster. Ce cluster soit accepte l'écriture interne ou transmet un sous le capot pour le noeud approprié. Cette configuration signifie un voyage réseau supplémentaire entre les nœuds est possible, ce qui peut ajouter de la latence.

Afin d'éviter la découverte de latence, les pilotes clients la plupart des magasins clé-valeur de maintenir une liste de métadonnées des noeuds de courant dans un cluster et qui gammes de clés de partition chaque signe gère. De cette façon, le pilote client peut contacter le serveur correcte, ce qui rend les opérations plus rapidement.

Si un nouveau nœud est ajouté à un cluster et les métadonnées est obsolète, le cluster informe le conducteur de la clientèle, qui télécharge ensuite la dernière métadonnées de cluster avant de renvoyer la demande au nœud correct. De cette façon, on maintient un débit maximal avec un minimum de temps système pendant le développement. Un autre avantage est qu'il n'y a pas besoin d'un équilibreur de charge de passer les requêtes à la prochaine disponibles, ou moins occupé, serveur - un seul serveur (ou lire serveur de réplique) jamais reçoit une demande de client, il n'y a donc pas besoin de l'équilibrage de charge .


» » » » Gestion des clés dans nosql