Hi Ben, I'm not familiar with the C# implementation, but I suspect that:
- The session id is indeed to be able to identify the znode in the case the client sees a connection loss event and reexecutes the create; - The sequence number creates an order among the bidders so that when a master crashes (ephemeral znode goes away), not all clients are notified. This solves the herd effect problem: many nodes being notified upon a single znode going away. -Flavio On Nov 26, 2013, at 9:57 AM, <[email protected]> wrote: > Hi, > > I was looking at the leader election algorithm in the .NET client at > https://github.com/ewhauser/zookeeper/blob/trunk/src/dotnet/ZooKeeperNet.Recipes/LeaderElection.cs > > There is a point I don't understand and I was wondering if someone could > clarify for me. The recipe creates ephemeral nodes of the form > "election-<sessionid>-<sequentialid>", I think to be able to see if it has > already created the node (perhaps due to a retry?). However, doesn't having > the session id in the node name then throw out the sorting of the nodes in > the next step, to find the previous node to watch? I'd have thought it would > then be sorting by session id and not sequential id? Perhaps that doesn't > matter as long as only one node gets picked? > > Thanks, > Ben > > Ben Young . Senior Software Engineer . Adaptiv . Position, Risk & Operations > . SunGard . Enterprise House, Histon, Cambridge, CB24 9ZR . Tel +44 (0) 1223 > 266042 . [email protected] . www.sungard.com > > > > >
