Benjamin Reed commented on ZOOKEEPER-107:

oh right. you are correct. i guess it is more of a liveness/correctness issue:

1) start with A, B, C, D
2) B is down and A is the leader and proposes LEAVE C and fails where only D 
gets it.
3) C and D cannot get quorum since C has an older view.
4) D fails
5) A and B come back up and B is elected leader.
6) B proposes LEAVE A and C gets it before B fails.

Now what happens? we cannot get quorum with just A and C since A has the old 
view. even if D comes up it will not elect C because it does not believe C is 
part of the ensemble. if they all come up either C or D can be elected leader, 
but if C is elected you end up with conflicting views: A thinks (B, C, D), B 
thinks (B, C, D), C thinks (B, C, D), and D thinks (A, B, D), so both A and D 
will effectively be out of the ensemble and you can't tolerate any failures.

> Allow dynamic changes to server cluster membership
> --------------------------------------------------
>                 Key: ZOOKEEPER-107
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-107
>             Project: Zookeeper
>          Issue Type: Improvement
>          Components: server
>            Reporter: Patrick Hunt
>         Attachments: SimpleAddition.rtf
> Currently cluster membership is statically defined, adding/removing hosts 
> to/from the server cluster dynamically needs to be supported.

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