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

Craig Welch commented on YARN-2496:
-----------------------------------

So, re the headroom issue (2)  - the short version - I don't think we can put 
off addressing this, because I think it is going to be a typical case and will 
be problematic.  I think the most realistic solution is to support only a short 
list of pre-configured label expressions per queue.  Another option is to limit 
nodes to supporting only 1 label per node (which, realistically, might be 
sufficient).  A third option is to limit the number of labels which a queue can 
access to a very small value + the "all" value (1-2).  Basically, one of the 
factors pushing the large set of possible values which must be considered to 
properly calculate headroom needs to be made finite/drastically reduced.

longer version...
I don't think we should move forward without addressing it.  I say this because 
I think it is likely to be a typical situation to have a queue which has more 
than one label associated with it- most likely, the simple case of a queue 
which can address all nodes some of which have a label and some of which do 
not.  Jobs entering these queues using a restrictive label expression will hit 
this headroom issue - it's especially true in cases where there are lower 
resources, which is what one would expect from a "small set of special 
machines" (e.g. typical node label case).  It's important to make sure headroom 
is correctly handled as we add node labels, and as things stand, we know it is 
not.

I'm afraid it is something of a design issue, allowing arbitrary node label 
expressions with multiple labels on queues, etc, is leading to something of a 
combinatory explosion.  It may be that the right solution is to narrow the 
feature set a bit for this iteration.  We could choose to only support a 
restricted set of expressions on a given queue.  This could even mean only 
supporting the default label expression - I'm concerned that this may be too 
restrictive - and so that we would need to support a set of expressions.  This 
could then be a finite list which is pre-calculated.  I think, in practical 
terms, this will probably meet people's needs.  A second option is to restrict 
the number of labels supported on a queue, a small enough set could be 
pre-calculated for all possibilities.  I suspicious of this latter option, 
though, it would have to be a very small number of labels to be manageable and 
I think it reduces, realistically, to the restricted set of expressions.  

I also don't see any performant way to support arbitrary nodelable expressions 
on every request with unlimited labels per queue and node - things as they are. 
 It appears to me you would need to keep track of all resource values for 
intersection of all label combinations.  If we limited the number of possible 
labels on a node to one then we could calculate based on expressions at runtime 
(possibly for a very small number > 1, but again, growth is exponential? I 
believe... and functionally complex)


> [YARN-796] Changes for capacity scheduler to support allocate resource 
> respect labels
> -------------------------------------------------------------------------------------
>
>                 Key: YARN-2496
>                 URL: https://issues.apache.org/jira/browse/YARN-2496
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: resourcemanager
>            Reporter: Wangda Tan
>            Assignee: Wangda Tan
>         Attachments: YARN-2496.patch, YARN-2496.patch, YARN-2496.patch, 
> YARN-2496.patch
>
>
> This JIRA Includes:
> - Add/parse labels option to {{capacity-scheduler.xml}} similar to other 
> options of queue like capacity/maximum-capacity, etc.
> - Include a "default-label-expression" option in queue config, if an app 
> doesn't specify label-expression, "default-label-expression" of queue will be 
> used.
> - Check if labels can be accessed by the queue when submit an app with 
> labels-expression to queue or update ResourceRequest with label-expression
> - Check labels on NM when trying to allocate ResourceRequest on the NM with 
> label-expression
> - Respect  labels when calculate headroom/user-limit



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

Reply via email to