Now we have only one way to change BLAT - manually update it via console.sh or API.
We need to add the possibility to change it automatically. Adjust to current topology.
So, I propose 3 new parameters which would be responsible to tune this feature.
1. Flag autoAdjustEnabled - true/false. Easy. Manual baseline control or auto adjusting baseline.
2. autoAdjustTimeout - time which we would wait after the actual topology change. But it would be reset if new discovery event happened. (node join/exit).
3. autoAdjustMaxTimeout - time which we would wait from the first dicovery event in the chain. If we achieved it than we would change BLAT right away (no matter were another node join/exit happened or not).
We need to change API next way:
IgniteConfiguration setBaselineAutoAdjustEnabled(boolean enabled);
IgniteConfiguration setBaselineAutoAdjustTimeout(long timeoutInMs);
IgniteConfiguration setBaselineAutoAdjustMaxTimeout(long timeoutInMs);
Also, we need to ensure that all nodes would have the same parameters.
And we should be able to survive coordinator left during parameters changes.
Proposed API format for control.sh:
--baseline autoadjust disable
--baseline autoadjust enable <timeout>