...
Since we have a couple of asynchronous operations (resource timeout in Waiting for resources state, restart delay in restarting) which only work if there hasn’t happened another state change, we need to introduce a state version which can be used to filter out outdated operations.
Automatic scaling
In order to support automatic scaling, we start whenever we enter the Executing state, a ScalingPolicy
which checks periodically or whenever new slots arrive whether the system can scale up. If this is the case, then it transitions into the Restarting
state which triggers a global failover and a restart which will make use of the available resources.
Components of the scheduler
...