----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/32352/#review77609 -----------------------------------------------------------
src/main/java/org/apache/aurora/scheduler/async/TaskScheduler.java <https://reviews.apache.org/r/32352/#comment125743> Isn't this scenario transparent to the scheduler, though? If i understand you correctly, an available reservation means the slot has been freed and is now a reserved Offer, which the assigner function handles. However, another nice TODO would be to eventually remove the fallback to preemption here. Seems reasonable that this body of code only speaks in Offers, and the newly-established territory is responsible for generating offers from tasks when it sees fit. src/main/java/org/apache/aurora/scheduler/async/preemptor/PendingTaskProcessor.java <https://reviews.apache.org/r/32352/#comment125744> I'm beginning to question this pattern. It seems reasonable to insist that the global injector _never_ has a binding for a general type like this. With that in mind, you should be comfortable using a private module and an unqualified binding, saving this kind of clutter. What do you think? src/main/java/org/apache/aurora/scheduler/async/preemptor/PendingTaskProcessor.java <https://reviews.apache.org/r/32352/#comment125747> This regresses on some important characteristics of `TaskGroups`: - starvation avoidance: a very large job (even a low priority one) can starve a single restarting instance - backoffs: we will perform redundant and possibly hopeless work to try to schedule the same things without reducing frequency It might be easier to retrofit `TaskGroups` to allow injection of the underlying work than to reimplement those behaviors, but i'm interested in what you think. - Bill Farner On March 21, 2015, 2:19 a.m., Maxim Khutornenko wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/32352/ > ----------------------------------------------------------- > > (Updated March 21, 2015, 2:19 a.m.) > > > Review request for Aurora, Bill Farner and Zameer Manji. > > > Bugs: AURORA-1158 > https://issues.apache.org/jira/browse/AURORA-1158 > > > Repository: aurora > > > Description > ------- > > Summary of changes: > - The PreemptorImpl now only hosts slot validation and task preemption logic > and requires a write transaction. > - PendingTaskProcessor is called every minute to pull all available PENDING > tasks and search for preemption slots. > - TaskScheduler has no connection to slot search anymore. It now completely > relies on periodic PreemptionService to find available slots. > - preemption_delay is reduced from 10 to 3 minutes. > > Benchmark refactoring will be addressed separately. > > > Diffs > ----- > > src/jmh/java/org/apache/aurora/benchmark/SchedulingBenchmarks.java > 5309e8140fff411da30ee87c1b3b1a55d6fdaeeb > src/main/java/org/apache/aurora/scheduler/async/TaskScheduler.java > 1b9d741dba7b9c2663ff119cd44adc8403c0d257 > > src/main/java/org/apache/aurora/scheduler/async/preemptor/PendingTaskProcessor.java > PRE-CREATION > > src/main/java/org/apache/aurora/scheduler/async/preemptor/PreemptionSlotCache.java > 4ca36e5fe2cfd326f4d4f37f70dbcd0060109e73 > > src/main/java/org/apache/aurora/scheduler/async/preemptor/PreemptionSlotFinder.java > 84bcdc57d798aca229d4f184cae065ec4dcf8fc5 > src/main/java/org/apache/aurora/scheduler/async/preemptor/Preemptor.java > 84791a272f245c729706af95d70c7f1631bfe99c > > src/main/java/org/apache/aurora/scheduler/async/preemptor/PreemptorImpl.java > 18a2e6032ba86ff7efab4d42a4d83798a1d06b06 > > src/main/java/org/apache/aurora/scheduler/async/preemptor/PreemptorMetrics.java > 782e751f5b05391ebeee4d947570cc174dddece2 > > src/main/java/org/apache/aurora/scheduler/async/preemptor/PreemptorModule.java > 7034a07eae1f94d7a0bbccdf8146cf3ed0a5424e > src/main/java/org/apache/aurora/scheduler/filter/AttributeAggregate.java > da7b662c3ca4040221805cba81e5ac7b64fb3df4 > src/test/java/org/apache/aurora/scheduler/async/TaskSchedulerImplTest.java > 29fe156da19f3c08af00a951bb3baccf2b97a6cb > src/test/java/org/apache/aurora/scheduler/async/TaskSchedulerTest.java > f5c2128e90eb5c849d68431225661d1cfa7da0cc > > src/test/java/org/apache/aurora/scheduler/async/preemptor/PendingTaskProcessorTest.java > PRE-CREATION > > src/test/java/org/apache/aurora/scheduler/async/preemptor/PreemptorImplTest.java > d17c4fb513afdb7d8ef6d7c2b0aef86c1f47c082 > > src/test/java/org/apache/aurora/scheduler/async/preemptor/PreemptorModuleTest.java > 0e2e958a053e5cee280b947f7349c076e2addb45 > > Diff: https://reviews.apache.org/r/32352/diff/ > > > Testing > ------- > > ./gradlew -Pq build > Manual testing in vagrant. > > > Thanks, > > Maxim Khutornenko > >
