The Curator framework provides an implementation of leader election. I think that it will do what you need it to do without having to write any code yourself.
http://curator.apache.org/curator-recipes/leader-latch.html On Thu, Nov 7, 2013 at 4:38 PM, Arindam Mukherjee < [email protected]> wrote: > Using ZooKeeper I want to create a cluster of hosts where a client process > on one of the hosts can play the role of a leader or controller and > coordinate tasks with processes across the rest of the hosts. As the nodes > are hosts similar, the choice of a leader can be arbitrary. I was thinking > of using ZooKeeper for this purpose. > > I am very new to ZooKeeper and don't know enough of the available > primitives. What would be a good way to achieve this? > > Here is one thought - please let me know if this makes sense or something > else which would work better: > 1. Each ZoooKeeper client gets a monotonically increasing ID when it > establishes a session with ZooKeeper server. One way could be to create an > ephemeral sequential znode and use the assigned numeric suffix as the id - > store other data in this znode. > 2. Whichever client gets the lowest id becomes the leader. However, for > this to work the entire range of ids assigned to live clients at any point > in time should be available to all the clients so that each client can > independently arrive at the same decision. How to do this? > > Thanks. > Arindam >
