[ 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