The master in part b is only a master so long as it has a quorum of followers. It loses the quorum when the network partitions and so will no longer act as master from that moment. Additionally the master actions all require a consensus to proceed. So even if the master in section b doesn't know it is no longer the master no state changing actions will be able to get a quorum of votes to proceed, so there is no time in which it can improperly lead because it won't actually have the votes to make changes.
C C On Nov 26, 2013 12:08 PM, "ms209495" <[email protected]> wrote: > Hi, > > ZooKeeper is an excellent system but the problem with ensuring only one > master among clients bothers me. > > Lets have a look at the situation when network partition happen: there is > part A (majority), and part B (minority). > Lets assume that before network partition happened the master was connected > to part B. > After the network partition, part A will elect new ZooKeeper leader, and > there will be new master elected among clients connected to part A. > At this time there are two masters - old in part B, and new in part A. > The only solution I can think about to this problem, is to ensure that the > new master is inactive for some time - to ensure that the old master in > this > time will detect that it is not connected to ZooKeeper quorum, and will > deactivate itself as a master. > This solution assumes that timers on these machines work correctly. > Is it possible to ensure only one master using ZooKeeper without timing > assumptions ? > > Thanks, > Maciej > > > > -- > View this message in context: > http://zookeeper-user.578899.n2.nabble.com/Ensure-there-is-one-master-tp7579367.html > Sent from the zookeeper-user mailing list archive at Nabble.com. >
