5 ms·
There's a small misconception in the article: the overhead of zookeeper is not the reason why you tend to have small zookeeper clusters (3, 5, or 7 are recommen
by necubi 13y ago
There's a small misconception in the article: the overhead of zookeeper is not the reason why you tend to have small zookeeper clusters (3, 5, or 7 are recommended). The issue is that zookeeper requires consensus, so a write generally needs a response from a majority of nodes before it can finish. The more nodes you have, the longer it will take to reach consensus. There's also limited benefit in terms of HA of running more than 7 nodes.
The main issue is that you can overload it with reads (writes are always going to be slow in such a system). To deal with this, ZK is adding read slaves which do not participate in Paxos.
- justinsb 13y agoI didn't mean to imply that, and you're absolutely right. The point I was trying to make is that, if you're just doing leader election for a single service (so you essentially have one key, probably 1KB of state), then spawning up even 3 JVMs is difficult to justify. That's Go's sweet spot for me - small daemons that you would otherwise be tempted to write in C. I am excited by the new code in Zookeeper trunk which allows dynamic cluster reconfiguration; along with observers then you can have one zookeeper instance per machine if you want to, and the cluster can self-heal. But you still wouldn't want to do that unless you were actually sharing a non-trivial amount of data :-)
- pjmlp 13y ago> spawning up even 3 JVMs is difficult to justify Well, you could compile to native code instead.
- justinsb 13y agoAre you talking about RoboVM?
- pjmlp 13y agoThere are a few native compilers for Java, RoboVM is just one of them.
- justinsb 13y agoWhich would you recommend trying out?
- pjmlp 13y agoFrom what I have heard, Excelsior is a good one, http://www.excelsior-usa.com/jet.html http://www.excelsior-usa.com/jet.html Additionally you have, - Avian (http://oss.readytalk.com/avian/ http://oss.readytalk.com/avian/) - Codename One (http://www.codenameone.com/ http://www.codenameone.com/), just for mobiles - Aonix (http://www.atego.com/products/aonix-perc/ http://www.atego.com/products/aonix-perc/) - WebSphere Real Time (http://www-03.ibm.com/software/products/us/en/real-time http://www-03.ibm.com/software/products/us/en/real-time) - Jikes RVM (http://jikesrvm.org/ http://jikesrvm.org/)
- philsnow 13y ago> To deal with this, ZK is adding read slaves which do not participate in Paxos. Are you referring to observers ? They've been in ZK since 3.3.*, if not before. edit: actually you mentioned they're _read_ slaves, whereas you can write to zookeeper observers (they just don't participate in elections, which is as you said)
- redbad 13y agoAlso, ZooKeeper doesn't implement Paxos.