3 ms·
I found two great explanations of cap theorem on youtube. https://www.youtube.com/watch?v=gLtO0vY_M78 https://www.youtube.com/watch?v=gLtO0vY_M78 https://www.
by smnplk 10y ago
I found two great explanations of cap theorem on youtube.
https://www.youtube.com/watch?v=gLtO0vY_M78 https://www.youtube.com/watch?v=gLtO0vY_M78
https://www.youtube.com/watch?v=Jw1iFr4v58M https://www.youtube.com/watch?v=Jw1iFr4v58M
And now I hope my understanding is correct:
The way I see it, the most important thing to understand first is what the word partition means in the context of distributed systems. If the system is partitioned (being in partitioned state), that just means that some nodes can not talk to each other. There is an outage of some sort and when building distributed systems, you always have to expect that, so the P (partition-tolerant) from CAP is always there, you always have to choose it. After that, you just have to decide if you will be more C (consistent) or more A (available). If you pick C, then this means some nodes will have to wait until the system is back in connected state to get the latest state, but if you pick A, then you always get the answer, the last one the node had before it got disconnected.
- simonask 10y agoThat's correct. I also believe you could in theory forgo partition tolerance, it just wouldn't be a very useful system. Maybe there are use cases out there for it.
- smnplk 10y agoYeah, but I think the point of distributed systems is to be partition tolerant, the system that you are describing is probably not a distributed system by definition. Or is it, i don't know, I have a plan to read a book on DS this year. From wiki, it looks like there are 3 main pillars to DS [1]: - concurrency of components - lack of global clock - independent failure of components So you need the failure tolerance part. [1] https://en.wikipedia.org/wiki/Distributed_computing https://en.wikipedia.org/wiki/Distributed_computing