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

Sunil Govindan commented on YARN-8379:
--------------------------------------

Hi [~Zian Chen]

Few more comments
 # In {{preemptOrkillSelectedContainerAfterWait}} could we avoid computing 
toPreemptCount. Instead we can use toPreempt.size or something similar. Ideally 
no: of containers in toPreempt and toPreemptPerSelector should be same.
 # 
{quote} we should give a clean curCandidates HashMap every time we call 
editSchedule, otherwise like this UT, we call editschedule multiple times but 
the selector remain the same instance
{quote}
To me, this is more likely a UT bug. As per the semantics, we do not need to 
pass curCandidates and rather consider the return value alone.

 # I think in line with above comments, we can try to rename 
updateCurCandidates to updatePerSelectorCandidates and curCandidates to 
something similar?
 # May be more cleaner solution is to handle curCandidates map updates inside 
CapacitySchedulerPreemptionUtils#addToPreemptMap method. All duplicate checks 
are done before this method is called, so we can just add container to 
curCandidates inside this method which avoid a lot of external handling and 
cause more bugs later for new selector etc.

> Add an option to allow Capacity Scheduler preemption to balance satisfied 
> queues
> --------------------------------------------------------------------------------
>
>                 Key: YARN-8379
>                 URL: https://issues.apache.org/jira/browse/YARN-8379
>             Project: Hadoop YARN
>          Issue Type: Bug
>            Reporter: Wangda Tan
>            Assignee: Zian Chen
>            Priority: Major
>         Attachments: YARN-8379.001.patch, YARN-8379.002.patch, 
> YARN-8379.003.patch, YARN-8379.004.patch, YARN-8379.005.patch, 
> ericpayne.confs.tgz
>
>
> Existing capacity scheduler only supports preemption for an underutilized 
> queue to reach its guaranteed resource. In addition to that, there’s an 
> requirement to get better balance between queues when all of them reach 
> guaranteed resource but with different fairness resource.
> An example is, 3 queues with capacity, queue_a = 30%, queue_b = 30%, queue_c 
> = 40%. At time T. queue_a is using 30%, queue_b is using 70%. Existing 
> scheduler preemption won't happen. But this is unfair to queue_a since 
> queue_a has the same guaranteed resources.
> Before YARN-5864, capacity scheduler do additional preemption to balance 
> queues. We changed the logic since it could preempt too many containers 
> between queues when all queues are satisfied.



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