-Re: zookeeper leadership election example application
Ted Dunning 2011-11-26, 19:41
I have embedded similar code into a number of programs, but I haven't
You could take a look at hbase. I think it uses the single file technique.
On Sat, Nov 26, 2011 at 2:33 AM, Jérémie BORDIER
> Hello Ted,
> Can you point to a good implementation of that single file leadership
> election method you're describing ?
> On Sat, Nov 26, 2011 at 8:37 AM, Ted Dunning <[EMAIL PROTECTED]>
> > I think that the code also needs:
> > * comments. You need to put some java docs in that say what the
> > classes and methods are intended to do. External documentation is nice,
> > but hardly sufficient.
> > * global handling of disconnection and pausing of masters during a
> > disconnect.
> > * a description of how you think you are handling error conditions
> > * tests that demonstrate that you handle error conditions
> > I would also take issue with Jordan's suggestion for retry logic. With
> > ephemeral sequential node, retries are very dangerous in certain corner
> > failure modes. This is the primary reason that I prefer the single file
> > leader election method. With a reasonable number of masters (the most
> > common case) this is completely sufficient since the herd effect isn't a
> > problem for such a small herd.
> > On Fri, Nov 25, 2011 at 10:17 PM, Jordan Zimmerman
> > <[EMAIL PROTECTED]>wrote:
> >> A few comments:
> >> * NodeMonitor.createRootIfNotExists() should catch NodeExists. In the
> >> of multiple clients, this is a possibility.
> >> * I'd add a start method and create the ZooKeeper instance there. This
> >> gives users a chance to set a listener so as to receive all messages.
> >> * All ZooKeeper operations should be in some kind of retry loop. The
> >> client can lose connection to a given server but successfully reconnect
> >> another one in the cluster.
> >> * When creating the Znode, it can succeed on the server but fail to
> >> the result to the client. On a Disconnect/Session exception, you should
> >> retry and then call getChildren and search for your node.
> >> -JZ
> >> On 11/25/11 2:45 AM, "Olivier Van Acker" <[EMAIL PROTECTED]> wrote:
> >> >I've written a example app on how to do implement leadership election
> >> >with zookeeper
> >> >Is there anyone on the list who'd like to review my app and if it needs
> >> >improvement or not?
> >> >
> >> >the app is on github:
> >> >https://github.com/cyberroadie/zookeeper-leader
> >> >
> >> >and explained how it works on my blog:
> >> >
> >> >ith-zookeeper/
> >> >
> >> >Olivier
> Jérémie 'ahFeel' BORDIER