[
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)