PACELC Theorem
introduced in CS451.
This is an improved CAP Theorem.
Pacelc is a more complete description of the space of potential tradeoffs for distributed system:
- If there is a partition (P), how does the system trade off availability and consistency (A and C); else (E), when the system is running normally in the absence of partitions, how does the system trade off latency (L) and consistency (C)?
- A partition happens when a network is split into disconnected parts, and nodes in different parts cannot communicate with each other.
- In this scenario, a distributed system must decide how to behave when some nodes can’t reach others. Specifically, it must choose between:
- Consistency (C): Ensuring all responses reflect the same data, which might require waiting until the partition heals.
- Availability (A): Ensuring that every request gets a response, even if it might serve stale or inconsistent data.
When there is no partition (i.e., nodes are fully connected and can communicate with each other normally):
- Availability is guaranteed: Since all nodes can communicate, there’s no scenario where a request would go unanswered. All nodes can coordinate, and any request will be processed by at least one node.
- Consistency is easier to maintain: Without partitions, all nodes can synchronize state with minimal delay, ensuring that responses are up-to-date.
Thus, in the absence of partitions, the tradeoff between availability (A) and consistency (C) doesn’t come into play.