Carlo Curino commented on YARN-4108:

[~leftnoteasy] thanks for explaining us what you are working on. All in all, it 
sounds like a reasonable enhancement. The two things I think we should keep an 
eye out for is that:
 # The "dry-run" mechanisms you describe, while clever is increasing the cost 
of processing NM heart-beats. We should very carefully evaluate this, to make 
sure this approach can scale to large/busy clusters. It would be great to have 
some self-tuning (or manual tuning) mechanics that allow us to leverage this 
only if manageable for scale.
 # Your proposed approach clashes a bit with the "non-strict" version of 
preemption, where an AM is allowed to return an equivalent amount of resources 
somewhere else. While I am not sure this is happening in the wild yet (AM-side 
support of preemption is still minimal/absent), I think it is important 
especially as we move towards richer applications.
 # The proposed approach prevents certain preemption actions that will never 
lead to a usable containers, however since preemption has anyway a long-lag 
(wait-before-kill + actual kill + dispatch of new container to AMs). It is 
possible that the demand you decided to preempt for will be satisfied by the 
time the resources from preempted containers are offered (hence some unneeded 
preemption might remain). Again, this is more likely in large cluster where 
much more is happening at any one time. 

Bottomline, I like the general direction, and I can see scenarios (services or 
small clusters) where this can improve things a fair bit, but we should make 
sure this works well in large/busy clusters running mostly batch jobs.

> CapacityScheduler: Improve preemption to preempt only those containers that 
> would satisfy the incoming request
> --------------------------------------------------------------------------------------------------------------
>                 Key: YARN-4108
>                 URL: https://issues.apache.org/jira/browse/YARN-4108
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: capacity scheduler
>            Reporter: Wangda Tan
>            Assignee: Wangda Tan
>         Attachments: YARN-4108-design-doc-v1.pdf, 
> YARN-4108-design-doc-v2.pdf, YARN-4108.poc.1.patch
> This is sibling JIRA for YARN-2154. We should make sure container preemption 
> is more effective.
> *Requirements:*:
> 1) Can handle case of user-limit preemption
> 2) Can handle case of resource placement requirements, such as: hard-locality 
> (I only want to use rack-1) / node-constraints (YARN-3409) / black-list (I 
> don't want to use rack1 and host\[1-3\])
> 3) Can handle preemption within a queue: cross user preemption (YARN-2113), 
> cross applicaiton preemption (such as priority-based (YARN-1963) / 
> fairness-based (YARN-3319)).

This message was sent by Atlassian JIRA

Reply via email to