Accueil Finances personnelles Appliquer des méthodes de cohérence dans NoSQL - mannequins

Appliquer des méthodes de cohérence dans NoSQL - mannequins

Table des matières:

Vidéo: Microsoft Azure OpenDev—June 2017 2024

Vidéo: Microsoft Azure OpenDev—June 2017 2024
Anonim

La propriété cohérence d'une base de données signifie que Une fois les données écrites dans une base de données, les requêtes suivantes peuvent accéder aux données et obtenir une vue cohérente des données. En pratique, cela signifie que si vous écrivez un enregistrement dans une base de données et que vous demandez immédiatement cet enregistrement, vous êtes certain de le voir. C'est particulièrement utile pour les commandes Amazon et les virements bancaires.

La cohérence est une échelle mobile, cependant, et un sujet trop profond pour couvrir ici. Cependant, dans le monde NoSQL, la cohérence se situe généralement dans l'un des deux camps:

  • Cohérence ACID (ACID signifie Atomicité, Cohérence, Isolation, Durabilité): ACID signifie qu'une fois les données écrites, vous avez une cohérence totale lit.

  • Cohérence éventuelle (BASE): BASE signifie qu'une fois les données écrites, elles apparaîtront en fin de lecture.

Une bataille fait rage entre les gens qui croient qu'une forte cohérence dans une base de données n'est pas requise et ceux qui la croient absolument nécessaire (traduire personnes à NoSQL entreprises «départements de marketing! ).

La réalité est quelque part entre les deux. Est-il important que le message Facebook d'une personne ne soit pas vu par tous ses amis pendant cinq minutes? Non, probablement pas. Changez «Facebook post» en «transaction financière d'un milliard de dollars», et votre attitude change rapidement! L'approche de cohérence que vous choisissez dépend de la situation. Dans mon expérience, cependant, la cohérence forte est toujours le choix dans les situations de système d'entreprise critiques.

ACID

ACID est un ensemble général de principes pour les systèmes transactionnels, pas seulement lié aux systèmes relationnels, ou même simplement aux bases de données, il vaut donc la peine de le savoir. ACID signifie fondamentalement, " Cette base de données a des installations pour vous empêcher de corrompre ou de perdre des données, " ce qui n'est pas une donnée pour toutes les bases de données. En fait, la grande majorité des bases de données NoSQL ne fournissent pas de garanties ACID.

Foundation DB, MarkLogic et Neo4j sont des exceptions notables. Certaines bases de données NoSQL fournissent une garantie de qualité inférieure appelée Vérifier et définir qui vérifie si quelqu'un d'autre a modifié un document avant de permettre la fin d'une transaction. Ce comportement est généralement limité car il a tendance à être implémenté sur un seul enregistrement.

MongoDB est une base de données remarquable qui offre des fonctionnalités de vérification et de définition. Avec MongoDB, une valeur entière de nœud peut être verrouillée pendant une mise à jour, empêchant ainsi toutes les opérations de lecture et d'écriture jusqu'à la fin de l'opération.La société travaille sur la suppression de cette limitation, cependant.

BASE

Pour garantir que chaque client voit toutes les mises à jour (c'est-à-dire qu'il a une vue cohérente des données), une écriture sur le noeud principal contenant les données doit être verrouillée jusqu'à ce que toutes les répliques lues soient à jour. Ceci est appelé

deux - phase commit - la modification est effectuée localement mais appliquée et confirmée au client uniquement lorsque tous les autres nœuds sont mis à jour. BASE assouplit cette exigence, en n'exigeant qu'un sous-ensemble des nœuds contenant les mêmes données pour être mis à jour afin que la transaction réussisse. Une fois la transaction validée, la réplique en lecture seule est mise à jour.

L'avantage de cette approche est que les transactions sont engagées plus rapidement. Ayant des réplicas en direct lisibles signifie également que vous pouvez répartir votre charge de lecture de données, ce qui rend la lecture plus rapide.

L'inconvénient est que les clients qui se connectent à certaines des réplicas lus peuvent voir des informations obsolètes pour une période indéterminée. Dans certains scénarios, cet état est correct. Si vous postez un nouveau message sur Facebook et que certains de vos amis ne le voient pas pendant quelques minutes, ce n'est pas une énorme perte. Si vous envoyez un ordre de paiement à votre banque, vous voudrez peut-être une transaction immédiate.

Une approche alternative aux réplicas en lecture seule est d'avoir un cluster

partagé - rien dans lequel un seul nœud d'un cluster dessert toujours une partie particulière de la base de données. Partagé: rien ne signifie que vous perdez la réplication. Les bases de données qui utilisent cette méthode répliquent généralement leurs données vers une zone secondaire sur un ou plusieurs autres nœuds principaux, mais un seul nœud est le maître des lectures et des écritures à tout moment.

Les clusters sans partage ont l'avantage d'un modèle de cohérence plus simple, mais nécessitent un commit en deux phases pour les réplicas. Ce fait signifie que la transaction se verrouille alors que toutes les répliques sont mises à jour. (Un verrou interne plus le verrouillage pour les autres nœuds vous donne deux phases.)

Cela a généralement moins d'impact que les clusters de données partagés avec des réplicas en lecture seule, car les zones de données de réplicas partagées ne reçoivent pas les demandes de lecture. partie de la base de données. Par conséquent, les validations en deux phases sont plus rapides sur un cluster à rien partagé que sur un cluster avec des réplicas lisibles.

Choisir ACID ou BASE?

Comme vous pouvez vous y attendre, une grande partie de l'argument est que les fournisseurs de NoSQL peuvent se différencier de leurs concurrents en revendiquant une approche différente et unique. Il est intéressant de noter, cependant, le nombre de fournisseurs NoSQL avec la conformité ACID sur leur feuille de route.

Certaines bases de données NoSQL ont une conformité ACID sur leur feuille de route, même si elles sont des partisans de BASE, qui montre à quel point les garanties ACID sont valables pour les systèmes

entreprise, mission - critiques . De nombreuses entreprises utilisent des produits de cohérence BASE pour tester leurs idées, car elles sont gratuites, mais migrent vers une base de données payante conforme à l'ACID lorsqu'elles souhaitent se connecter à un système critique.

Le moyen le plus simple de décider si vous avez besoin d'ACID est de prendre en compte les interactions entre les personnes et les autres systèmes avec vos données. Par exemple, si vous ajoutez ou mettez à jour des données, est-il important que la requête suivante puisse voir le changement? En d'autres termes, les décisions importantes sont-elles suspendues à l'état actuel de la base de données? Le fait de voir des données légèrement dépassées signifie-t-il que ces décisions pourraient être fatales?

Dans les services financiers, le besoin de cohérence est évident. Pensez aux commerçants qui achètent des actions. Ils ont besoin de vérifier le solde de trésorerie avant de négocier pour s'assurer qu'ils ont l'argent pour couvrir le commerce. S'ils ne voient pas le bon équilibre, ils décideront de dépenser de l'argent pour une autre transaction. Si la base de données qu'ils interrogent n'est finalement cohérente, ils peuvent ne pas voir un manque de fonds suffisants, exposant ainsi leur organisation à un risque financier.

Des cas similaires peuvent être créés pour ACID sur BASE dans les secteurs de la santé, de la défense, du renseignement et d'autres secteurs. Tout se résume cependant aux données et à l'importance de la rapidité et de la sécurité des données.

Appliquer des méthodes de cohérence dans NoSQL - mannequins

Le choix des éditeurs

Tableaux et pointeurs en C ++ - le nom du tableau des mannequins

Tableaux et pointeurs en C ++ - le nom du tableau des mannequins

Est un pointeur sur le tableau lui-même. Le tableau est une séquence de variables stockée en mémoire. Le nom du tableau pointe vers le premier élément. C'est une question intéressante sur les pointeurs: Pouvez-vous avoir un en-tête de fonction, comme la ligne suivante, et juste utiliser sizeof pour déterminer comment ...

Boost Bibliothèques et C ++ - mannequins

Boost Bibliothèques et C ++ - mannequins

De nombreux développeurs utilisent les bibliothèques Boost car elles fournissent un code de haute qualité une partie de Boost est en train d'être normalisée pour être incluse dans la bibliothèque standard. L'une des meilleures choses à propos de Boost est que la bibliothèque elle-même est gratuite. Le site Web de Boost tient à faire savoir aux développeurs qu'ils ne ...

Casser les programmes Mis à part C ++ - les mannequins

Casser les programmes Mis à part C ++ - les mannequins

Le programmeur peut casser un seul programme en fichiers sources distincts généralement appelés modules. Ces modules sont compilés séparément dans le code machine par le compilateur C ++, puis combinés au cours du processus de génération pour générer un seul programme. Ces modules sont également connus par les geeks du compilateur en tant qu'unités de traduction C ++. Le processus de combinaison ...

Le choix des éditeurs

Comment régler les paramètres via l'affichage d'informations sur votre Nikon D5200 - mannequins

Comment régler les paramètres via l'affichage d'informations sur votre Nikon D5200 - mannequins

L'information l'affichage ne sert pas uniquement à vérifier les paramètres de prise de vue actuels; Cela vous donne également un accès rapide à certains des paramètres les plus critiques. La touche de cette fonction est le bouton Information Edit, situé à l'arrière de l'appareil photo, à droite du viseur. Voici comment cela fonctionne: Afficher les informations ...

Met en surbrillance le mode d'affichage sur votre Nikon D7100 - mannequins

Met en surbrillance le mode d'affichage sur votre Nikon D7100 - mannequins

En mode d'affichage hautes lumières sur votre Nikon D7100 pense que l'appareil photo peut être surexposé clignoter dans le moniteur de l'appareil photo. L'un des problèmes de photo les plus difficiles à corriger dans un programme de retouche photo est connu sous le nom de surbrillance dans certains cercles et de surbrillance dans d'autres. Les deux termes signifient que les zones les plus claires de ...

Comment régler les paramètres via la bande de contrôle Nikon D3300 - les tétines

Comment régler les paramètres via la bande de contrôle Nikon D3300 - les tétines

Présentes en bas à gauche Au coin du Nikon D3300, le bouton i active une bande de contrôle qui vous donne un accès rapide à certains paramètres de prise de vue critiques. Voici comment utiliser la bande de contrôle pour la photographie dans le viseur: Affichez l'écran d'informations. Vous pouvez le faire en appuyant sur le bouton Info. Appuyez sur le bouton i. Le haut ...

Le choix des éditeurs

Comment imprimer vos diapositives et notes Keynote - Les tétines

Comment imprimer vos diapositives et notes Keynote - Les tétines

Lorsque vous créez une présentation dans Snow Leopard Application Keynote, vous ne pouvez pas toujours vouloir imprimer des documents. Cependant, si vous présentez un long diaporama avec beaucoup d'informations que vous aimeriez que votre public se souvienne, rien ne vaut les documents qui incluent des images réduites de vos diapositives (et, facultativement, les notes de votre présentateur). Vous pouvez ...

Comment réorganiser ou supprimer les signets - les mannequins

Comment réorganiser ou supprimer les signets - les mannequins

Safari enregistre vos signets et vos dossiers de signets dans l'ordre dans lequel vous les créez, en les ajoutant au bas d'une liste toujours croissante. Si vous continuez à ajouter des marque-pages au menu Signets sans les placer dans des dossiers, vous pouvez constater que vous avez un nombre de signets gazillion indiqué bon gré mal gré et que vous ne vous en souvenez plus ...

Pour ouvrir et utiliser l'iDisk de Snow Leopard - les mannequins

Pour ouvrir et utiliser l'iDisk de Snow Leopard - les mannequins

Avec un compte MobileMe actif, iDisk est disponible et vous fournit un espace de stockage supplémentaire. Pour connaître l'espace de stockage utilisé et pour configurer l'accès à votre dossier Public, ouvrez les Préférences Système, cliquez sur l'icône MobileMe, puis sur le bouton iDisk pour afficher les paramètres. Vos paramètres iDisk sont disponibles dans les Préférences Système. Le ...