PACELC Theorem: an ELC extension of CAP
We discussed CAP theorem in our previous article here. Now let’s discuss an extension of the CAP theorem — PACELC theorem. The first three letters of PAC are the same in CAP — Consistency, Availability, and Partition Tolerance. The rest — ELC stands for Else[E], even if the system runs usually, choose between Latency[L] and Consistency[C] of a replicated system. The theorem looks like we maintained high availability by replication.
The question here is why we need PACELC since the CAP theorem works a charm even when there are network partitions. But PACELC is an answer when we raise a question on CAP theorem — “What will happen to a distributed system if there are no network partitions?”.
There are the following things that the PACELC theorem states about a system that replicates data.
1. If statement
When there is a partition in a distributed system, the tradeoff between availability and consistency is done.
2. Else statement
When there is no partition and the system is running normally in a distributed system, the tradeoff between latency and consistency is done.
The examples to choose consistency and giving up availability alongside lower latency [PA/EC] are BigTable and HBase. MongoDB is also one of the examples of PA/EC since it goes for availability when there is a partition but chooses a partition in all the other cases. Likewise, to choose availability over consistency after the partition [PA/EL] are Dynamo and Cassandra. Else, they get on with lower latency.
Advantages of PACELC over CAP Theorem
- Unlike the CAP theorem, PACELC considers latency and consistency as a tradeoff.
- We can effectively use it to choose and design distribution systems.
- It can get over the major downfalls of the CAP theorem.
I hope this article was helpful to you.
Please don’t forget to applaud this article and follow me!!!
Any kind of feedback or comment is welcome!!!
You can also subscribe to my stories via email so that you’ll get notified whenever I bring out an article on a new subject.
Thank you for your time and support!!!!
Keep Reading!! Keep Learning!!!