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



src/main/java/org/apache/aurora/scheduler/async/preemptor/PendingTaskProcessor.java
<https://reviews.apache.org/r/32597/#comment130058>

    How about
    ```
    ImmutableSet.copyOf(Sets.union(
        slavesToOffers.keySet(),
        slavesToActiveTasks.keySet()));
    ```



src/main/java/org/apache/aurora/scheduler/async/preemptor/PendingTaskProcessor.java
<https://reviews.apache.org/r/32597/#comment130061>

    This is a point where a higher-level comment explaining the algorithm would 
be really helpful.  Up to this point, you're gathering requisite state, but now 
you're clearly making a conscious decision with the consumingIterator.  If you 
call out some of the goals of the algorithm before this, it will make the 
implementation decisions more obvious.
    
    To be specific - you should call out things like each preemption round will 
place at most one task per slave.



src/main/java/org/apache/aurora/scheduler/async/preemptor/PendingTaskProcessor.java
<https://reviews.apache.org/r/32597/#comment130065>

    Did you consider using a `Multiset` instead?
    
    `ImmutableMultiset.copyOf(FluentIterable...);`



src/main/java/org/apache/aurora/scheduler/async/preemptor/PendingTaskProcessor.java
<https://reviews.apache.org/r/32597/#comment130063>

    Either here or at the call site, please call out the reason we arrange 
elements this way.



src/main/java/org/apache/aurora/scheduler/async/preemptor/PendingTaskProcessor.java
<https://reviews.apache.org/r/32597/#comment130064>

    `splice` could be semantically confused with the javascript function: 
http://www.w3schools.com/jsref/jsref_splice.asp
    
    Consider a name specific to the use case, like `getPreemptionSequence`.



src/main/java/org/apache/aurora/scheduler/async/preemptor/PreemptionSlot.java
<https://reviews.apache.org/r/32597/#comment130066>

    Since there's already diff churn - do you think `PreemptionProposal` is a 
better name?



src/main/java/org/apache/aurora/scheduler/async/preemptor/PreemptionSlotFinder.java
<https://reviews.apache.org/r/32597/#comment130067>

    This is a pretty gnarly method signature.  Do you think there's opportunity 
to generalize things so you can hide the distinction between 
`Optional<HostOffer>` and `Iterable<PreemptionVictim>`?


- Bill Farner


On April 15, 2015, 7:05 p.m., Maxim Khutornenko wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/32597/
> -----------------------------------------------------------
> 
> (Updated April 15, 2015, 7:05 p.m.)
> 
> 
> Review request for Aurora, Bill Farner and Zameer Manji.
> 
> 
> Bugs: AURORA-1219
>     https://issues.apache.org/jira/browse/AURORA-1219
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> This is addressing the preemption efficiency loss due to making preemptor 
> async. Summary:
> - Implemented fair task processing by evaluating pending task groups in 
> round-robin fashion (e.g.: {G1:3, G2:2} -> {G1, G2, G1, G2, G1}) against all 
> available slaves.
> - Moved relevant functionality from PreemptionSlotFinder (now 
> PreemptionVictimFilter) into PendingTaskProcessor.
> 
> The bulk of new functionality is in PendingTaskIterator and 
> PendingTaskProcessor. The rest is refactoring to adjust to the new traversal 
> approach.
> 
> 
> Diffs
> -----
> 
>   
> src/main/java/org/apache/aurora/scheduler/async/preemptor/PendingTaskProcessor.java
>  00919b7910704c5025465e1071378a978e5e60a3 
>   
> src/main/java/org/apache/aurora/scheduler/async/preemptor/PreemptionSlot.java 
> PRE-CREATION 
>   
> src/main/java/org/apache/aurora/scheduler/async/preemptor/PreemptionSlotFinder.java
>  f16f964f56f0f9da523950891293083f1bd86780 
>   src/main/java/org/apache/aurora/scheduler/async/preemptor/Preemptor.java 
> 5200811ec8fe6fedf42ae2712f29051a8c0bf4a9 
>   
> src/main/java/org/apache/aurora/scheduler/async/preemptor/PreemptorMetrics.java
>  dc7eb4421ff305dca32f36c83605c2864fea8b11 
>   
> src/main/java/org/apache/aurora/scheduler/async/preemptor/PreemptorModule.java
>  7cea881a8c3c11142bd04b3c794cd86a310b15e7 
>   src/main/java/org/apache/aurora/scheduler/base/TaskGroupKey.java 
> 6af3949b85297043640edccc1a490906c0fcff6c 
>   src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java 
> 7bb1e7a9f27088636d6549c089b1d079dfeaf2ee 
>   
> src/test/java/org/apache/aurora/scheduler/async/preemptor/PendingTaskProcessorTest.java
>  8a9a3b7d9686e29632f4e267f591cdb19826e0e7 
>   
> src/test/java/org/apache/aurora/scheduler/async/preemptor/PreemptorImplTest.java
>  64283fab8c61b841007d7c0a02b083b3067bc78d 
>   
> src/test/java/org/apache/aurora/scheduler/async/preemptor/PreemptorSlotFinderTest.java
>  eed2de99a145dd2124b7f2b4d401214f1d8adf2e 
> 
> Diff: https://reviews.apache.org/r/32597/diff/
> 
> 
> Testing
> -------
> 
> ./gradlew -Pq build
> Manual testing in vagrant
> 
> 
> Thanks,
> 
> Maxim Khutornenko
> 
>

Reply via email to