> I believe that my solution isolates manual change to two ZK nodes in DC2, 
> while your requires config change to 1 in DC2 and manual start/stop of 1 in 
> DC1.

Answering my own statement here. Turns out that in order to flip the observer 
bit for one ZK node, you need to touch the config of all the others, quote from 
https://zookeeper.apache.org/doc/trunk/zookeeperObservers.html 
<https://zookeeper.apache.org/doc/trunk/zookeeperObservers.html>: "Secondly, in 
every server config file, you must add :observer to the server definition line 
of each Observer”. 

So basically you would do some sed magic or keep two versions of configs around 
and switch between them to toggle. Wonder what happens once you have modified 
the config of one ZK but not the rest, will they be confused and start printing 
warnings to the logs? Is it safe to to the observer flip as a rolling update or 
should you take down the whole ZK ensemble for it?

And if you lose DC1, then modify the remaining ZKs in DC2 to form its own 
quorum, then when the DC1 ZKs come up again their config is not aware that some 
nodes in DC2 have changed from observer to follower - is there a risk that DC1 
starts operating alone once it comes up again, or will it try repeatedly to 
contact the Zk nodes in DC2 and then discover that they disagree about the 
voting authority of some nodes or what?

--
Jan Høydahl, search solution architect
Cominvent AS - www.cominvent.com

Reply via email to