[ https://issues.apache.org/jira/browse/YARN-11736?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17890842#comment-17890842 ]
ASF GitHub Bot commented on YARN-11736: --------------------------------------- TaoYang526 commented on code in PR #7121: URL: https://github.com/apache/hadoop/pull/7121#discussion_r1806043603 ########## hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/MultiNodePolicySpec.java: ########## @@ -22,14 +22,25 @@ */ public class MultiNodePolicySpec { + private String policyName; private String policyClassName; private long sortingInterval; - public MultiNodePolicySpec(String policyClassName, long timeout) { + public MultiNodePolicySpec(String policyName, String policyClassName, Review Comment: In MultiNodeSorter#initPolicy, Policy instance will be created based on policyClassName, and policyName will be used to get conf belong to this policy instance in MultiComparatorPolicy#setConf. This is the only way for every policy instance to know which configuration belong to it, another way is to update the policy interface that I prefer not to use. If there are better approaches, feel free to propose them. > Enhance MultiNodeLookupPolicy to allow configuration of extended comparators > for better usability. > -------------------------------------------------------------------------------------------------- > > Key: YARN-11736 > URL: https://issues.apache.org/jira/browse/YARN-11736 > Project: Hadoop YARN > Issue Type: Improvement > Components: multi-node-placement > Reporter: Tao Yang > Assignee: Tao Yang > Priority: Major > Labels: pull-request-available > > Currently when multi-nodes is enabled, there is only 1 implementation of > _MultiNodeLookupPolicy_ interface: {_}ResourceUsageMultiNodeLookupPolicy{_}, > which will sort nodes by allocated resources in ascending order. > If cluster has nodes with different resource-spec, the resource utilization > of smaller nodes will be significantly high, while larger nodes will > experience low resource utilization. This may rise the hotspot risk and > reduce the scheduling effectiveness. > So I propose to add a new policy called _MultiComparatorPolicy_ to meet > requirements from some complex scenarios, which should contains serveral > inherit comparators and can be extended later, and supports configuring > specified comparators for different policy instances. > > {*}Implementation Details{*}: > 1. _MultiNodeSorter#initPolicy_ will pass the policyConf which is cloned from > scheduler configuration and attached the name of current policy, so that we > can fetch the specified configuration for this policy inside the > implementations of MultiNodeLookupPolicy. > 2. new implementation of {_}MultiNodeLookupPolicy{_}: _MultiComparatorPolicy_ > 2.1) contains several inherit comparators and can be extendable later. > comparator keys: _ALLOCATED_RESOURCE / UNALLOCATED_RESOURCE / > DOMINANT_RESOURCE_RATIO / NODE_ID,_ order-directions: _ASC / DESC._ > 2.2) supports configuring specified comparators with > order-direction(ASC/DESC) for different policy instances via conf-key: > {+}{color:#172b4d}yarn.scheduler.capacity.multi-node-sorting.policy.<policy-name>.comparators{color}{+}, > value format is > "<comparator_key_1>[:<order_direction_1>],<comparator_key_2>[:<order_direction_2>],...". > For example, "DOMINANT_ALLOCATED_RATIO,NODE_ID:DESC" means that for policy > test, nodes should be sorted by dominant-resource-ratio in ascending order, > by nodeID desc in descending order. > 3. Refactor variable names in > AbstractCSQueue/CSQueue/FiCaSchedulerApp/AppPlacementAllocator after > supporting multiple policy instances with the same policy class. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org