Konsistenz in ACID- und CAP-Theorem, sind sie gleich?

18

Nach meinem Verständnis gewährleistet die Konsistenz von ACID die Datenintegrität.

Aufgrund der Konsistenz in CAP können die Daten in verteilten Systemen jedoch schnell angezeigt werden.

Heißt das: Sie sind nicht dasselbe Konzept?

Yang Xia
quelle

Antworten:

18

Sie sind aufgrund des Umfangs der Daten nicht wirklich gleich

ACID

DECKEL

  • Konsistenz (Alle Knoten haben dieselben Daten über eventuelle Konsistenz)
  • Verfügbarkeit
  • Partitionstoleranz: Das System funktioniert trotz willkürlichem Nachrichtenverlust oder Ausfall eines Teils des Systems weiter

ZUSAMMENFASSUNG

  • ACID befasst sich mit der Datenkonsistenz eines einzelnen Knotens
  • CAP befasst sich mit der clusterweiten Datenkonsistenz
RolandoMySQLDBA
quelle
1
Eventuell. Eventuell hätte das fett sein sollen, Rolando. Es ist der Deal-Breaker :) Frohes Neues Jahr!
Philᵀᴹ
3

CAP-Theorem : Gibt an, dass ein verteiltes System zwei Dienste bereitstellen kann (z. B. Verfügbarkeit und Partitionstoleranz), jedoch niemals drei. Wenn ein Service zum Beispiel Verfügbarkeit und Partitionierung bereitstellt, kann er niemals die Konsistenz sicherstellen, nicht sofort. Daher wird die Endgültige Konsistenz verwendet, wodurch die Infrastruktur zwischen Inkonsistenz und Konsistenz wechseln kann. An einem bestimmten Punkt wird die Infrastruktur jedoch früher oder später konsistent , was zu einer eventuellen Konsistenz führt. Cloud-Dienste funktionieren auf diese Weise, und Amazon Simple DB verwendet die Konsistenz der Ergebnisse.

ACID- Funktionen werden normalerweise auf relationale DBs angewendet. Wenn Sie ACID verteilt anwenden möchten (Distributed DB), verwendet ACID 2PC (Two-Phase Commit), um die Konsistenz über Partitionen hinweg zu erzwingen. Da ACID jedoch für Konsistenz und Partitionierung sorgt, bedeutet die Anwendung des CAP-Theorems für (verteilte Umgebungen), dass die Verfügbarkeit gefährdet ist.

Aus diesem Grund wird BASE (Grundsätzlich verfügbar, weicher Zustand, eventuell konsistent) verwendet, das eine Skalierbarkeit bietet, die mit ACID nicht erreicht werden kann.

Hoffe das hilft.

Stefan M
quelle
-1

In Bezug auf die Konsistenz des GAP-Theorems schreibt Julian Brown in seinem Artikel ( http://www.julianbrowne.com/article/brewers-cap-theorem ):

Ein Dienst, der konsistent ist, funktioniert vollständig oder überhaupt nicht. Gilbert und Lynch verwenden das Wort "atomar" anstelle von "konsistent" in ihrem Beweis, was technisch sinnvoller ist, da genau genommen das C in ACID konsistent ist, wenn es auf die idealen Eigenschaften von Datenbanktransaktionen angewendet wird, und dies bedeutet, dass Daten niemals dauerhaft gespeichert werden bricht bestimmte voreingestellte Einschränkungen. Wenn Sie es jedoch als voreingestellte Einschränkung für verteilte Systeme betrachten, dass mehrere Werte für dasselbe Datenelement nicht zulässig sind, ist das Leck in der Abstraktion möglicherweise verstopft (und wenn Brewer das Wort atomar verwendet hätte, würde es als AAP bezeichnet werden Satz und wir wären alle im Krankenhaus, wenn wir versuchten, es auszusprechen).

Somit würde das C in CAP dem A in ACID entsprechen.

Mit Gilbert und Lynch verweist er auf den Artikel "Seth Gilbert und Nancy Lynch: Brewers Vermutung und die Machbarkeit konsistenter, verfügbarer, partitionstoleranter Webdienste".

white_gecko
quelle
1
Die CAP-Konsistenz gilt für ein verteiltes System, während sich ACID von dieser Ebene der Systemarchitektur abstrahiert. Die Konsistenz der GAP kann für die Implementierung der ACID-Atomizität erforderlich sein, ist aber nicht dasselbe.
Mustaccio
Da Brewer selbst sein CAP-Theorem in Beziehung zu ACID setzt ( people.eecs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf Page 2 & 3), halte ich es für richtig, die Korrelation zwischen dem beide.
white_gecko