Hi, ZooKeeper is an excellent system. 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
