La cohérence dans le théorème ACID et CAP, sont-elles les mêmes?

18

D'après ma compréhension, la cohérence d'ACID garantit l'intégrité des données.

Cependant, la cohérence du CAP signifie que les données peuvent apparaître rapidement dans un système distribué.

Est-ce à dire: ce n'est pas le même concept?

Yang Xia
la source

Réponses:

18

Ils ne sont pas vraiment les mêmes, en raison de l'étendue des données

ACIDE

CASQUETTE

  • Cohérence (tous les nœuds ont les mêmes données via une cohérence éventuelle)
  • Disponibilité
  • Tolérance de partition: le système continue de fonctionner malgré la perte arbitraire de messages ou la défaillance d'une partie du système

SYNOPSIS

  • ACID traite la cohérence des données d'un nœud individuel
  • CAP aborde la cohérence des données à l'échelle du cluster
RolandoMySQLDBA
la source
1
Éventuellement. Finalement, aurait dû être en gras, Rolando. C'est le casse-tête :) Bonne année!
Philᵀᴹ
3

Théorème CAP : spécifie qu'un système distribué peut fournir deux services (ex. Disponibilité et tolérance de partition) mais jamais trois. Si, par exemple, un service fournit la disponibilité et le partitionnement, il ne peut jamais garantir la cohérence, pas immédiatement, donc la cohérence finale est utilisée, ce qui permet à l'infrastructure de basculer entre incohérence et cohérence, mais à un moment donné, tôt ou tard, l'infrastructure deviendra cohérente , résultant en une cohérence éventuelle. Les services cloud fonctionnent de cette manière et Simple DB d'Amazon utilise une cohérence éventuelle.

Les fonctionnalités ACID sont généralement appliquées aux bases de données relationnelles. Si vous souhaitez appliquer ACID de manière distribuée (base de données distribuée), ACID utilise 2PC (validation en deux phases) pour forcer la cohérence entre les partitions. Cependant, comme ACID assure la cohérence et le partitionnement, l'application du théorème CAP pour (les environnements distribués) signifie que la disponibilité est compromise.

Pour cette raison, BASE (Basiquement disponible, état souple, éventuellement cohérent) est utilisé, ce qui peut fournir des niveaux d'extensibilité qui ne peuvent pas être obtenus avec ACID.

J'espère que cela t'aides.

Stefan M
la source
-1

Concernant la cohérence dans le théorème de la PAC, Julian Brown écrit dans son article ( http://www.julianbrowne.com/article/brewers-cap-theorem ):

Un service cohérent fonctionne pleinement ou pas du tout. Gilbert et Lynch utilisent le mot «atomique» au lieu de cohérent dans leur preuve, ce qui est plus logique sur le plan technique car, strictement parlant, le C dans ACID est cohérent tel qu'il est appliqué aux propriétés idéales des transactions de base de données et signifie que les données ne seront jamais persistantes. rompt certaines contraintes prédéfinies. Mais si vous considérez que c'est une contrainte prédéfinie de systèmes distribués que plusieurs valeurs pour le même morceau de données ne sont pas autorisées, je pense que la fuite dans l'abstraction est bouchée (en plus, si Brewer avait utilisé le mot atomique, il s'appellerait l'AAP théorème et nous serions tous à l'hôpital chaque fois que nous avons essayé de le prononcer).

Ainsi, le C dans CAP correspondrait au A dans ACID.

Avec Gilbert et Lynch, il se réfère à l'article "Seth Gilbert et Nancy Lynch: conjecture de Brewer et faisabilité de services Web cohérents, disponibles et tolérants aux partitions"

white_gecko
la source
1
La cohérence CAP s'applique à un système distribué, tandis que ACID s'abstrait de ce niveau de l'architecture du système. La cohérence CAP peut être nécessaire pour la mise en œuvre de l'atomicité ACID, mais ce n'est pas la même chose.
mustaccio
Étant donné que Brewer lui-même met son théorème de la PAC en relation avec l'ACID ( people.eecs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf Page 2 & 3), je pense qu'il est parfaitement valable d'approfondir la corrélation entre la tous les deux.
white_gecko