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

Sunil G commented on YARN-8292:
-------------------------------

Hi [~leftnoteasy] 

Thanks for the detailed analysis. I think this is really a problem in DRF where 
we tend to skip other resources as we do comparison by only few resources in 
Dominant model. Approach looks fine to me.

+Quick comments:+

1.
{code:java}
doPreempt = Resources.greaterThanOrEqual(rc, clusterResource, 
               toObtainAfterPreemption, Resources.none()) ||  
               Resources.isAnyMajorResourceZero(rc, 
toObtainAfterPreemption);{code}
If any resource in *toObtainAfterPreemption* is Zero, i think we should not 
preempt, correct? In that case {{Resources.isAnyMajorResourceZero(rc, 
toObtainAfterPreemption)}} need to have *!* ?

2. For {{FifoCandidatesSelector}} also, I think we need to have same logic? 
Because this case could happen in inter-queue preemption case as well, correct?

 

 

 

 

> Fix the dominant resource preemption cannot happen when some of the resource 
> vector becomes negative
> ----------------------------------------------------------------------------------------------------
>
>                 Key: YARN-8292
>                 URL: https://issues.apache.org/jira/browse/YARN-8292
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: yarn
>            Reporter: Sumana Sathish
>            Assignee: Wangda Tan
>            Priority: Critical
>             Fix For: 3.2.0, 3.1.1
>
>         Attachments: YARN-8292.001.patch
>
>
>  
>  This is an example of the problem: (Same if we have more than 2 resources)
>   
> Let's say we have 3 queues A/B/C. All containers with equal size <2,3>
>  
> ||Queue||Guaranteed||Used ||Pending||
> |A|<20, 10>|<20,30>| |
> |B|<20, 10>|0|0|
> |C|<20, 10>|0|<20, 30>|
> | | | | |
>  
> Under current logic, A's calculated to-preempt (how much resource other queue 
> can preempt) will be <0, 20>. The preemption will not happen. However, under 
> the context of DRC, queue A is using more resource than guaranteed, so queue 
> C will be starved



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org

Reply via email to