Hi together,
I was scrolling through Preemptor.java and noticed that tasks might be
preempted unnecessarily.
If I am not mistaken, the code works as follows:
for slave in slaves:
while SchedulingFilter.filter is still yielding vetos:
add preemptable task of slave to list toPreemptTasks
if toPreemptTasks has some tasks:
preempt
return
SchedulingFilter is checking for available resources and constraints.
Unfortunately, it seems the preemptor cannot handle constraints: It may
drain an entire slave trying to make room for a new task. However, if
this task has a constraint which prevents it from being scheduled on
this slave at all, then the other tasks are preempted unnecessarily.
Is my analysis correct here?
Best Regards,
Stephan