Teorema PACELC

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

Nell'informatica teorica, il teorema PACELC è un'estensione del teorema CAP. Asserisce che nel caso di tolleranza di partizione (P) in un sistema informatico distribuito si deve scegliere tra disponibilità (A) e consistenza (C) (come per il teorema CAP), ma altrimenti (E), anche quando il sistema è in esecuzione normalmente in assenza di partizioni, si deve scegliere tra latenza (L) e consistenza (C).

Descrizione[modifica | modifica wikitesto]

PACELC si basa sul teorema CAP. Entrambi i teoremi descrivono come i database distribuiti abbiano delle limitazioni e presentano i compromessi relativi a consistenza, disponibilità e tolleranza al partizionamento dei dati. PACELC tuttavia va oltre e asserisce che esiste anche un compromesso, questa volta tra latenza e consistenza, anche in assenza di partizioni, fornendo così una rappresentazione più completa del potenziale compromesso per sistemi distribuiti.[1]

Un requisito di alta disponibilità implica che il sistema debba replicare dei dati. Non appena un sistema distribuito replica dei dati, nasce un compromesso tra consistenza e latenza.

Il teorema PACELC è stato inizialmente descritto nel 2010 da Daniel J. Abadi nell'università di Yale in un post di un blog,[2] che successivamente formalizzò in uno scritto nel 2012.[3] Lo scopo di PACELC è di indirizzare la sua tesi che "ignorando il conflitto consistenza/latenza di sistemi replicati è uno dei principali errori in CAP, visto che questo è presente in tutte le operazioni di sistema, mentre CAP è soltanto rilevante nei rari casi di tolleranza di partizione."

Classifica dei database rispetto a PACELC[modifica | modifica wikitesto]

La classifica dei database rispetto a PACELC è ripreso da [4]

  • Le versioni predefinite di Dynamo, Cassandra e Riak sono sistemi PA/EL: se occorre una partizione, essi rinunciano alla consistenza per la disponibilità e sotto operazioni normali essi rinunciano alla consistenza per bassa latenza.
  • Sistemi rispettanti completamente ACID come VoltDB/H-Store e Megastore sono PC/EC: rifiutano di rinunciare alla consistenza e, per raggiungerla, pagano in disponibilità e costi di latenza. Anche BigTable e sistemi congiunti come HBase sono PC/EC.
  • MongoDB può essere classificato come un sistema PC/EC: nel caso base il sistema garantisce la consistenza di letture e scritture.
  • PNUTS è un sistema PC/EL.
DDBS P+A P+C E+L E+C
Dynamo [5]
Cassandra [5]
Riak [5]
VoltDB/H-Store
Megastore
MongoDB
PNUTS

Note[modifica | modifica wikitesto]

Voci correlate[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]