> On Jan. 15, 2016, 6:21 p.m., Joseph Wu wrote:
> > src/master/allocator/mesos/hierarchical.cpp, lines 529-535
> > <https://reviews.apache.org/r/41847/diff/4/?file=1195636#file1195636line529>
> >
> >     What if you did this?
> >     ```
> >     slaves[slaveId]total = slaves[slaveId].total.nonUsageSlack() + 
> > oversubscribed;
> >     ```
> >     
> >     Where `nonUsageSlack` is a helper that filters out usage slack.  (You 
> > could just use a Resource filter directly here.)
> >     
> >     ---
> >     
> >     This would have fewer operations too (1 filter operation instead of 2).
> 
> Guangya Liu wrote:
>     I think that the current logic is that when 
> enableReservationOversubscription is true, we only need to add the allocation 
> slack to the total resources, there is no other change except this.
>     
>     The `allocationSlack()` also has only 1 filter `isAllocationSlack` , 
> comments?
> 
> Joseph Wu wrote:
>     I'm talking about the `.nonRevocable()` and the `allocationSlack()` 
> filters.
>     
>     The current patch is a pretty roundabout way of writing this:
>     ```
>     slaves[slaveId].total = oversubscribed + 
>       slaves[slaveId].total.filter([](const Resource& resource) { return 
> !isUsageSlack(resource); });
>     ```
>     
>     ^ This makes it explicit that we're just resetting the `USAGE_SLACK` 
> component and leaving everything else untouched.
> 
> Guangya Liu wrote:
>     My logic here is that for update `updateSlave`, do not touch other logic 
> but only add the `allocationSlack` when `enableReservationOversubscription` 
> is enabled, this may be cleaner? As I was only adding `allocationSlack` when 
> `enableReservationOversubscription` is enabled.
> 
> Joseph Wu wrote:
>     The `enableReservationOversubscription` flag shouldn't even matter here.  
> If you really want to be strict, you can add this:
>     ```
>     if (enableReservationOversubscription) {
>       CHECK_EQ(Resources(), slaves[slaveId].total.allocationSlack());
>     }
>     ```
> 
> Guangya Liu wrote:
>     @Joseph, so the logic you proposed is as this?
>     
>     if (enableReservationOversubscription) {
>       slaves[slaveId]total = slaves[slaveId].total.nonUsageSlack() + 
> oversubscribed;
>     } else {
>       slaves[slaveId].total = total.nonRevocable() + oversubscribed;
>     }
>     
>     Yes, the above logic can make allocator call only 1 filter. If this is 
> your proposal, I will update the patch and move the `nonUsage` before this 
> patch.

Not quite:
```
slaves[slaveId].total = slaves[slaveId].total.nonUsageSlack() + oversubscribed;

// Only add this if you really want to check the flag.  
// But optimistic offers shouldn't even be considered in this method.
if (enableReservationOversubscription) {
  CHECK_EQ(Resources(), slaves[slaveId].total.allocationSlack());
}
```


- Joseph


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


On Jan. 13, 2016, 4:55 a.m., Guangya Liu wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/41847/
> -----------------------------------------------------------
> 
> (Updated Jan. 13, 2016, 4:55 a.m.)
> 
> 
> Review request for mesos, Ben Mahler, Artem Harutyunyan, Joris Van 
> Remoortere, Joseph Wu, Klaus Ma, and Jian Qiu.
> 
> 
> Bugs: MESOS-4145
>     https://issues.apache.org/jira/browse/MESOS-4145
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Updated allocation slack when slave was updated.
> 
> 
> Diffs
> -----
> 
>   src/master/allocator/mesos/hierarchical.cpp 
> d541bfa3f4190865c65d35c9d1ffdb8a3f194056 
>   src/tests/hierarchical_allocator_tests.cpp 
> e044f832c2c16e53e663c6ced5452649bb0dcb59 
> 
> Diff: https://reviews.apache.org/r/41847/diff/
> 
> 
> Testing
> -------
> 
> make
> make check
> GLOG_v=2 ./bin/mesos-tests.sh  --gtest_filter="HierarchicalAllocatorTest.*" 
> --verbose
> 
> 
> Thanks,
> 
> Guangya Liu
> 
>

Reply via email to