2 ms·
What are the reasons this isn't just a json-serving front-end to Redis? Is it largely because Redis clustering isn't baked yet?
by kbd 13y ago
What are the reasons this isn't just a json-serving front-end to Redis? Is it largely because Redis clustering isn't baked yet?
- hendzen 13y agoBecause a configuration service has to maintain consensus [0] in the face of arbitrary network partitions. Unfortunately, Redis is unable to do so in a clustered configuration [1]. Attaining this level of fault tolerance in a distributed environment requires implementing a consensus algorithm, such as Paxos (more realistically, Multipaxos) [2], ZAB [3], or the recently published Raft [4]. As for etcd, it certainly looks promising, but I wouldn't advocate using over ZooKeeper until it has been significantly battle tested in a production environment. Consensus algorithms are notoriously difficult to implement, and when implementations fail, they often do so catastrophically. For example, Google engineers ran into many challenges while implementing Paxos [5] for Chubby [6], their distributed lock service (and the inspiration for ZooKeeper, and subsequently doozerd and etcd). While Raft was intentionally designed to be easier to implement than Paxos, relying on alpha or beta quality software for a configuration and distributed lock manager is probably a path to unpleasantness. [0] - https://en.wikipedia.org/wiki/Consensus_(computer_science) https://en.wikipedia.org/wiki/Consensus_(computer_science) [1] - http://aphyr.com/posts/283-call-me-maybe-redis http://aphyr.com/posts/283-call-me-maybe-redis [2] - http://research.microsoft.com/en-us/um/people/lamport/pubs/lamport-paxos.pdf http://research.microsoft.com/en-us/um/people/lamport/pubs/l... [3] - https://www.usenix.org/legacy/event/usenix10/tech/full_papers/Hunt.pdf https://www.usenix.org/legacy/event/usenix10/tech/full_paper... [4] - https://ramcloud.stanford.edu/wiki/download/attachments/11370504/raft.pdf https://ramcloud.stanford.edu/wiki/download/attachments/1137... [5] - http://www.cs.utexas.edu/users/lorenzo/corsi/cs380d/papers/paper2-1.pdf http://www.cs.utexas.edu/users/lorenzo/corsi/cs380d/papers/p... [6] - http://research.google.com/archive/chubby.html http://research.google.com/archive/chubby.html