theorem? - “It is impossible for a distributed data store to simultaneously provide more than two out of the following three guarantees” - Eric Brewer, University of California, Berkeley (2000) - Seth Gilbert and Nancy Lynch of MIT (2002) - the Basic theorem in DDBS(distributed database system)
tolerance - The system continues to operate despite an arbitrary number of messages being dropped (or delayed) by the network between nodes Node1 Node2 → Not P is Possible?
P) is impossible? - 100% guaranteed network (never fails) → Impossible - even ONE BIG single Node can fail → Power failure, Equipment failure, Software bugs… → actually it is not distributed system So, Partition is a Reality. We can’t have CA.
Availability) Always consistent in all nodes - Cost is very high : have to check all nodes in every request. - Risk grows rapidly when the number of nodes grows So, We don’t need Perfect CP.
Consistency) Always process request and response with OK. - Meaningless response : almost same with empty response - A unlucky client can't notice something is wrong So, We don’t want Perfect AP.
- CAP theorem is all about partition condition. - Partition is inevitable. But We are not always in partition condition So, We need another axis. → PACELC
PACELC - “... PACELC(pass-elk) however goes further and states that another trade-off also exists: this time between latency and consistency, even in absence of partitions ...” - Daniel J. Abadi from Yale University (2012)
is a good tool(frame) for decision making about distributed database system. - Configuration can move the position of DB in PACELC quadrant. - There can be many things that PACELC is missing (e.g. quantity of data, shape of data etc) - Your Business logic matters: Banking vs SNS
don’t need CP, you don’t want AP, and you can’t have CA - Siddhartha Reddy - https://speakerdeck.com/sids/cap-theorem-you-dont-need-cp-y ou-dont-want-ap-and-you-cant-have-ca - http://happinessoncode.com/2017/07/29/cap-theorem-and-pac elc-theorem/ - https://en.wikipedia.org/wiki/CAP_theorem - https://en.wikipedia.org/wiki/PACELC_theorem - http://cs-www.cs.yale.edu/homes/dna/papers/abadi-pacelc.pdf