[ https://issues.apache.org/jira/browse/ZOOKEEPER-876?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Flavio Junqueira updated ZOOKEEPER-876: --------------------------------------- Status: Open (was: Patch Available) This is a nice catch, Diogo, and the patch looks good to me. I have a few very quick comments: # Instead of returning a pair of longs in startForwarding, we could simply return maxZxid and read lastProposed directly from the leader object. Doesn't it work? # The first comment of startForwarding is not saying much. Could you please expand it? # Could you please explain in the beginning of the test case what it is supposed to be testing? It is for later remembering what the test does. Good job! > Unnecessary snapshot transfers between new leader and followers > --------------------------------------------------------------- > > Key: ZOOKEEPER-876 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-876 > Project: Zookeeper > Issue Type: Bug > Affects Versions: 3.3.1 > Reporter: Diogo > Assignee: Diogo > Priority: Minor > Fix For: 3.4.0 > > Attachments: ZOOKEEPER-876.patch > > > When starting a new leadership, unnecessary snapshot transfers happen between > new leader and followers. This is so because of multiple small bugs. > 1) the comparison of zxids is done based on a new proposal, instead of the > last logged zxid. (LearnerFollower.java:310) > 2) if follower is one zxid behind, the check of the interval of committed > logs excludes the follower. (LearnerFollower.java:269) > 3) the bug reported in ZOOKEEPER-874 (commitLogs are empty after recover). -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.