aurora-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stephan Erb <s...@apache.org>
Subject Re: Review Request 55357: AURORA-1867 Consider reserving for multiple tasks per preemption round
Date Tue, 10 Jan 2017 21:24:32 GMT

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/55357/#review161119
-----------------------------------------------------------



@ReviewBot retry

- Stephan Erb


On Jan. 9, 2017, 10:40 p.m., Mehrdad Nurolahzade wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/55357/
> -----------------------------------------------------------
> 
> (Updated Jan. 9, 2017, 10:40 p.m.)
> 
> 
> Review request for Aurora, David McLaughlin, Joshua Cohen, Stephan Erb, and Zameer Manji.
> 
> 
> Bugs: AURORA-1867
>     https://issues.apache.org/jira/browse/AURORA-1867
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> To be fair, PendingTaskProcessor interleaves tasks from different groups. However, this
fairness comes at the price of increasing reservation time. Even if reservations are being
made for the same task group, the processor would still restart iterating through slaves for
each task instance. This results in reevaluating all slaves already rejected in a previous
search before it finds a new viable candidate.
> 
> This patch improves `PendingTaskProcessor` performance by reducing slave search/evaluation
time, at the cost of reduced fairness. `PendingTaskProcessor` now does reservation for a configurable
maximum of _N_ candidates per task group in each iteration over the list of slaves.
> 
> 
> Diffs
> -----
> 
>   src/jmh/java/org/apache/aurora/benchmark/SchedulingBenchmarks.java fa37236e68657b539b182519b9d46d96d5b0953a

>   src/main/java/org/apache/aurora/scheduler/preemptor/PendingTaskProcessor.java f59f3fd8959b1ba3726b55a2943fb9228a049ac5

>   src/main/java/org/apache/aurora/scheduler/preemptor/PreemptorMetrics.java 67822cafbe89f4798b4ea6da3856663cc4872798

>   src/main/java/org/apache/aurora/scheduler/preemptor/PreemptorModule.java 23d1c120657d5cb9d294a80c63e8a04512d361ca

>   src/test/java/org/apache/aurora/scheduler/preemptor/PendingTaskProcessorTest.java d11ae5883f2a00dca4c4b36f0ab58ea95c7ecb2e

>   src/test/java/org/apache/aurora/scheduler/preemptor/PreemptorModuleTest.java 67b6d69e3ddd1028dfe9ff451b171cd888674920

> 
> Diff: https://reviews.apache.org/r/55357/diff/
> 
> 
> Testing
> -------
> 
> As is, the cluster setup in our existing preemption benchmark does not reflect the improvements
resulting from this patch. Currently, all existing victims can be preempted, therefore all
`PendingTaskProcessor` has to is look at the next slave.
> 
> ```
> BEFORE
> Benchmark                                                       (numPendingTasks)   Mode
 Cnt   Score   Error  Units
> SchedulingBenchmarks.PreemptorSlotSearchBenchmark.runBenchmark                  1  thrpt
  10  75.386 ± 2.984  ops/s
> SchedulingBenchmarks.PreemptorSlotSearchBenchmark.runBenchmark                 10  thrpt
  10  74.584 ± 2.598  ops/s
> SchedulingBenchmarks.PreemptorSlotSearchBenchmark.runBenchmark                100  thrpt
  10  79.731 ± 2.182  ops/s
> SchedulingBenchmarks.PreemptorSlotSearchBenchmark.runBenchmark               1000  thrpt
  10  66.386 ± 1.833  ops/s
> 
> AFTER
> Benchmark                                                       (numPendingTasks)   Mode
 Cnt   Score   Error  Units
> SchedulingBenchmarks.PreemptorSlotSearchBenchmark.runBenchmark                  1  thrpt
  10  78.266 ± 3.290  ops/s
> SchedulingBenchmarks.PreemptorSlotSearchBenchmark.runBenchmark                 10  thrpt
  10  76.743 ± 2.073  ops/s
> SchedulingBenchmarks.PreemptorSlotSearchBenchmark.runBenchmark                100  thrpt
  10  75.343 ± 1.943  ops/s
> SchedulingBenchmarks.PreemptorSlotSearchBenchmark.runBenchmark               1000  thrpt
  10  68.284 ± 2.413  ops/s
> ```
> 
> I need to further imprpve the cluster setup for this benchmark to reflect the improvements
in the patch. A more representative cluster setup would be one in which only a subset of potential
victims pass `PreemptionVictimFilter.filterPreemptionVictims()` test.
> 
> 
> Thanks,
> 
> Mehrdad Nurolahzade
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message