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

Henry Robinson commented on YARN-1488:
--------------------------------------

Arun, thanks for filing this. I have a few questions so that I can understand 
the proposal more concretely (I'm viewing this in the context of YARN-1404; 
i.e. a server process that wants to obtain resources for workers that may not 
have a 1-to-1 relationship with processes):

Would the recipient and delegated containers have to match the queues to which 
their original resources were granted? If the target is the server process, and 
the source is a set of resources granted for a single worker, the queues would 
likely be different.

* If the queues do not have to match, then presumably the target container is 
the server's. Would the server process now have to track all resources 
delegated to it? I'm thinking that pre-empting a delegated container would 
require the server process to ensure that it no longer assigns resources to the 
relevant worker. This does not affect YARN's correctness, since the resources 
will be revoked no matter what, but otherwise increases the likelihood that 
YARN's understanding of the resource map of the cluster is inaccurate, which is 
not good for anyone. 

* If the queues *must* match, then presumably the target container is supposed 
to be for the worker, not the server (because server and worker occupy 
different queues). But if that's the case, the target container must already 
exist, which makes it seem like YARN would require a process to be running in 
it, getting us back to the start with our requirements for Impala, which is 
that we'd like to have one container per query but we use that container by 
assigning threads to it dynamically, rather than whole processes.

I like the delegation idea as a mechanism to coalesce resource requests into 
one. But I don't yet understand how this allows us to maintain one 
cgroup-per-worker without a dedicated worker process, unless the server process 
creates a hierarchy of cgroups underneath it, one for each worker, and 
physically delegates resources that way. This (or an alternative approach where 
all workers run inside the same monolithic server cgroup, and the server 
schedules them in user-land itself) places some pretty hefty requirements on 
the framework to avoid misusing the resources that YARN grants it.

> Allow containers to delegate resources to another container
> -----------------------------------------------------------
>
>                 Key: YARN-1488
>                 URL: https://issues.apache.org/jira/browse/YARN-1488
>             Project: Hadoop YARN
>          Issue Type: New Feature
>            Reporter: Arun C Murthy
>
> We should allow containers to delegate resources to another container. This 
> would allow external frameworks to share not just YARN's resource-management 
> capabilities but also it's workload-management capabilities.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)

Reply via email to