-
-
Notifications
You must be signed in to change notification settings - Fork 29
Description
We could refine scheduling for following scenario.
When we have a requested task with significant resources (CPU/disk/mem) required, it might happen this task is never scheduled because it would require a worker without any other running task to have sufficient capacity.
When the pipe is "full", all workers are processing at their full capacity. When a given task end, some resources are freed but not enough for the requested task with high capacity requirements. This task is currently discarded for scheduling and another task fitting the worker free capacity is started.
This means that this task never gets scheduled until pipe is empty.
Which might never happen when pipe is significant and the task might stay waiting forever to get scheduled.
Even if the pipe is not full "forever", this situation also means that should the task with high resources requirements also be required with high priority, the task will not be scheduled until mostly all other tasks are scheduled ... meaning it is not really handled as a high priority.
We should probably revise the scheduling algorithm to take this situation into account. It is however probably a hard problem to handle.