ACID vs BASE: Il Teorema di CAP Giugno 16, 2008
Posted by Stefano Pedone in Articolo.Tags: performance, scalability
trackback
Nella progettazione di sistemi largamente distribuiti ad alta scalabilità, incombe il vincolo di una legge che regola il compromesso tra disponibilità e consistenza dei dati: il Teorema di CAP.
Eric A. Brewer in una presentazione del 1998 (Lessons from Internet Services: ACID vs. BASE) introdusse questa congettura, in seguito fu dimostrata vera:
Un sistema di dati condivisi è generalmente caratterizzato da tre proprietà: consistenza, disponibilità, tolleranza al partizionamento di rete (Consistency, Availability, tollerance to network Partitions).
Il teorema afferma che si possono avere solo due di queste tre proprietà, sacrificando quindi la terza.
Degli esempi:
- Consistenza e Disponibilità: si tratta di sistemi localizzati che non risentono di partizionamento di rete, come un LDAP, un database centralizzato o un file system. La consistenza è garantita da transazioni 2PC (two-phase commit).
- Consistenza e tolleranza al Partizionamento: sistemi distribuiti, con un elevato partizionamento di rete, in cui il valore della consistenza dei dati è di primaria importanza, a scapito della eventuale elevata latenza e bassa disponibilità (dovuta a politiche di locking pessimistiche).
- Disponibilità e tolleranza al Partizionamento: la disponibilità è il valore principale per questo genere di sistemi. Per questo utilizzano protocolli più ottimistici e un approccio best-effort. Un esempio classico sono i DNS.
I grandi siti web dei nostri giorni, caratterizzate da architetture altamente scalabili e profondamente distribuite con politiche di prossimità geografica, puntano in maniera forte sulla garanzia di alte prestazioni ed estrema disponibilità dei dati. Si trovano quindi nella terza delle situazioni citate.
Lo sforzo di garantire dati consistenti porta questi sistemi ad adottare approcci differenti per l’accesso e l’aggiornamento dei dati.
Si passa dall’approccio transazionale ACID (Atomicity, Consistency, Isolation, Durability) ad un approccio BASE (Basic Available, Soft-state, Eventual consistency).
Per comprendere nel concreto come sia possibile ottenere dati sempre aggiornati e disponibili anche utilizzando l’approccio ottimistico del tipo BASE, consiglio la visione di un intervento di Werner Vogels, CTO di Amazon.com sull’argomento.
La presentazione è disponibile su InfoQ a questo indirizzo:
http://www.infoq.com/presentations/availability-consistency
Link consigliati: http://highscalability.com










[...] ad hoc per gestire al meglio le esigenze nel trattamento dei dati, soprattutto in termini di disponibilità, scalabilità e distribuzione geografica. Molti di questi progetti sono stati rilasciati poi in modalità opensource. Da un punto [...]