Vanlightly commented on pull request #1690: URL: https://github.com/apache/zookeeper/pull/1690#issuecomment-844375695
From my perspective: 1. Implement the minimum required, in order to keep thing simpler and reduce the state space. If the only point of the PING message is to act as a keep alive when there is no data to replicate then don't include it. Do not implement timeouts explicitly, rather just allow for a node to go back to an election at any time. 2. SNAP and DIFF exist as they optimize performance for the given scenario. For the TLA+ we don't worry about that. I would implement DIFF or SNAP but not both. SNAP would result in a smaller state space as it is only a single message. TRUNC as far as I know is when a follower is ahead of the new leader (with uncommitted entries) so would be required. Regarding 3 and 4, unfortunately the Zab 1.0 document is lacking details so someone with deep knowledge of the protocol will need explain this missing pieces. If I have time I might read the code to reverse engineer it back into detailed a protocol description. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected]
