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





Reply via email to