[
https://issues.apache.org/jira/browse/YARN-7005?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16274696#comment-16274696
]
Wangda Tan commented on YARN-7005:
----------------------------------
[~Tao Yang],
Thanks for working on this fix.
Looked at the patch, getAllPending could be an expensive operation. I think we
could maintain a per-partition active queue set (which has
pendingResource(partition) > 0). The active queue set will be updated when
queue's pending resource get updated. {{CSQueue#inc/decPendingResource}}.
The other quicker solution is to change getAllPending to getPending(partition)
in your patch. We may need to do some benchmark to see how much performance it
improves.
Thoughts?
> Skip unnecessary sorting and iterating process for child queues without
> pending resource to optimize schedule performance
> -------------------------------------------------------------------------------------------------------------------------
>
> Key: YARN-7005
> URL: https://issues.apache.org/jira/browse/YARN-7005
> Project: Hadoop YARN
> Issue Type: Improvement
> Affects Versions: 2.9.0, 3.0.0-alpha4
> Reporter: Tao Yang
> Attachments: YARN-7005.001.patch
>
>
> Nowadays even if there is only one pending app in a queue, the scheduling
> process will go through all queues anyway and costs most of time on sorting
> and iterating child queues in ParentQueue#assignContainersToChildQueues.
> IIUIC, queues that have no pending resource can be skipped for sorting and
> iterating process to reduce time cost, obviously for a cluster with many
> queues. Please feel free to correct me if I ignore something else. Thanks.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]