[ https://issues.apache.org/jira/browse/ZOOKEEPER-1355?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13240118#comment-13240118 ]
Marshall McMullen commented on ZOOKEEPER-1355: ---------------------------------------------- Alex, looks like only one unit test failure -- on the Java unit test side. So it can't be related to the C changes I made. Can you take a look when you get time? Also, no one has reviewed my proposed C changes so would be good to start getting some eyes on it. Note I added a new addrvec (address vector) data structure to make it easier to manage and manipulate the 3 different list of addresses (current, joining, leaving). > Add zk.updateServerList(newServerList) > --------------------------------------- > > Key: ZOOKEEPER-1355 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1355 > Project: ZooKeeper > Issue Type: New Feature > Components: java client > Reporter: Alexander Shraer > Assignee: Alexander Shraer > Fix For: 3.5.0 > > Attachments: ZOOKEEPER-1355-ver10-1.patch, > ZOOKEEPER-1355-ver10-2.patch, ZOOKEEPER-1355-ver10-3.patch, > ZOOKEEPER-1355-ver10-4.patch, ZOOKEEPER-1355-ver10-4.patch, > ZOOKEEPER-1355-ver10.patch, ZOOKEEPER-1355-ver11.patch, > ZOOKEEPER-1355-ver2.patch, ZOOKEEPER-1355-ver4.patch, > ZOOKEEPER-1355-ver5.patch, ZOOKEEPER-1355-ver6.patch, > ZOOKEEPER-1355-ver7.patch, ZOOKEEPER-1355-ver8.patch, > ZOOKEEPER-1355-ver9-1.patch, ZOOKEEPER-1355-ver9.patch, > ZOOKEEPER=1355-ver3.patch, ZOOOKEEPER-1355-test.patch, > ZOOOKEEPER-1355-ver1.patch, ZOOOKEEPER-1355.patch, > loadbalancing-more-details.pdf, loadbalancing.pdf > > > When the set of servers changes, we would like to update the server list > stored by clients without restarting the clients. > Moreover, assuming that the number of clients per server is the same (in > expectation) in the old configuration (as guaranteed by the current list > shuffling for example), we would like to re-balance client connections across > the new set of servers in a way that a) the number of clients per server is > the same for all servers (in expectation) and b) there is no > excessive/unnecessary client migration. > It is simple to achieve (a) without (b) - just re-shuffle the new list of > servers at every client. But this would create unnecessary migration, which > we'd like to avoid. > We propose a simple probabilistic migration scheme that achieves (a) and (b) > - each client locally decides whether and where to migrate when the list of > servers changes. The attached document describes the scheme and shows an > evaluation of it in Zookeeper. We also implemented re-balancing through a > consistent-hashing scheme and show a comparison. We derived the probabilistic > migration rules from a simple formula that we can also provide, if someone's > interested in the proof. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira