3 ms·
To expand on other answers HA = "Always available". Answers may be stale, but you'll always get an answers. CP = "Always consistent". You may not always get a
by staticassertion 6y ago
To expand on other answers
HA = "Always available". Answers may be stale, but you'll always get an answers.
CP = "Always consistent". You may not always get an answer, but if you do, it's consistent.
You can't have both in a distributed system, because distributed systems are on networks, networks are imperfect, and therefor you get "partitions' (a silly term for failures). The question is, given one of these failures, do you block and wait for all nodes to agree on what's "right", or do you just respond with the best information you have available.
CRDTs play an interesting role here. http://swarmdb.net/articles/acid2/ http://swarmdb.net/articles/acid2/
- hinkley 6y agoPartitions are a particular sort of failure where everyone thinks the problem is on the other end. If I crash, I’m out. I can’t interfere with anything or anybody for long. If others think I crashed but I’m still running, I can become some sort of ghost haunting the system. Paranormal activity in an environment built entirely on logic is chaos. A system built for partitions has to consider the problem where I’m talking but nobody can hear me, what do I do to sort it out, and what can I productively do until then, like queue up small purchases until my connection to Visa is available again.