web-dev-qa-db-fra.com

La cohérence du théorème ACID et CAP est-elle la même?

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?

19
Yang Xia

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

ACIDE

CAP

  • 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
18
RolandoMySQLDBA

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.

ACIDE les fonctionnalités 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 fournit 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 [~ # ~] (Fondamentalement disponible, état souple, éventuellement cohérent) est utilisé, ce qui peut fournir des niveaux de évolutivité qui ne peut pas être obtenue avec ACID.

J'espère que cela t'aides.

3
Stefan M