if you are running with multiple servers, it is the leader that declares sessions dead, so the leader will call killSession(). the followers track the liveness of the clients with pings and will periodically send liveness summaries to the leader.
see camille's email the specific classes to look at. ben On Sat, Jul 16, 2011 at 1:44 AM, Yang <[email protected]> wrote: > I'm wondering if a client loses session to its ephemeral znode, under > the hood, how > is the watcher triggered? > > went through the code , and found something that looks related: > ZKDataBase.killSession()-->DataTree.killSession()--->DataTree.deleteNode()--->WatchManager.triggerWatch()--->Watcher.process() > > but how is ZKDataBase.killSession() called? from the info given in > http://zookeeper.apache.org/doc/r3.3.3/zookeeperProgrammers.html#ch_zkSessions > I can see the ZooKeeper client code does periodically ping the server > to maintain liveness. but how the server checks for this liveness and > trigger killSession(), here I'm having difficulty connecting the dots. > > could you please give me some help walking through this piece of code? > > Thanks > Yang >
