Accueil Finances personnelles Gérer des partitions dans NoSQL - des nuls

Gérer des partitions dans NoSQL - des nuls

Table des matières:

Vidéo: Common design patterns with Azure Cosmos DB | Azure Friday 2024

Vidéo: Common design patterns with Azure Cosmos DB | Azure Friday 2024
Anonim

Le mot partition est utilisé pour deux concepts différents dans NoSQL land. Une partition de données est un mécanisme permettant de s'assurer que les données sont réparties uniformément sur un cluster. D'autre part, une partition réseau se produit lorsque deux parties du même cluster de base de données ne peuvent pas communiquer.

Sur de très gros systèmes en grappes, il est de plus en plus probable qu'une panne d'un équipement survienne. Si un changement de réseau entre les serveurs d'un cluster échoue, un phénomène appelé (dans le jargon informatique) split brain se produit. Dans ce cas, les serveurs individuels reçoivent toujours des demandes, mais ils ne peuvent pas communiquer entre eux.

Ce scénario peut conduire à une incohérence des données ou simplement à une réduction de la capacité de stockage des données, car la partition réseau avec le moins de serveurs est supprimée du cluster (ou «rejetée» en mode Big Brother)).

Tolérance des partitions

Vous avez le choix entre deux partitions réseau:

  • Continuez, à un certain niveau, à gérer les opérations de lecture et d'écriture.

  • "Votez" sur une partie de la partition et décidez de corriger les données ultérieurement lorsque les deux parties peuvent communiquer. Cela implique généralement que le cluster vote une réplique en lecture en tant que nouveau maître pour chaque nœud de partition maître manquant.

Riak vous permet de déterminer combien de fois les données sont répliquées (trois copies, par défaut, c'est-à-dire n = 3) et combien de serveurs doivent être interrogés pour qu'une lecture réussisse. Cela signifie que si le maître principal d'une clé est du mauvais côté d'une partition réseau, les opérations de lecture peuvent toujours réussir si les deux autres serveurs sont disponibles (c'est-à-dire, r = 2 read availability).

Riak gère les écritures lorsque le serveur de partitions principal tombe en panne à l'aide d'un système appelé handint suggéré . Lorsque les données sont répliquées à l'origine, le premier nœud d'une partition de clé particulière est écrit avec (par défaut) deux des nœuds voisins suivants.

Si le primaire ne peut pas être écrit, le prochain nœud de l'anneau est écrit. Ces écritures sont effectivement transférées au noeud suivant. Lorsque le serveur principal revient, les écritures sont relues sur ce noeud avant de reprendre les opérations d'écriture primaires.

Dans ces deux opérations, des incohérences de version peuvent se produire car des répliques différentes peuvent se trouver dans des états de version différents, même si ce n'est que quelques millisecondes.

Riak utilise encore un autre système appelé anti active - entropy pour résoudre ce problème. Ce système fait défiler les valeurs mises à jour et veille à ce que les répliques soient mises à jour à un moment donné, de préférence plutôt tôt que tard.Cela permet d'éviter les conflits de lecture tout en conservant une vitesse d'ingestion élevée, ce qui évite un commit en deux phases utilisé par d'autres bases de données NoSQL avec le support de clustering maître-esclave et sans partage.

En cas de conflit de lecture, Riak utilise read repair pour tenter de renvoyer uniquement les dernières données. En fin de compte, et en fonction des paramètres de cohérence et de disponibilité que vous utilisez, l'application cliente peut être présentée avec plusieurs versions et doit décider pour elle-même.

Dans certaines situations, ce compromis est souhaitable, et de nombreuses applications peuvent intuitivement savoir, sur la base des données présentées, quelle version utiliser et quelle version à supprimer.

Indexation secondaire

Les index secondaires sont des index sur des données spécifiques dans une valeur. La plupart des magasins de valeurs-clés laissent cette indexation à l'application. Cependant, Riak est différent, utilisant un schéma appelé document - basé sur le partitionnement qui permet l'indexation secondaire.

Le partitionnement basé sur un document suppose que vous écrivez des structures JSON dans la base de données Riak. Vous pouvez ensuite définir des index sur des propriétés nommées particulières dans cette structure JSON, comme indiqué:

{"order-id": 5001, "customer-id": 1429857, "order-date": "2014-09-24 "," Total ": 134. 24}

Si vous avez une application qui affiche les commandes d'un client pour le mois précédent, vous souhaitez interroger tous les enregistrements, comme indiqué, où l'ID client est une valeur fixe (1429857) et la date de commande est dans une fourchette particulière (le début et la fin du mois).

Dans la plupart des magasins de valeurs-clés, vous créez un autre compartiment dont la clé est le numéro de client et le mois combinés et la valeur est une liste d'ID de commande. Cependant, dans Riak, vous ajoutez simplement un index secondaire à la fois sur customer-id (entier) et order-date (date), ce qui prend de l'espace de stockage supplémentaire mais présente l'avantage d'être transparent pour le développeur de l'application.

Ces index sont également mis à jour en direct, ce qui signifie qu'il n'y a pas de décalage entre la mise à jour d'une valeur de document dans Riak et la mise à jour des index. Cet accès direct aux données est plus difficile à retirer qu'il n'y paraît. Après tout, si les index sont incohérents, vous ne trouverez jamais les données toujours tenues!

Évaluation de Riak

Basho, l'entité commerciale derrière Riak, dit que sa prochaine version 2. 0 Base de données NoSQL a toujours une forte cohérence, une affirmation que les autres fournisseurs de NoSQL font. La prétention des vendeurs de NoSQL d'avoir toujours une forte consistance est de prétendre être un végétarien fort … sauf le dimanche quand vous avez du rosbif.

Riak n'est pas une base de données compatible ACID. Sa configuration ne peut pas être modifiée de telle sorte qu'elle fonctionne en mode de conformité ACID. Les clients peuvent obtenir des données incohérentes pendant les opérations normales ou pendant les partitions réseau. Riak échange une cohérence absolue pour une disponibilité et une tolérance de partition accrues.

L'exécution de Riak en mode de cohérence forte signifie que ses réplicas en lecture sont mis à jour en même temps que le maître principal. Cela implique une validation en deux phases - essentiellement, le nœud maître écrit aux autres nœuds avant de confirmer que l'écriture est terminée.

Au moment d'écrire ces lignes, le mode de cohérence forte de Riak ne prend pas en charge les index secondaires ni les types de données complexes (par exemple, JSON). Espérons que Basho corrigera ce problème dans les prochaines versions de la base de données.

Riak Search (un moteur de recherche Apache Solr renommé et intégré utilise un modèle de mise à jour cohérent) peut produire des faux positifs lors de l'utilisation d'une cohérence forte. Cette situation se produit parce que les données peuvent être écrites et la transaction abandonnée, mais les données sont toujours utilisées pour l'indexation - laissant un résultat de recherche "faux positif" - le résultat n'est plus valide pour la requête de recherche.

Riak utilise également un processus sentinelle distinct pour déterminer quel nœud devient maître dans les conditions de basculement. Ce processus, cependant, n'est pas hautement disponible, ce qui signifie que pendant quelques secondes, il est possible qu'une nouvelle copie du processus sentinelle soit mise en ligne, un nouveau nœud ne peut pas être ajouté ou un nouveau maître élu. Vous devez être conscient de cette possibilité dans des conditions de basculement à haute tension.

Riak offre de bonnes fonctionnalités aux développeurs d'applications, telles que l'indexation secondaire et la prise en charge des valeurs JSON intégrées. La réplication de la base de données pour la récupération après sinistre vers d'autres centres de données est disponible uniquement dans la version payante, dont le prix peut être trouvé sur leur site Web (prix de location indiqués, prix de licence perpétuelle donnés sur demande uniquement).

L'outil de surveillance des grappes Riak Control n'est également pas très apprécié en raison de son temps de latence lors de la surveillance des grappes. Riak est très prometteur et si Basho ajoute plus de entreprises - au niveau de la gestion des clusters dans les futures versions, il deviendra un produit de premier ordre.

Gérer des partitions dans NoSQL - des nuls

Le choix des éditeurs

Utilisant le mode rafale: La photographie d'action des mannequins

Utilisant le mode rafale: La photographie d'action des mannequins

Canon EOS Rebel T1i / 500D nécessite un vitesse d'obturation rapide - et un doigt de déclenchement rapide. Heureusement, le Canon EOS Digital Rebel a un mode Drive (ou Burst), qui enregistre une série continue d'images tant que vous maintenez le bouton de l'obturateur enfoncé. Si vous voulez obtenir de superbes photos d'un sujet en mouvement rapide, le mode Drive ...

En utilisant le mode en direct (détection de visage) sur votre Canon EOS Rebel T6 / 1300

En utilisant le mode en direct (détection de visage) sur votre Canon EOS Rebel T6 / 1300

Lorsque vous activez ce mode, le Rebel T6 recherche les visages dans le cadre. Vous devrez peut-être appuyer brièvement sur le déclencheur pour réactiver l'appareil photo avant que la fonction de détection de visage ne s'enclenche. Si un visage est détecté, l'appareil photo affiche un cadre de mise au point sur le visage, comme indiqué sur ...

En utilisant les modes automatiques sur votre Canon EOS Rebel T3 / 1100D - mannequins

En utilisant les modes automatiques sur votre Canon EOS Rebel T3 / 1100D - mannequins

Pour le plus automatique de la photographie automatique, permettant aux personnes ayant une expérience minimale de capturer de belles images, réglez votre sélecteur de mode Canon EOS Rebel T3 / 1100D sur l'un des deux paramètres suivants: Auto complet: Le nom de ce mode, indiqué dans la figure suivante, indique que le l'appareil photo prend le contrôle total de toutes les expositions, luminosité, flash, ...

Le choix des éditeurs

5 Bons contrôles comptables qui minimisent le vol - les nuls

5 Bons contrôles comptables qui minimisent le vol - les nuls

Voici un résumé de cinq techniques puissantes pour minimiser les problèmes surgissez lorsque vous avez des personnes ayant des niveaux de compétence et de fiabilité différents qui travaillent avec vos données QuickBooks: Comparez régulièrement les inventaires physiques avec les enregistrements de comptabilité d'inventaire. Une des choses que vous pouvez faire, à la fois pour minimiser vos pertes d'inventaire et ...

6 Astuces pour utiliser la stratégie avec QuickBooks - les nuls

6 Astuces pour utiliser la stratégie avec QuickBooks - les nuls

Si vous utilisez QuickBooks pour vous aider à mettre en place une stratégie pratique, il y a quelques choses que vous pourriez vouloir considérer. Assurez-vous de bien comprendre ces points clés: Connaissez les trois stratégies. Habituellement, une entreprise ne peut avoir qu'une stratégie commerciale sur trois: Stratégie basée sur les coûts Stratégie basée sur la différenciation Stratégie axée sur les objectifs Choisissez une stratégie. ...

5 Astuces pour simplifier l'installation de QuickBooks 2014 - les nuls

5 Astuces pour simplifier l'installation de QuickBooks 2014 - les nuls

Si vous êtes une petite entreprise configurant QuickBooks Logiciel de comptabilité 2014, vous apprécierez ces cinq conseils utiles. Minimisez le processus d'installation de QuickBooks avec ces astuces et techniques, et vous obtiendrez une conclusion rapide et réussie. Astuce # 1 de QuickBooks: Convertir en QuickBooks à compter du 1er janvier Convertir en un nouveau système de comptabilité dès le début ...

Le choix des éditeurs

Logique Puzzles pour garder votre esprit net - les mannequins

Logique Puzzles pour garder votre esprit net - les mannequins

Mettent votre casse-tête pour résoudre ces énigmes logiques! Chacun a juste une réponse. Les niveaux sont faciles, délicats, durs et traîtres, «facile» étant (bien sûr) les puzzles les plus faciles, et «traître» étant les plus difficiles. Facile: Combien de fois un mathématicien peut-il soustraire dix de 100? Facile: Déchiffrez cet indice: YYYMEN Tricky: Une femme ...

Maintien de la stabilité de l'humeur dans les troubles bipolaires - mannequins

Maintien de la stabilité de l'humeur dans les troubles bipolaires - mannequins

Plan thérapeutique global qu'une personne atteinte de trouble bipolaire doit suivre et maintenir la stabilité de l'humeur est assez simple. Suivez ce plan de traitement: Prenez vos médicaments tels que prescrits, même lorsque vous vous sentez bien, et consultez votre médecin avant de faire des changements de médicaments. Établir des routines qui assurent un horaire régulier de veille-sommeil. Manque de qualité ...

Faire un pré-accord pour recevoir un traitement pour trouble bipolaire - les variables nominales

Faire un pré-accord pour recevoir un traitement pour trouble bipolaire - les variables nominales

En pleine Manie ou dépression, une personne peut ne pas penser assez clairement pour se faire soigner et peut même refuser le traitement nécessaire. Les êtres chers veulent faire ce qu'il y a de mieux, mais ils hésitent souvent, ne sachant pas quand intervenir et quoi faire. Devraient-ils appeler votre médecin ou votre thérapeute ou vous conduire?