|
Currently, running sh.startBalancer() seems to only call sh.setBalancerState(true) once at the beginning, then waits for the balancer lock to change (by default 30 sec).
This is problematic for scripted backup procedures along these steps
- stop balancer
- stop a config server
- back up ...
- start the config server
- start balancer
If there are no hard-coded timeouts between 4. and 5. the config server may miss the call to sh.setBalancerState(true) (or reject it, if not all 3 are running yet) and then wait in the loop until timed out.
Instead, it would be better if sh.startBalancer() kept pushing the settings while in the wait loop. If the config server comes up in the mean time, it would receive the next state change and the balancer would start.
|