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

Alexander Shraer commented on ZOOKEEPER-107:
--------------------------------------------

in the patch, configuration file was split to 2 parts - attached are sample 
files zoo_replicated1.members and zoo_replicated1.cfg.

the cfg file points to the members file, and the members file has all 
information about membership and ports. You must specify all client ports in 
that file - this info is separated by ";" from the usual server info (client 
ports were made part of the configuration info so that when clients find out 
about new configurations they know how to connect to the servers). The cfg file 
can still include client ports (or hostname and port, but if given they must be 
the same as in the members file.

There are 2 new commands - "config" that gets the new configuration and 
"reconfig" that changes the configuration. config has just one option "-c" 
which returns just the version of the configuration and connection string 
interesting to clients. reconfig has many options and you can change all ports 
and server roles in the members file. For example in the ZK shell:

> reconfig -remove 1 -add 5=localhost:1234:1235:observer;1236
> reconfig -file new.members
> reconfig -remove 3 -from 123456   (reconfigure only if the current config is 
> 123456)

By doing "-add " and giving different ports/role to a server that is already in 
the cluster, you'll change its ports/role. 

Clients can subscribe to membership changes (membership is stored in a special 
znode, ZooDefs.CONFIG_NODE), and update the Zookeeper handle by executing 
"zk.updateServerList(hostList);" See src/java/systest/ReconfigClient.java or 
GenerateLoad.java for an example.

I intend to update the algorithm to get better load balancing when new servers 
are added to the system (current method spreads load well only when a servers 
are removed).

Alex
 

> 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
>            Assignee: Henry Robinson
>         Attachments: SimpleAddition.rtf, zoo_replicated1.cfg, 
> zoo_replicated1.members, zookeeper-3.4.0.jar, zookeeper-reconfig-sep11.patch
>
>
> 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.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to