Coerenza nel teorema ACID e CAP, sono gli stessi?


18

Da quanto ho capito, la coerenza in ACID sta garantendo l'integrità dei dati.

Tuttavia, la coerenza in CAP significa che i dati possono apparire rapidamente nel sistema distribuito.

Ciò significa: non sono lo stesso concetto?

Risposte:


18

Non sono proprio gli stessi, a causa dell'ambito dei dati

ACIDO

CAP

  • Coerenza (tutti i nodi hanno gli stessi dati tramite eventuale coerenza)
  • Disponibilità
  • Tolleranza alle partizioni: il sistema continua a funzionare nonostante la perdita o il fallimento arbitrari dei messaggi di parte del sistema

SINOSSI

  • ACID risolve la coerenza dei dati di un singolo nodo
  • CAP affronta la coerenza dei dati a livello di cluster

1
Eventuale. Alla fine avrebbe dovuto essere in grassetto, Rolando. È un vero affare :) Buon anno!
Philᵀᴹ

3

Teorema CAP : specifica che un sistema distribuito può fornire due servizi (es. Tolleranza di disponibilità e partizione) ma mai tre. Se, ad esempio, un servizio fornisce disponibilità e partizionamento, non può mai garantire la coerenza, non immediatamente, quindi viene utilizzata la coerenza finale, che consente all'infrastruttura di fluire tra incoerenza e coerenza, tuttavia a un certo punto, prima o poi, l'infrastruttura diventerà coerente , con conseguente eventuale coerenza. I servizi cloud funzionano in questo modo e il Simple DB di Amazon utilizza un'eventuale coerenza.

Le funzionalità ACID vengono generalmente applicate ai DB relazionali. Se si desidera applicare ACID in modo distribuito (DB distribuito), ACID utilizza 2PC (commit a due fasi) per forzare la coerenza tra le partizioni. Tuttavia, poiché ACID fornisce coerenza e partizionamento, l'applicazione del teorema CAP per (ambienti distribuiti) significa che la disponibilità è compromessa.

Per questo motivo , viene utilizzato BASE (sostanzialmente disponibile, stato morbido, eventualmente coerente) che può fornire livelli di scalabilità che non possono essere ottenuti con ACID.

Spero che sia di aiuto.


-1

Per quanto riguarda la coerenza nel teorema della PAC, Julian Brown scrive nel suo articolo ( http://www.julianbrowne.com/article/brewers-cap-theorem ):

Un servizio coerente funziona pienamente o per niente. Gilbert e Lynch usano la parola "atomico" invece che coerente nella loro dimostrazione, il che ha più senso tecnicamente perché, a rigor di termini, coerente è la C in ACID applicata alle proprietà ideali delle transazioni di database e significa che i dati non saranno mai perseverati rompe alcuni vincoli preimpostati. Ma se lo consideri un vincolo predefinito dei sistemi distribuiti che non sono consentiti più valori per lo stesso pezzo di dati, allora penso che la perdita nell'astrazione sia ostruita (inoltre, se Brewer avesse usato la parola atomica, si chiamerebbe AAP teorema e saremmo tutti in ospedale ogni volta che provassimo a pronunciarlo).

Pertanto la C in CAP corrisponderebbe alla A in ACID.

Con Gilbert e Lynch fa riferimento all'articolo "Seth Gilbert e Nancy Lynch: congetture di Brewer e fattibilità di servizi web coerenti, disponibili e tolleranti alle partizioni"


1
La coerenza della PAC si applica a un sistema distribuito, mentre ACID si sottrae da quel livello di architettura del sistema. La coerenza della PAC potrebbe essere necessaria per l'implementazione dell'atomicità ACID, ma non è la stessa cosa.
Mustaccio,

Dal momento che Brewer stesso mette il suo teorema della CAP in relazione all'ACID ( people.eecs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf Pagina 2 & 3) penso che sia perfettamente valido approfondire la correlazione tra tutti e due.
white_gecko
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.