[ 
https://issues.apache.org/jira/browse/MESOS-1718?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15049692#comment-15049692
 ] 

Vinod Kone commented on MESOS-1718:
-----------------------------------

I think adding yet another field "Executorinfo::task_command" is potentially 
confusing. Why not reuse "TaskInfo::CommandInfo" instead?

I suggest we relax the current constraint that "only one of 
TaskInfo::CommandInfo or TaskInfo::ExecutorInfo" should be set. It should be OK 
if both are set as far as slave is concerned. So, when the framework sends a 
launch task with TaskInfo::ExecutorInfo unset, master can set that field with 
command executor information and pass it onto the slave. 

Note that there are no required fields in CommandInfo, so master can leave them 
unset and let slave fill it in. But, I'm not convinced it having slave fill 
ExecutorInfo::CommandInfo is a good idea. This is because, when a master fails 
over it learns about existing ExecutorInfos from the re-registered slaves. 
Since these ExecutorInfos have updated CommandInfo, it will look weird in the 
master. The weirdness is because any new command tasks launched will not have 
ExecutorInfo::CommandInfo::* set, whereas command executors from re-registered 
slaves will have it set.

Also note that we didn't yet talk about backwards compatibility concerns here. 
I'm guessing we need to make changes to slave and command executor to make sure 
they work with old style and new style command tasks.

> Command executor can overcommit the slave.
> ------------------------------------------
>
>                 Key: MESOS-1718
>                 URL: https://issues.apache.org/jira/browse/MESOS-1718
>             Project: Mesos
>          Issue Type: Bug
>          Components: slave
>            Reporter: Benjamin Mahler
>            Assignee: Ian Downes
>
> Currently we give a small amount of resources to the command executor, in 
> addition to resources used by the command task:
> https://github.com/apache/mesos/blob/0.20.0-rc1/src/slave/slave.cpp#L2448
> {code: title=}
> ExecutorInfo Slave::getExecutorInfo(
>     const FrameworkID& frameworkId,
>     const TaskInfo& task)
> {
>   ...
>     // Add an allowance for the command executor. This does lead to a
>     // small overcommit of resources.
>     executor.mutable_resources()->MergeFrom(
>         Resources::parse(
>           "cpus:" + stringify(DEFAULT_EXECUTOR_CPUS) + ";" +
>           "mem:" + stringify(DEFAULT_EXECUTOR_MEM.megabytes())).get());
>   ...
> }
> {code}
> This leads to an overcommit of the slave. Ideally, for command tasks we can 
> "transfer" all of the task resources to the executor at the slave / isolation 
> level.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to