Raghu S commented on ZOOKEEPER-107:

Henry, et al. thanks for the feedback on my proposal.

To explain a bit more on the proposal -- I felt that keeping the data and 
configuration separate, like it is today, would keep the implementation simple 
and non intrusive for core ZK code while ensuring correctness. The issue I see 
with storing config in a znode is that the joiner needs to participate in 
NEWVIEW ZAB message even when it is not part of the cluster and it needs to 
have the latest log before it can commit the NEWVIEW  proposal since it 
requires writing to the log. At the same time, the leader has to make sure that 
it blocks all proposals in between syncing the joiner and executing NEWVIEW. I 
felt this could be too intrusive (may be I shouldn't have worried about this 
while thinking about a higher level proposal?).  Let me know if my 
understanding is incorrect.

I don't think my proposal would result in a split brain. I believe there is no 
need for two phase during changing cluster configuration as long each attempt 
to modify the configuration generates a new version number and the cluster 
configuration divergence is reconciled during leader election (peers go with 
the configuration with the highest version number). Having a two phase is no 
better, since there is no guarantee that all/majority peers have committed the 
new configuration and there could be diverged view of cluster configuration 
during election. Let me know if I am missing something.

I do believe Henry's proposal would work. I don't have a strong preference for 
how we would like to do this, as long as we get it right.

> 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