Teorema CAP vs. BASE (NoSQL)


12

Teorema CAP vs. BASE (NoSQL)

Ciao, sto cercando di scrivere un piccolo articolo per il mio lavoro su NoSQL e ho descritto il Teorema CAP come, se non tutti, a cui aderisce la maggior parte dei database NoSQL. Successivamente ho letto un documento sulla differenza tra NoSQL e RDBMS in cui si affermava che i database NoSQL utilizzano la controparte ACID BASE.

Conosco le proprietà di BASE, ACID e CAP, ma ho difficoltà a capire quale relazione tra teorema CAP e BASE hanno l'una con l'altra. Da quanto ho capito, il teorema di CAP porta all'acronimo BASE ma è la conclusione giusta? O sono due approcci diversi per "costruire" un database attorno al quale condividere alcune proprietà simili ??

In questo post del blog (http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/) l'autore scrive:

È più difficile sviluppare software nel mondo BASE tollerante ai guasti rispetto al faticoso mondo ACID, ma il teorema CAP di Brewer afferma che non hai scelta se vuoi ingrandirla. Tuttavia, come sottolinea Brewer in questa presentazione, esiste un continuum tra ACID e BASE. Puoi decidere quanto vuoi essere vicino a un'estremità del continuum o all'altra in base alle tue priorità.

In un altro articolo l'autore scrive:

Molti dei database NOSQL hanno soprattutto allentato i requisiti di coerenza al fine di ottenere una migliore disponibilità e partizionamento. Ciò ha portato a sistemi noti come BASE (sostanzialmente disponibili, soft-state, eventualmente coerenti). Questi non hanno transazioni in senso classico e introducono vincoli sul modello di dati per consentire migliori schemi di partizione (come il sistema Dynamo ecc.). In questa introduzione è disponibile una discussione più completa su CAP, ACID e BASE.

Ciò afferma chiaramente che la PAC si traduce in BASE.

Spero che qualcuno possa chiarirmi questo e rimuovere la mia confusione ..

Grazie
- Mestika

Risposte:


15

CAP è fondamentalmente un continuum lungo il quale BASE e ACID si trovano alle estremità opposte.

Diagramma CAP

CAP è Coerenza, disponibilità e tolleranza della partizione. Fondamentalmente puoi sceglierne 2 ma non puoi fare tutti e 3.

ACID si concentra su coerenza e disponibilità.

BASE si concentra sulla tolleranza e la disponibilità delle partizioni e lancia coerenza fuori dalla finestra.


1
Un buon database ACID dovrebbe concentrarsi sulla coerenza e la tolleranza della partizione, poiché il lancio della tolleranza della partizione fuori dalla finestra (per dirla in parole) interromperebbe la coerenza ogni volta che si verifica una partizione.
Pietro,

ACID non si concentra sulla disponibilità. La 'A' sta per Atomicity e copre cose come abort - rollback - restart.
momo,
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.