Explication de la terminologie BASE


170

L' acronyme BASE est utilisé pour décrire les propriétés de certaines bases de données, généralement des bases de données NoSQL. On l'appelle souvent l'opposé de l' ACID .

Il n'y a que quelques articles qui abordent les détails de BASE, tandis que ACID a beaucoup d'articles qui expliquent chacune des propriétés d'atomicité, de cohérence, d'isolation et de durabilité. Wikipédia ne consacre que quelques lignes au terme.

Cela me laisse avec quelques questions sur la définition :

B asically A vailable, S état souvent, E cohérence ventual

J'ai interprété ces propriétés comme suit, en utilisant cet article et mon imagination:

Fondamentalement disponible, il peut s'agir de la disponibilité perçue des données. Si un seul nœud tombe en panne, une partie des données ne sera pas disponible, mais toute la couche de données reste opérationnelle.

  • Cette interprétation est-elle correcte ou fait-elle référence à autre chose?
  • Mise à jour: en déduisant de la réponse de Mau , cela pourrait-il signifier que toute la couche de données accepte toujours de nouvelles données, c'est-à-dire qu'il n'y a pas de scénario de verrouillage qui empêche les données d'être insérées immédiatement?

État souple : Tout ce que j'ai pu trouver était le concept de données nécessitant une actualisation périodique. Sans actualisation, les données expireront ou seront supprimées.

  • La suppression automatique des données dans une base de données me semble étrange.
  • Les données périmées ou périmées ont plus de sens. Mais ce concept s'appliquerait à tout type de stockage de données redondant, pas seulement à NoSQL. Décrit-il autre chose alors?

La cohérence finale signifie que les mises à jour finiront par se répercuter sur tous les serveurs, avec suffisamment de temps.

  • Cette propriété est claire pour moi.

Quelqu'un peut-il expliquer ces propriétés en détail?

Ou est-ce juste un acronyme farfelu et dénué de sens qui fait référence aux concepts d'acides et de bases que l'on trouve en chimie?

Réponses:


194

L'acronyme BASE a été défini par Eric Brewer , également connu pour avoir formulé le théorème CAP .

Le théorème CAP stipule qu'un système informatique distribué ne peut pas garantir toutes les trois propriétés suivantes en même temps:

  • Cohérence
  • Disponibilité
  • Tolérance de partition

Un système BASE renonce à la cohérence.

  • Fondamentalement disponible indique que le système ne garantit la disponibilité, en termes du théorème de la PAC.
  • L'état souple indique que l'état du système peut changer avec le temps, même sans entrée. Ceci est dû au modèle de cohérence éventuel.
  • La cohérence finale indique que le système deviendra cohérent au fil du temps, étant donné que le système ne reçoit pas d'entrée pendant ce temps.

Brewer admet que l'acronyme est artificiel :

J'ai trouvé l'acronyme [BASE] avec mes étudiants dans leur bureau plus tôt cette année-là. Je suis d'accord que c'est un peu artificiel, mais "ACID" l'est aussi - beaucoup plus que les gens ne le pensent, alors nous avons pensé que c'était assez bon.


33
Fondamentalement disponible ne garantit PAS la disponibilité. cela signifie qu'il est principalement disponible mais que les serveurs peuvent tomber en panne pour diverses raisons.
DarthVader

@Neils, alors ACID abandonne-t-il la disponibilité ou la tolérance aux brevets?
Pacerier

@Pacerier, c'est là que le théorème CAP commence à montrer ses défauts :) Si le système garantit la tolérance de partition, il sacrifie la disponibilité en cas de partition. Si le système garantit la disponibilité, il abandonne la tolérance de partition, ce qui signifie qu'une partition rendra le système indisponible (ou incohérent). Vous pouvez donc voir que «disponibilité» et «tolérance de partition» vont de pair. Il y a plus de détails à ce sujet dans cet article .
Niels van der Rest le

1
De manière non scientifique, mais d'après mes observations, quand on parle de services Web, ACID est le plus souvent associé à SOAP et BASE est plus étroitement associé aux services REST (RESTful). Et pour une discussion plus fine sur la cohérence éventuelle, consultez le débat entre MongoDB et les partisans de CouchDB.
charles ross

Le "théorème" du CAP est disséqué mathématiquement (mais très lisible) et discuté d'une manière particulièrement intelligente par Mark Burgess , dont je suis en train de lire l'article. (J'y ai été lié en premier lieu par Wikipedia .)
Wildcard

45

Cela a à voir avec BASE : le genre BASE cavalier est toujours disponible Au fond (à de nouvelles relations), dans un état mou (aucun de ses relations très longtemps) et finalement cohérente (un jour , il se marier).


Ok, alors vous dites que les bases de données ACID sont bien meilleures que BASE?
Pacerier

2
Au contraire, BASE est toujours plus amusant.
Mau

8
Eh bien, c'est en fait mon pain quotidien et si vous voulez une réponse sérieuse, ACID.
Mau

1
@Pacerier Eric Brewer, qui a inventé le terme BASE, indique que si les banques et les institutions financières parlent de contraintes ACID, en réalité, elles ne le sont pas à proprement parler ( highscalability.com/blog/2013/5/1/… )
et et

2
@Pacerier et Mau, qu'en est-il de NewSQL? Le choisiriez-vous plutôt que NoSQL (BASE) et relationnel (ACID)?
Boris Mocialov

6
  • Disponibilité de base : la base de données semble fonctionner la plupart du temps.

  • État doux : les magasins n'ont pas besoin d'être cohérents en écriture ou mutuellement cohérents tout le temps.

  • Cohérence à terme : les données doivent toujours être cohérentes, en ce qui concerne la manière dont un certain nombre de modifications sont effectuées.


4

ACID et BASE sont des modèles de cohérence pour SGBDR et NoSQL respectivement. Les transactions ACID sont beaucoup plus pessimistes, c'est-à-dire qu'elles sont plus préoccupées par la sécurité des données. Dans le monde des bases de données NoSQL, les transactions ACID sont moins à la mode car certaines bases de données ont assoupli les exigences en matière de cohérence immédiate, de fraîcheur et de précision des données afin d'obtenir d'autres avantages, tels que l'évolutivité et la résilience.

BASE signifie -

  • Disponibilité de base - La base de données semble fonctionner la plupart du temps.
  • État souple - Les magasins n'ont pas besoin d'être cohérents en écriture, et les différents réplicas ne doivent pas non plus être cohérents entre eux tout le temps.
  • Cohérence éventuelle - Les magasins présentent une cohérence à un moment ultérieur (par exemple, paresseusement au moment de la lecture).

Par conséquent, BASE assouplit la cohérence pour permettre au système de traiter la demande même dans un état incohérent.

Exemple : personne ne serait dérangé si leur tweet était incohérent au sein de leur réseau social pendant une courte période. Il est plus important d'obtenir une réponse immédiate que d'avoir un état cohérent des informations des utilisateurs.


1
La cohérence éventuelle a en fait un impact indésirable. Avez-vous déjà connu un ralentissement du chat LinkedIn. Vous répondez par une phrase, puis par une autre. Ensuite, en raison de la cohérence éventuelle, ou du manque de mise en œuvre appropriée de celle-ci, vous vous retrouvez avec vos deux réponses commutées ensemble. Oui, vous avez obtenu 2 réponses dans le chat à la fin, mais elles ne sont pas dans l'ordre prévu.
zmechanic le

2

Pour ajouter aux autres réponses, je pense que les acronymes ont été dérivés pour montrer une échelle entre les deux termes afin de distinguer la fiabilité des transactions ou des demandes entre le RDMS et le Big Data.

De cet article acide vs base

En chimie, le pH mesure la basicité et l'acidité relatives d'une solution aqueuse (solvant dans l'eau). L'échelle de pH va de 0 (substances très acides comme l'acide de batterie) à 14 (substances hautement alcalines comme le mensonge); l'eau pure à 77 ° F (25 ° C) a un pH de 7 et est neutre.

Les ingénieurs de données ont habilement emprunté acide vs base aux chimistes et ont créé des acronymes qui, bien que leur signification ne soit pas exacte, sont toujours des représentations appropriées de ce qui se passe dans un système de base de données donné lors de l'examen de la fiabilité du traitement des transactions.

Un autre point, puisque je travaille avec du Big Data avec Elasticsearch. Pour clarifier, une instance d'Elasticsearch est un nœud et un groupe de nœuds forme un cluster.

Pour moi d'un point de vue pratique, BA (Basically Available), dans ce contexte, a l'idée de plusieurs nœuds maîtres pour gérer le cluster Elasticsearch et ses opérations.

Si vous avez 3 nœuds maîtres et que le nœud maître dirigeant actuellement tombe en panne, le système reste actif, bien que dans un état moins efficace, et un autre nœud maître prend sa place en tant que nœud maître maître principal. Si deux nœuds maîtres tombent en panne, le système reste actif et le dernier nœud maître prend le relais.


0

Cela pourrait simplement être parce que ACID est un ensemble de propriétés que les substances montrent (en chimie) et BASE est un ensemble complémentaire d'entre elles. La cohérence finale de l'état souple a été décidée car elle est pleine de forme.


2
Cela peut expliquer comment l'acronyme a vu le jour, mais cela n'explique pas ce que signifient les différentes propriétés .
Jmb

L'utilisation de mots tels que `` Fondamentalement '', qui ne sont même pas significatifs en termes de signification qu'ils apportent, suggère que l'acronyme a été choisi en premier (ACID vs BASE), puis les mots ont été trouvés pour en quelque sorte remplir les parties de l'acronyme. . C'est probablement pourquoi nous ne trouvons pas autant d'explications et de références (par rapport aux mots d'ACID, explication dont vous pouvez trouver dans chaque page qui parle de SGBDR) à ce que ces mots signifient.
siebenheaven

Je trouve cela intéressant, car "Basically Available" semble tellement forcé.
Ricardo Pedroni
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.