Maxim Khutornenko created AURORA-1156:
-----------------------------------------

             Summary: Preemptor perf improvements
                 Key: AURORA-1156
                 URL: https://issues.apache.org/jira/browse/AURORA-1156
             Project: Aurora
          Issue Type: Task
          Components: Scheduler
            Reporter: Maxim Khutornenko


There are two minor algorithm changes that should result in overall preemptor 
perf improvements:

1. There seems to be a redundant scheduling attempt here: \[1\]. The preemptor 
loop is triggered within the same storage write lock right after a failed 
{{OfferManager.launchFirst()}} run that has already attempted to match all 
available offers. There is no reason to attempt another match given the same 
system conditions, especially considering that a positive scheduling result 
from this loop is discarded anyway \[2\].

2. Instead of running an expensive scheduling loop \[3\] for every task victim, 
it's possible to "size up" victim resources and call scheduling filter only 
when rough resource estimates are sufficient. Something like:
{noformat}
if (totalResource.greaterOrEqualThan(ResourceSlot.from(pendingTask))) {
  // call schedulingFilter
}
{noformat}


\[1\] - 
https://github.com/apache/incubator-aurora/blob/master/src/main/java/org/apache/aurora/scheduler/async/preemptor/PreemptorImpl.java#L220-L237
\[2\] - 
https://github.com/apache/incubator-aurora/blob/master/src/main/java/org/apache/aurora/scheduler/async/preemptor/PreemptorImpl.java#L338
\[3\] - 
https://github.com/apache/incubator-aurora/blob/master/src/main/java/org/apache/aurora/scheduler/async/preemptor/PreemptorImpl.java#L263-L265



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to