> On March 15, 2020, 5:04 p.m., Qian Zhang wrote:
> > src/master/validation.cpp
> > Lines 1554-1561 (patched)
> > <https://reviews.apache.org/r/72216/diff/4/?file=2213417#file2213417line1554>
> >
> >     What about the task which does not set `share_cgroups` (or even not set 
> > `ContainerInfo` at all)? In that case, I think its `share_cgroups` is also 
> > true (since it is true by default), right?
> >     
> >     And I think this validation will affect the command task case because 
> > command task must have `share_cgroups` as true and it is allowed to specify 
> > resource limits for it, right? So I think even a task's `share_cgroup` is 
> > true, we should still allow it to have resource limits specified if it is 
> > the first task of the executor, but we should disallow if it is the second 
> > task no matter whether the first task has resource limits specified or not 
> > because otherwise the second task's resource limits may not be enforced.
> >     
> >     But it seems hard to find out whether it is the first task of the 
> > executor. So another option could be, we just do not do this validation at 
> > all, i.e., a task can always specify a resource limits regardless the value 
> > of its `share_cgroups`, so task's resource limits will actually have two 
> > differen meanings:
> >     1. If task's `share_cgroups` is false, then the resource limits are its 
> > own limits.
> >     2. If task's `share_cgroups` is true, its resource limits will 
> > contribute into the executor's resource limits, all tasks of an executor 
> > will share the same resource limits which is the sum of all task's resource 
> > limits.
> >     
> >     For #2, actually that is what we are doing in our current implemention, 
> > e.g., if a customer executor launches multiple tasks, all these tasks will 
> > just share the same resource limits, i.e. the customer executor's resource 
> > limits (yes, we indeed always set memory hard limit to memory request and 
> > set CPU hard limit to CPU request if `--cgroups_enable_cfs` is true in our 
> > current implementation). So #2 sounds not that bad since it is backward 
> > compatibile?

Or in MVP, we could make an exception here for the command task (i.e. 
`!task.has_executor()`)? Like it is allowed to specify resource limits for 
command tasks, but not allowed for any other tasks whose `share_cgroup` is true.


- Qian


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


On March 12, 2020, 3:10 a.m., Greg Mann wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/72216/
> -----------------------------------------------------------
> 
> (Updated March 12, 2020, 3:10 a.m.)
> 
> 
> Review request for mesos, Andrei Budnik and Qian Zhang.
> 
> 
> Bugs: MESOS-10045
>     https://issues.apache.org/jira/browse/MESOS-10045
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Added master validation for task resource limits and shared cgroups.
> 
> 
> Diffs
> -----
> 
>   src/master/validation.cpp 084f281eadd65cb8ae0a19b7b7797dc71ccebdd2 
> 
> 
> Diff: https://reviews.apache.org/r/72216/diff/4/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Greg Mann
> 
>

Reply via email to