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

Benjamin Teke edited comment on YARN-10504 at 1/11/21, 11:31 AM:
-----------------------------------------------------------------

Sharing my latest findings on TestAbsoluteResourceWithAutoQueue failure: 
{{AutoCreatedLeafQueue#reinitializeFromTemplate }}was refactored, now the 
getting and merging the QueueCapacities happens{{ *before* }}calling the{{ 
ParentQueue#updateClusterResource}} (and {{LeafQueue#updateClusterResource}}). 
In {{LeafQueue#updateClusterResource}} the 
AbstractCSQueue#updateEffectiveResources is called where the 
effectiveMinResource of the created queue is overridden with the template's 
effectiveMinResources which is exactly the same the test is getting in the 
asserts.
{code:java}
  void updateEffectiveResources(Resource clusterResource) {
    Set<String> configuredNodelabels =
        csContext.getConfiguration().getConfiguredNodeLabels(getQueuePath());
    for (String label : configuredNodelabels) {
      Resource resourceByLabel = labelManager.getResourceByLabel(label,
          clusterResource);      Resource minResource = 
queueResourceQuotas.getConfiguredMinResource(
          label);      // Update effective resource (min/max) to each child 
queue.
      if (getCapacityConfigType().equals(
          CapacityConfigType.ABSOLUTE_RESOURCE)) {
        queueResourceQuotas.setEffectiveMinResource(label,
            getMinResourceNormalized(queuePath,
                ((ParentQueue) parent).getEffectiveMinRatioPerResource(),
                minResource));


...{code}


was (Author: bteke):
Sharing my latest findings on TestAbsoluteResourceWithAutoQueue failure: 
{{AutoCreatedLeafQueue#reinitializeFromTemplate }}was refactored, now the 
getting and merging the QueueCapacities happens *before* calling the 
{{ParentQueue#updateClusterResource}} (and 
{{LeafQueue#updateClusterResource}}). In {{LeafQueue#updateClusterResource 
}}the {{AbstractCSQueue#updateEffectiveResources }}is called where the 
effectiveMinResource of the created queue is overridden with the template's 
effectiveMinResources which is exactly the same the test is getting in the 
asserts.


{code:java}
  void updateEffectiveResources(Resource clusterResource) {
    Set<String> configuredNodelabels =
        csContext.getConfiguration().getConfiguredNodeLabels(getQueuePath());
    for (String label : configuredNodelabels) {
      Resource resourceByLabel = labelManager.getResourceByLabel(label,
          clusterResource);      Resource minResource = 
queueResourceQuotas.getConfiguredMinResource(
          label);      // Update effective resource (min/max) to each child 
queue.
      if (getCapacityConfigType().equals(
          CapacityConfigType.ABSOLUTE_RESOURCE)) {
        queueResourceQuotas.setEffectiveMinResource(label,
            getMinResourceNormalized(queuePath,
                ((ParentQueue) parent).getEffectiveMinRatioPerResource(),
                minResource));


...{code}

> Implement weight mode in Capacity Scheduler
> -------------------------------------------
>
>                 Key: YARN-10504
>                 URL: https://issues.apache.org/jira/browse/YARN-10504
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>            Reporter: Benjamin Teke
>            Assignee: Benjamin Teke
>            Priority: Major
>         Attachments: YARN-10504.001.patch, YARN-10504.002.patch, 
> YARN-10504.003.patch, YARN-10504.004.patch, YARN-10504.005.patch, 
> YARN-10504.006.patch, YARN-10504.007.patch, YARN-10504.008.patch, 
> YARN-10504.009.patch, YARN-10504.010.patch, YARN-10504.ver-1.patch, 
> YARN-10504.ver-2.patch, YARN-10504.ver-3.patch
>
>
> To allow the possibility to flexibly create queues in Capacity Scheduler a 
> weight mode should be introduced. The existing \{{capacity }}property should 
> be used with a different syntax, i.e:
> root.users.capacity = (1.0) or ~1.0 or ^1.0 or @1.0
> root.users.capacity = 1.0w
> root.users.capacity = w:1.0
> Weight support should not impact the existing functionality.
>  
> The new functionality should: 
>  * accept and validate the new weight values
>  * enforce a singular mode on the whole queue tree
>  * (re)calculate the relative (percentage-based) capacities based on the 
> weights during launch and every time the queue structure changes



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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