[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-107?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12719823#action_12719823
 ] 

Benjamin Reed commented on ZOOKEEPER-107:
-----------------------------------------

Raghu, i think henry is correct that you must get an ack from quorums in both 
the old and new views before committing the change. otherwise you get split 
brain which could result in multiple leaders. henry, i think we are thinking 
along the same lines, but i'm a bit skeptical of JOIN and LEAVE. in some sense 
they are a bit of an optimization that can be implemented with GETVIEW and 
NEWVIEW. it would be nice to make the mechanism as simple as possible. it also 
seems like you would also require a GETVIEW to be done before doing a NEWVIEW, 
just for sanity. (require an expected version on NEWVIEW and not allow a -1.) i 
was thinking that we would just push NEWVIEW through Zab making sure we get 
acks from quorums in both the old and new views.

to help mitigate the case where proposing the NEWVIEW leads to a case where the 
system freezes up when the NEWVIEW proposal goes out and there isn't a quorum 
in the new view, the leader should probably make sure that it currently has 
quorum of followers in the new view before proposing the request. if it 
doesn't, it should error out the request. even with this we can still freeze up 
if we lose quorum in the new view after issuing the proposal, but that would 
happen anyway (as you point out), but it would prevent us from doing something 
that has no chance of working.

> 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