zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benjamin Reed (JIRA)" <j...@apache.org>
Subject [jira] Commented: (ZOOKEEPER-107) Allow dynamic changes to server cluster membership
Date Wed, 06 May 2009 07:10:30 GMT

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

Benjamin Reed commented on ZOOKEEPER-107:

the information needed for bootstrapping is the same as the information needed for a normal
zookeeper client, so it could either use the standard string that is a list of host:port pairs,
or it could use the scheme proposed in ZOOKEEPER-390. with that URL it could fetch /.zookeeper/ensemble
and grab the configuration information that it needs. conf/zoo.cfg isn't really a good URI
for this purpose since is doesn't really have the needed client ports. plus there is information
in zoo.cfg that is particular to a given server. for example, the data and log directories
may be different on all the machines. the client port should also probably stay in the zoo.cfg.
the server lists and probably the timing variables should probably be stored in a znode and
maintained with the atomic broadcast.

recovery is a bit more than you mention, but at the same time simpler. first off, to change
quorum configuration you must commit the change in both the old quorum configuration and in
the new quorum configuration. for example, if you have the configuration A, B, C and you are
changing to A, B, C, D, E you must be able to get quorum in both the old and new configuration
for the change to work. if only A and B are up or A, D, and E are up you cannot commit the
change. this means that the leader should check the new configuration carefully before proposing
it, because we always roll the proposals forward, we never rollback.

so really a zookeeper server doesn't know whether he is able to participate or not, the election
will sort it out. a simple example is an ensemble A, B, C, D, E. E goes down. the last zxid
it saw was <57,3>. while it is down the quorum configuration gets changed to A, B, C
by <57,52>. lets say there is a leadership change and at <58,6> the power goes
out and comes back on. E now tries to vote (it thinks it is permitted to participate), but
it won't win any election since its zxid is too low. A, B, and C will ignore E's votes anyway
because they know that E has been removed from the ensemble.

> 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
> 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.

View raw message