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.

Reply via email to