PACELC theorem


In theoretical computer science, the PACELC theorem is an extension to the CAP theorem. It states that in case of network partitioning in a distributed computer system, one has to choose between availability and consistency , but else, even when the system is running normally in the absence of partitions, one has to choose between latency and consistency.

Overview

PACELC builds on the CAP theorem. Both theorems describe how distributed databases have limitations and tradeoffs regarding consistency, availability, and partition tolerance. PACELC however goes further and states that another trade-off also exists: this time between latency and consistency, even in absence of partitions, thus providing a more complete portrayal of the potential consistency tradeoffs for distributed systems.
A high availability requirement implies that the system must replicate data. As soon as a distributed system replicates data, a tradeoff between consistency and latency arises.
The PACELC theorem was first described by Daniel J. Abadi from Yale University in 2010 in a blog post, which he later formalized in a paper in 2012. The purpose of PACELC is to address his thesis that "Ignoring the consistency/latency tradeoff of replicated systems is a major oversight , as it is present at all times during system operation, whereas CAP is only relevant in the arguably rare case of a network partition."

Database PACELC ratings

Database PACELC ratings are from
DDBSP+AP+CE+LE+C
DynamoDB
Cassandra
Cosmos DB
Couchbase
Riak
VoltDB/H-Store
Megastore
BigTable/HBase
MySQL Cluster
MongoDB
PNUTS
Hazelcast IMDG
FaunaDB