> On May 25, 2016, 1:28 p.m., Joris Van Remoortere wrote:
> > src/master/allocator/sorter/drf/sorter.cpp, line 50
> > <https://reviews.apache.org/r/47259/diff/1/?file=1379947#file1379947line50>
> >
> >     Why can this be a `CHECK` if the previous review can't?
> >     What is the standard we're trying to set for invariants?

We have been using CHECKs and if guards inconsistently in the sorter. 

Normally we shouldn't use CHECKs on public method arguments (i.e., they are not 
invariants) but it's widely used in sorter due to the tight coupling between 
the allocator and the sorter and it's either simpler for the allocator to not 
have to handle an error/none/false result or sometimes it's impossible to 
handle it. I filed MESOS-5280 for the inconsistency but now I feel it's perhaps 
not worth making all the methods return error/none/false instead of doing 
CHECKs, it could be discussed there though.

So if we don't replace CHECKs with error/none/false returns, should we always 
CHECK and crash the problem? I feel that will be too much.

The difference between this patch and the previous is (as I commented on 
MESOS-5279):
- It's acceptable to do nothing when the **exact** thing it is asked to do is 
already done (this doesn't get us into a bad interanl state). (The case in 
/r/47258/)
- It's not acceptable to silently refuse to do something not because it's 
already done but it's impossible to do it because it gets us into a bad 
internal state (duplicate entries). (The case in here /r/47259/, as the caller 
could first call `sorter->add("fw1", 1)` and then `sorter->add("fw1", 2)` which 
would be a **different** thing)

P.S. We should always CHECK internal invariants in the sorter for sure.


- Jiang Yan


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


On May 19, 2016, 11:28 a.m., Jiang Yan Xu wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/47259/
> -----------------------------------------------------------
> 
> (Updated May 19, 2016, 11:28 a.m.)
> 
> 
> Review request for mesos, Dario Rexin and Joris Van Remoortere.
> 
> 
> Bugs: MESOS-5279
>     https://issues.apache.org/jira/browse/MESOS-5279
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> CHECK if DRFSorter::add() would introduce a duplicate.
> 
> 
> Diffs
> -----
> 
>   src/master/allocator/sorter/drf/sorter.cpp 
> 4306973277b9d32356eed31ceabac09fb2a03e6c 
> 
> Diff: https://reviews.apache.org/r/47259/diff/
> 
> 
> Testing
> -------
> 
> make check.
> 
> 
> Thanks,
> 
> Jiang Yan Xu
> 
>

Reply via email to