> On March 28, 2017, 11:06 p.m., Michael Park wrote:
> > src/master/quota_handler.cpp
> > Lines 469-487 (original), 605-618 (patched)
> > <https://reviews.apache.org/r/57167/diff/8/?file=1672397#file1672397line605>
> >
> >     Couldn't this be just:
> >     
> >     ```cpp
> >     vector<string> components = strings::split(request.url.path, "/", 3u);
> >     if (components.size() < 3u) {
> >       return BadRequest(
> >           "Failed to parse request path '" + request.url.path +
> >           "': 3 tokens ('master', 'quota', 'role') required, found " +
> >           stringify(tokens.size()) + " token(s)"));
> >     }
> >     
> >     CHECK_EQ(3u, components.size());
> >     const string& role = components.back();
> >     /* ... */
> >     ```
> 
> Neil Conway wrote:
>     I'm not sure this is actually more readable; leaving as-is for now, will 
> discuss offline.
> 
> Michael Park wrote:
>     A summary of our discussion yesterday: the `components.begin() + 3` part 
> looks wrong, but is indeed correct
>     because `split` returns empty tokens, and the first token will be an 
> empty string.
>     This means that my suggestion of `split(..., 3u)` actually has a bug... 
> subtle :(.
>     
>     We also didn't like the splitting/joining of the "rest", because it's not 
> obvious that we get back what we put in.
>     
>     Also, based on the code that I see in libprocess for `route`, it looks 
> like we would allow extraneous slashes such as `/master///quota`.
>     This would mean that the use of `split` actually introduces a 
> backwards-incompatibility here.
>     
>     I personally think it's simplest for us to do 
> `strings::tokenize(request.url.path, "/", 3u)`.
>     
>     What do you think?

sg!


- Neil


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


On March 28, 2017, 11:42 p.m., Neil Conway wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57167/
> -----------------------------------------------------------
> 
> (Updated March 28, 2017, 11:42 p.m.)
> 
> 
> Review request for mesos and Michael Park.
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> The quota'd resources for a nested role are "included" within the
> quota'd resources for that role's parent. Hence, the quota of a node
> must always be greater than or equal to the sum of the quota'd resources
> of that role's children.
> 
> When creating and removing quota, we must ensure that this invariant is
> not violated.
> 
> When computing the cluster capacity heuristic, we must ensure that we do
> not "double-count" quota'd resources: e.g., if the cluster has a total
> capacity of 100 CPUs, role "x" has a quota guarantee of 80 CPUs, and
> role "x/y" has a quota guarantee of 40 CPUs, this does NOT violate the
> cluster capacity heuristic.
> 
> 
> Diffs
> -----
> 
>   src/master/quota_handler.cpp 36ea1acca47014b2fb7a3b597b857c8ec9e2ab67 
>   src/tests/hierarchical_allocator_tests.cpp 
> e343dc37bd7136f0f6dd5dbc22a25cabe715038d 
>   src/tests/master_quota_tests.cpp e418f22ea1773f4356ced44b8d57a80e826c8837 
> 
> 
> Diff: https://reviews.apache.org/r/57167/diff/9/
> 
> 
> Testing
> -------
> 
> `make check`
> 
> 
> Thanks,
> 
> Neil Conway
> 
>

Reply via email to