Hi, I am working on a modified version of ZooKeeper, and I am having some trouble understanding how session expiration is implemented.
It appears that once a create session requested is submitted it is forwarded as a proposal to all followers. This means that the session will be tracked by the SessionTracker at each member of the ensemble (registration is done in FinalRequestProcessor), but as far as I can tell the pings that would touch the session are only received by the node where the session is currently active, and the leader which polls the pings from all followers. If that were true it seems like they would promptly time out at all other nodes, and they would race to submit a request to close the session. Am I wrong about session information being tracked at all members of the ensemble or am I wrong about the pings propagating only to the leader and the directly connected node? Possibly something else? Thanks, Ariel Weisberg
