You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-commits@hadoop.apache.org by bo...@apache.org on 2012/02/28 21:13:17 UTC

svn commit: r1294814 - in /hadoop/common/branches/branch-0.23/hadoop-mapreduce-project: ./ hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/ hadoop-yarn/had...

Author: bobby
Date: Tue Feb 28 20:13:16 2012
New Revision: 1294814

URL: http://svn.apache.org/viewvc?rev=1294814&view=rev
Log:
svn merge -c 1294808 trunk to branch 0.23 FIXES MAPREDUCE-3816 capacity scheduler web ui bar graphs for used capacity wrong (tgraves via bobby)

Modified:
    hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt
    hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueue.java
    hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueUtils.java
    hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java
    hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/LeafQueue.java
    hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/ParentQueue.java
    hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/CapacitySchedulerPage.java
    hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/CapacitySchedulerQueueInfo.java
    hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestParentQueue.java
    hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesCapacitySched.java
    hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-site/src/site/apt/ResourceManagerRest.apt.vm

Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt?rev=1294814&r1=1294813&r2=1294814&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt Tue Feb 28 20:13:16 2012
@@ -120,9 +120,12 @@ Release 0.23.2 - UNRELEASED
     MAPREDUCE-3922. Fixed build to not compile 32bit container-executor binary
     by default on all platforms. (Hitesh Shah via vinodkv)
 
-    MAPREDUCE-3790 Broken pipe on streaming job can lead to truncated output for
+    MAPREDUCE-3790. Broken pipe on streaming job can lead to truncated output for
     a successful job (Jason Lowe via bobby)
 
+    MAPREDUCE-3816. capacity scheduler web ui bar graphs for used capacity wrong
+    (tgraves via bobby)
+
 Release 0.23.1 - 2012-02-17 
 
   NEW FEATURES

Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueue.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueue.java?rev=1294814&r1=1294813&r2=1294814&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueue.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueue.java Tue Feb 28 20:13:16 2012
@@ -91,10 +91,16 @@ extends org.apache.hadoop.yarn.server.re
   public float getAbsoluteMaximumCapacity();
   
   /**
-   * Get the currently utilized capacity of the queue 
-   * relative to it's parent queue.
-   * @return the currently utilized capacity of the queue 
-   *         relative to it's parent queue
+   * Get the current absolute used capacity of the queue
+   * relative to the entire cluster.
+   * @return queue absolute used capacity
+   */
+  public float getAbsoluteUsedCapacity();
+
+  /**
+   * Get the current used capacity of the queue
+   * and it's children (if any).
+   * @return queue used capacity
    */
   public float getUsedCapacity();
   
@@ -105,6 +111,12 @@ extends org.apache.hadoop.yarn.server.re
   public void setUsedCapacity(float usedCapacity);
   
   /**
+   * Set absolute used capacity of the queue.
+   * @param absUsedCapacity absolute used capacity of the queue
+   */
+  public void setAbsoluteUsedCapacity(float absUsedCapacity);
+
+  /**
    * Get the currently utilized resources in the cluster 
    * by the queue and children (if any).
    * @return used resources by the queue and it's children 
@@ -112,21 +124,6 @@ extends org.apache.hadoop.yarn.server.re
   public Resource getUsedResources();
   
   /**
-   * Get the current <em>utilization</em> of the queue 
-   * and it's children (if any).
-   * Utilization is defined as the ratio of 
-   * <em>used-capacity over configured-capacity</em> of the queue.
-   * @return queue utilization
-   */
-  public float getUtilization();
-  
-  /**
-   * Get the current <em>utilization</em> of the queue.
-   * @param utilization queue utilization
-   */
-  public void setUtilization(float utilization);
-  
-  /**
    * Get the current run-state of the queue
    * @return current run-state
    */

Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueUtils.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueUtils.java?rev=1294814&r1=1294813&r2=1294814&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueUtils.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueUtils.java Tue Feb 28 20:13:16 2012
@@ -23,21 +23,25 @@ import org.apache.hadoop.yarn.server.res
 
 class CSQueueUtils {
   
+  final static float EPSILON = 0.0001f;
+  
   public static void checkMaxCapacity(String queueName, 
       float capacity, float maximumCapacity) {
-    if (maximumCapacity < 0.0f || maximumCapacity > 1.0f || 
-        maximumCapacity < capacity) {
+    if (maximumCapacity < 0.0f || maximumCapacity > 1.0f) {
       throw new IllegalArgumentException(
           "Illegal value  of maximumCapacity " + maximumCapacity + 
           " used in call to setMaxCapacity for queue " + queueName);
     }
-    if (maximumCapacity < capacity) {
-      throw new IllegalArgumentException(
-          "Illegal call to setMaxCapacity. " +
-          "Queue '" + queueName + "' has " +
-          "capacity (" + capacity + ") greater than " + 
-          "maximumCapacity (" + maximumCapacity + ")" );
     }
+
+  public static void checkAbsoluteCapacities(String queueName,
+      float absCapacity, float absMaxCapacity) {
+    if (absMaxCapacity < (absCapacity - EPSILON)) {
+      throw new IllegalArgumentException("Illegal call to setMaxCapacity. "
+          + "Queue '" + queueName + "' has " + "an absolute capacity (" + absCapacity
+          + ") greater than " + "its absolute maximumCapacity (" + absMaxCapacity
+          + ")");
+  }
   }
 
   public static float computeAbsoluteMaximumCapacity(
@@ -75,18 +79,16 @@ class CSQueueUtils {
     final int usedMemory = childQueue.getUsedResources().getMemory();
     
     float queueLimit = 0.0f;
-    float utilization = 0.0f;
+    float absoluteUsedCapacity = 0.0f;
     float usedCapacity = 0.0f;
     if (clusterMemory > 0) {
       queueLimit = clusterMemory * childQueue.getAbsoluteCapacity();
-      final float parentAbsoluteCapacity = 
-          (parentQueue == null) ? 1.0f : parentQueue.getAbsoluteCapacity();
-      utilization = (usedMemory / queueLimit);
-      usedCapacity = (usedMemory / (clusterMemory * parentAbsoluteCapacity));
+      absoluteUsedCapacity = ((float)usedMemory / (float)clusterMemory);
+      usedCapacity = (usedMemory / queueLimit);
     }
     
-    childQueue.setUtilization(utilization);
     childQueue.setUsedCapacity(usedCapacity);
+    childQueue.setAbsoluteUsedCapacity(absoluteUsedCapacity);
     
     int available = 
         Math.max((roundUp(minimumAllocation, (int)queueLimit) - usedMemory), 0); 

Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java?rev=1294814&r1=1294813&r2=1294814&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CapacityScheduler.java Tue Feb 28 20:13:16 2012
@@ -91,9 +91,9 @@ implements ResourceScheduler, CapacitySc
   static final Comparator<CSQueue> queueComparator = new Comparator<CSQueue>() {
     @Override
     public int compare(CSQueue q1, CSQueue q2) {
-      if (q1.getUtilization() < q2.getUtilization()) {
+      if (q1.getUsedCapacity() < q2.getUsedCapacity()) {
         return -1;
-      } else if (q1.getUtilization() > q2.getUtilization()) {
+      } else if (q1.getUsedCapacity() > q2.getUsedCapacity()) {
         return 1;
       }
 

Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/LeafQueue.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/LeafQueue.java?rev=1294814&r1=1294813&r2=1294814&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/LeafQueue.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/LeafQueue.java Tue Feb 28 20:13:16 2012
@@ -80,6 +80,7 @@ public class LeafQueue implements CSQueu
   private float absoluteCapacity;
   private float maximumCapacity;
   private float absoluteMaxCapacity;
+  private float absoluteUsedCapacity = 0.0f;
   private int userLimit;
   private float userLimitFactor;
 
@@ -91,7 +92,6 @@ public class LeafQueue implements CSQueu
   private int maxActiveApplicationsPerUser;
   
   private Resource usedResources = Resources.createResource(0);
-  private float utilization = 0.0f;
   private float usedCapacity = 0.0f;
   private volatile int numContainers;
 
@@ -210,9 +210,11 @@ public class LeafQueue implements CSQueu
   {
     // Sanity check
     CSQueueUtils.checkMaxCapacity(getQueueName(), capacity, maximumCapacity);
+    float absCapacity = parent.getAbsoluteCapacity() * capacity;
+    CSQueueUtils.checkAbsoluteCapacities(getQueueName(), absCapacity, absoluteMaxCapacity);
 
     this.capacity = capacity; 
-    this.absoluteCapacity = parent.getAbsoluteCapacity() * capacity;
+    this.absoluteCapacity = absCapacity;
 
     this.maximumCapacity = maximumCapacity;
     this.absoluteMaxCapacity = absoluteMaxCapacity;
@@ -274,12 +276,11 @@ public class LeafQueue implements CSQueu
         "(int)(maxActiveApplications * (userLimit / 100.0f) * " +
         "userLimitFactor)," +
         "1) ]" + "\n" +
-        "utilization = " + utilization +
-        " [= usedResourcesMemory / " +
-        "(clusterResourceMemory * absoluteCapacity)]" + "\n" +
         "usedCapacity = " + usedCapacity +
         " [= usedResourcesMemory / " +
-        "(clusterResourceMemory * parent.absoluteCapacity)]" + "\n" +
+        "(clusterResourceMemory * absoluteCapacity)]" + "\n" +
+        "absoluteUsedCapacity = " + absoluteUsedCapacity +
+        " [= usedResourcesMemory / clusterResourceMemory]" + "\n" +
         "maxAMResourcePercent = " + maxAMResourcePercent +
         " [= configuredMaximumAMResourcePercent ]" + "\n" +
         "minimumAllocationFactor = " + minimumAllocationFactor +
@@ -314,6 +315,11 @@ public class LeafQueue implements CSQueu
   }
 
   @Override
+  public synchronized float getAbsoluteUsedCapacity() {
+    return absoluteUsedCapacity;
+  }
+
+  @Override
   public CSQueue getParent() {
     return parent;
   }
@@ -384,23 +390,20 @@ public class LeafQueue implements CSQueu
   }
 
   @Override
-  public synchronized float getUtilization() {
-    return utilization;
-  }
-
-  @Override
   public List<CSQueue> getChildQueues() {
     return null;
   }
 
-  public synchronized void setUtilization(float utilization) {
-    this.utilization = utilization;
-  }
-
+  @Override
   public synchronized void setUsedCapacity(float usedCapacity) {
     this.usedCapacity = usedCapacity;
   }
 
+  @Override
+  public synchronized void setAbsoluteUsedCapacity(float absUsedCapacity) {
+    this.absoluteUsedCapacity = absUsedCapacity;
+  }
+
   /**
    * Set maximum capacity - used only for testing.
    * @param maximumCapacity new max capacity
@@ -408,10 +411,11 @@ public class LeafQueue implements CSQueu
   synchronized void setMaxCapacity(float maximumCapacity) {
     // Sanity check
     CSQueueUtils.checkMaxCapacity(getQueueName(), capacity, maximumCapacity);
+    float absMaxCapacity = CSQueueUtils.computeAbsoluteMaximumCapacity(maximumCapacity, parent);
+    CSQueueUtils.checkAbsoluteCapacities(getQueueName(), absoluteCapacity, absMaxCapacity);
     
     this.maximumCapacity = maximumCapacity;
-    this.absoluteMaxCapacity = 
-        CSQueueUtils.computeAbsoluteMaximumCapacity(maximumCapacity, parent);
+    this.absoluteMaxCapacity = absMaxCapacity;
   }
   
   /**
@@ -516,7 +520,7 @@ public class LeafQueue implements CSQueu
         "absoluteCapacity=" + absoluteCapacity + ", " + 
         "usedResources=" + usedResources.getMemory() + "MB, " + 
         "usedCapacity=" + getUsedCapacity() + ", " + 
-        "utilization=" + getUtilization() + ", " + 
+        "absoluteUsedCapacity=" + getAbsoluteUsedCapacity() + ", " +
         "numApps=" + getNumApplications() + ", " + 
         "numContainers=" + getNumContainers();  
   }
@@ -1228,7 +1232,8 @@ public class LeafQueue implements CSQueu
           " container=" + container + 
           " containerId=" + container.getId() + 
           " queue=" + this + 
-          " util=" + getUtilization() + 
+          " usedCapacity=" + getUsedCapacity() +
+          " absoluteUsedCapacity=" + getAbsoluteUsedCapacity() +
           " used=" + usedResources + 
           " cluster=" + clusterResource);
 
@@ -1241,7 +1246,8 @@ public class LeafQueue implements CSQueu
           " application=" + application.getApplicationId() +
           " resource=" + request.getCapability() + 
           " queue=" + this.toString() + 
-          " util=" + getUtilization() + 
+          " usedCapacity=" + getUsedCapacity() +
+          " absoluteUsedCapacity=" + getAbsoluteUsedCapacity() +
           " used=" + usedResources + 
           " cluster=" + clusterResource);
 
@@ -1307,7 +1313,8 @@ public class LeafQueue implements CSQueu
             " container=" + container +
             " resource=" + container.getResource() +
         		" queue=" + this + 
-            " util=" + getUtilization() + 
+            " usedCapacity=" + getUsedCapacity() +
+            " absoluteUsedCapacity=" + getAbsoluteUsedCapacity() +
             " used=" + usedResources + 
             " cluster=" + clusterResource);
       }

Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/ParentQueue.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/ParentQueue.java?rev=1294814&r1=1294813&r2=1294814&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/ParentQueue.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/ParentQueue.java Tue Feb 28 20:13:16 2012
@@ -67,9 +67,9 @@ public class ParentQueue implements CSQu
   private float maximumCapacity;
   private float absoluteCapacity;
   private float absoluteMaxCapacity;
+  private float absoluteUsedCapacity = 0.0f;
 
   private float usedCapacity = 0.0f;
-  private float utilization = 0.0f;
 
   private final Set<CSQueue> childQueues;
   private final Comparator<CSQueue> queueComparator;
@@ -158,9 +158,11 @@ public class ParentQueue implements CSQu
   ) {
     // Sanity check
     CSQueueUtils.checkMaxCapacity(getQueueName(), capacity, maximumCapacity);
+    CSQueueUtils.checkAbsoluteCapacities(getQueueName(), absoluteCapacity, absoluteMaxCapacity);
 
     this.capacity = capacity;
     this.absoluteCapacity = absoluteCapacity;
+
     this.maximumCapacity = maximumCapacity;
     this.absoluteMaxCapacity = absoluteMaxCapacity;
 
@@ -244,6 +246,11 @@ public class ParentQueue implements CSQu
   }
 
   @Override
+  public synchronized float getAbsoluteUsedCapacity() {
+    return absoluteUsedCapacity;
+  }
+
+  @Override
   public float getMaximumCapacity() {
     return maximumCapacity;
   }
@@ -265,11 +272,6 @@ public class ParentQueue implements CSQu
   }
   
   @Override
-  public synchronized float getUtilization() {
-    return utilization;
-  }
-
-  @Override
   public synchronized List<CSQueue> getChildQueues() {
     return new ArrayList<CSQueue>(childQueues);
   }
@@ -351,7 +353,6 @@ public class ParentQueue implements CSQu
         "absoluteCapacity=" + absoluteCapacity + ", " +
         "usedResources=" + usedResources.getMemory() + "MB, " + 
         "usedCapacity=" + getUsedCapacity() + ", " + 
-        "utilization=" + getUtilization() + ", " +
         "numApps=" + getNumApplications() + ", " + 
         "numContainers=" + getNumContainers();
   }
@@ -490,12 +491,14 @@ public class ParentQueue implements CSQu
         " #applications: " + getNumApplications());
   }
   
+  @Override
   public synchronized void setUsedCapacity(float usedCapacity) {
     this.usedCapacity = usedCapacity;
   }
   
-  public synchronized void setUtilization(float utilization) {
-    this.utilization = utilization;
+  @Override
+  public synchronized void setAbsoluteUsedCapacity(float absUsedCapacity) {
+    this.absoluteUsedCapacity = absUsedCapacity;
   }
 
   /**
@@ -505,10 +508,11 @@ public class ParentQueue implements CSQu
   synchronized void setMaxCapacity(float maximumCapacity) {
     // Sanity check
     CSQueueUtils.checkMaxCapacity(getQueueName(), capacity, maximumCapacity);
+    float absMaxCapacity = CSQueueUtils.computeAbsoluteMaximumCapacity(maximumCapacity, parent);
+    CSQueueUtils.checkAbsoluteCapacities(getQueueName(), absoluteCapacity, absMaxCapacity);
     
     this.maximumCapacity = maximumCapacity;
-    this.absoluteMaxCapacity = 
-        CSQueueUtils.computeAbsoluteMaximumCapacity(maximumCapacity, parent);
+    this.absoluteMaxCapacity = absMaxCapacity;
   }
 
   @Override
@@ -545,7 +549,8 @@ public class ParentQueue implements CSQu
         
         LOG.info("assignedContainer" +
             " queue=" + getQueueName() + 
-            " util=" + getUtilization() + 
+            " usedCapacity=" + getUsedCapacity() +
+            " absoluteUsedCapacity=" + getAbsoluteUsedCapacity() +
             " used=" + usedResources + 
             " cluster=" + clusterResource);
 
@@ -556,7 +561,8 @@ public class ParentQueue implements CSQu
       if (LOG.isDebugEnabled()) {
         LOG.debug("ParentQ=" + getQueueName()
           + " assignedSoFarInThisIteration=" + assignment.getResource()
-          + " utilization=" + getUtilization());
+          + " usedCapacity=" + getUsedCapacity()
+          + " absoluteUsedCapacity=" + getAbsoluteUsedCapacity());
       }
 
       // Do not assign more than one container if this isn't the root queue
@@ -639,7 +645,7 @@ public class ParentQueue implements CSQu
   String getChildQueuesToPrint() {
     StringBuilder sb = new StringBuilder();
     for (CSQueue q : childQueues) {
-      sb.append(q.getQueuePath() + "(" + q.getUtilization() + "), ");
+      sb.append(q.getQueuePath() + "(" + q.getUsedCapacity() + "), ");
     }
     return sb.toString();
   }
@@ -663,7 +669,8 @@ public class ParentQueue implements CSQu
 
         LOG.info("completedContainer" +
             " queue=" + getQueueName() + 
-            " util=" + getUtilization() + 
+            " usedCapacity=" + getUsedCapacity() +
+            " absoluteUsedCapacity=" + getAbsoluteUsedCapacity() +
             " used=" + usedResources + 
             " cluster=" + clusterResource);
       }

Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/CapacitySchedulerPage.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/CapacitySchedulerPage.java?rev=1294814&r1=1294813&r2=1294814&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/CapacitySchedulerPage.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/CapacitySchedulerPage.java Tue Feb 28 20:13:16 2012
@@ -67,12 +67,9 @@ class CapacitySchedulerPage extends RmVi
     protected void render(Block html) {
       ResponseInfo ri = info("\'" + lqinfo.getQueuePath().substring(5) + "\' Queue Status").
           _("Queue State:", lqinfo.getQueueState()).
-          _("Capacity:", percent(lqinfo.getCapacity() / 100)).
-          _("Max Capacity:", percent(lqinfo.getMaxCapacity() / 100)).
           _("Used Capacity:", percent(lqinfo.getUsedCapacity() / 100)).
           _("Absolute Capacity:", percent(lqinfo.getAbsoluteCapacity() / 100)).
           _("Absolute Max Capacity:", percent(lqinfo.getAbsoluteMaxCapacity() / 100)).
-          _("Utilization:", percent(lqinfo.getUtilization() / 100)).
           _("Used Resources:", lqinfo.getUsedResources().toString()).
           _("Num Active Applications:", Integer.toString(lqinfo.getNumActiveApplications())).
           _("Num Pending Applications:", Integer.toString(lqinfo.getNumPendingApplications())).
@@ -81,8 +78,10 @@ class CapacitySchedulerPage extends RmVi
           _("Max Applications Per User:", Integer.toString(lqinfo.getMaxApplicationsPerUser())).
           _("Max Active Applications:", Integer.toString(lqinfo.getMaxActiveApplications())).
           _("Max Active Applications Per User:", Integer.toString(lqinfo.getMaxActiveApplicationsPerUser())).
-          _("User Limit:", Integer.toString(lqinfo.getUserLimit()) + "%").
-          _("User Limit Factor:", String.format("%.1f", lqinfo.getUserLimitFactor()));
+          _("Configured Capacity:", percent(lqinfo.getCapacity() / 100)).
+          _("Configured Max Capacity:", percent(lqinfo.getMaxCapacity() / 100)).
+          _("Configured Minimum User Limit Percent:", Integer.toString(lqinfo.getUserLimit()) + "%").
+          _("Configured User Limit Factor:", String.format("%.1f", lqinfo.getUserLimitFactor()));
 
       html._(InfoBlock.class);
 
@@ -103,20 +102,20 @@ class CapacitySchedulerPage extends RmVi
       ArrayList<CapacitySchedulerQueueInfo> subQueues =
           (csqinfo.qinfo == null) ? csqinfo.csinfo.getSubQueues()
               : csqinfo.qinfo.getSubQueues();
-      UL<Hamlet> ul = html.ul();
+      UL<Hamlet> ul = html.ul("#pq");
       for (CapacitySchedulerQueueInfo info : subQueues) {
         float used = info.getUsedCapacity() / 100;
-        float set = info.getCapacity() / 100;
-        float max = info.getMaxCapacity() / 100;
+        float absCap = info.getAbsoluteCapacity() / 100;
+        float absMaxCap = info.getAbsoluteMaxCapacity() / 100;
+        float absUsedCap = info.getAbsoluteUsedCapacity() / 100;
         LI<UL<Hamlet>> li = ul.
           li().
-            a(_Q).$style(width(max * Q_MAX_WIDTH)).
-              $title(join("capacity:", percent(set), " used:", percent(used),
-                          " max capacity:", percent(max))).
-              span().$style(join(Q_GIVEN, ";font-size:1px;", width(set/max))).
+            a(_Q).$style(width(absMaxCap * Q_MAX_WIDTH)).
+              $title(join("Absolute Capacity:", percent(absCap))).
+              span().$style(join(Q_GIVEN, ";font-size:1px;", width(absCap/absMaxCap))).
                 _('.')._().
-              span().$style(join(width(used*set/max),
-                ";font-size:1px;left:0%;", used > 1 ? Q_OVER : Q_UNDER)).
+              span().$style(join(width(absUsedCap/absMaxCap),
+                ";font-size:1px;left:0%;", absUsedCap > absCap ? Q_OVER : Q_UNDER)).
                 _('.')._().
               span(".q", info.getQueuePath().substring(5))._().
             span().$class("qstats").$style(left(Q_STATS_POS)).
@@ -180,7 +179,6 @@ class CapacitySchedulerPage extends RmVi
           _().
           li().
             a(_Q).$style(width(Q_MAX_WIDTH)).
-              $title(join("used:", percent(used))).
               span().$style(join(width(used), ";left:0%;",
                   used > 1 ? Q_OVER : Q_UNDER))._(".")._().
               span(".q", "root")._().
@@ -211,8 +209,7 @@ class CapacitySchedulerPage extends RmVi
         _("$(function() {",
           "  $('#cs a span').addClass('ui-corner-all').css('position', 'absolute');",
           "  $('#cs').bind('loaded.jstree', function (e, data) {",
-          "    data.inst.open_all();",
-          "    data.inst.close_node('#lq', true);",
+          "    data.inst.open_node('#pq', true);",
           "   }).",
           "    jstree({",
           "    core: { animation: 188, html_titles: true },",

Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/CapacitySchedulerQueueInfo.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/CapacitySchedulerQueueInfo.java?rev=1294814&r1=1294813&r2=1294814&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/CapacitySchedulerQueueInfo.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/CapacitySchedulerQueueInfo.java Tue Feb 28 20:13:16 2012
@@ -44,7 +44,7 @@ public class CapacitySchedulerQueueInfo 
   protected float maxCapacity;
   protected float absoluteCapacity;
   protected float absoluteMaxCapacity;
-  protected float utilization;
+  protected float absoluteUsedCapacity;
   protected int numApplications;
   protected String usedResources;
   protected String queueName;
@@ -66,7 +66,7 @@ public class CapacitySchedulerQueueInfo 
 
     absoluteCapacity = cap(q.getAbsoluteCapacity(), 0f, 1f) * 100;
     absoluteMaxCapacity = cap(q.getAbsoluteMaximumCapacity(), 0f, 1f) * 100;
-    utilization = q.getUtilization() * 100;
+    absoluteUsedCapacity = cap(q.getAbsoluteUsedCapacity(), 0f, 1f) * 100;
     numApplications = q.getNumApplications();
     usedResources = q.getUsedResources().toString();
     queueName = q.getQueueName();
@@ -93,8 +93,8 @@ public class CapacitySchedulerQueueInfo 
     return absoluteMaxCapacity;
   }
 
-  public float getUtilization() {
-    return utilization;
+  public float getAbsoluteUsedCapacity() {
+    return absoluteUsedCapacity;
   }
 
   public int getNumApplications() {

Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestParentQueue.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestParentQueue.java?rev=1294814&r1=1294813&r2=1294814&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestParentQueue.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestParentQueue.java Tue Feb 28 20:13:16 2012
@@ -138,15 +138,14 @@ public class TestParentQueue {
     when(queue).assignContainers(eq(clusterResource), eq(node));
   }
   
-  private float computeQueueUsedCapacity(CSQueue queue, 
+  private float computeQueueAbsoluteUsedCapacity(CSQueue queue, 
       int expectedMemory, Resource clusterResource) {
     return (
-        ((float)expectedMemory / clusterResource.getMemory()) *
-        queue.getParent().getAbsoluteCapacity()
+        ((float)expectedMemory / (float)clusterResource.getMemory())
       );
   }
   
-  private float computeQueueUtilization(CSQueue queue, 
+  private float computeQueueUsedCapacity(CSQueue queue,
       int expectedMemory, Resource clusterResource) {
     return (expectedMemory / 
         (clusterResource.getMemory() * queue.getAbsoluteCapacity()));
@@ -156,8 +155,8 @@ public class TestParentQueue {
   private void verifyQueueMetrics(CSQueue queue, 
       int expectedMemory, Resource clusterResource) {
     assertEquals(
-        computeQueueUtilization(queue, expectedMemory, clusterResource), 
-        queue.getUtilization(), 
+        computeQueueAbsoluteUsedCapacity(queue, expectedMemory, clusterResource), 
+        queue.getAbsoluteUsedCapacity(), 
         DELTA);
     assertEquals(
         computeQueueUsedCapacity(queue, expectedMemory, clusterResource), 

Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesCapacitySched.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesCapacitySched.java?rev=1294814&r1=1294813&r2=1294814&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesCapacitySched.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesCapacitySched.java Tue Feb 28 20:13:16 2012
@@ -68,7 +68,7 @@ public class TestRMWebServicesCapacitySc
     float maxCapacity;
     float absoluteCapacity;
     float absoluteMaxCapacity;
-    float utilization;
+    float absoluteUsedCapacity;
     int numApplications;
     String usedResources;
     String queueName;
@@ -252,7 +252,8 @@ public class TestRMWebServicesCapacitySc
     qi.absoluteCapacity = WebServicesTestUtils.getXmlFloat(qElem, "absoluteCapacity");
     qi.absoluteMaxCapacity =
         WebServicesTestUtils.getXmlFloat(qElem, "absoluteMaxCapacity");
-    qi.utilization = WebServicesTestUtils.getXmlFloat(qElem, "utilization");
+    qi.absoluteUsedCapacity =
+      WebServicesTestUtils.getXmlFloat(qElem, "absoluteUsedCapacity");
     qi.numApplications =
         WebServicesTestUtils.getXmlInt(qElem, "numApplications");
     qi.usedResources =
@@ -342,7 +343,7 @@ public class TestRMWebServicesCapacitySc
     qi.maxCapacity = (float) info.getDouble("maxCapacity");
     qi.absoluteCapacity = (float) info.getDouble("absoluteCapacity");
     qi.absoluteMaxCapacity = (float) info.getDouble("absoluteMaxCapacity");
-    qi.utilization = (float) info.getDouble("utilization");
+    qi.absoluteUsedCapacity = (float) info.getDouble("absoluteUsedCapacity");
     qi.numApplications = info.getInt("numApplications");
     qi.usedResources = info.getString("usedResources");
     qi.queueName = info.getString("queueName");
@@ -394,7 +395,8 @@ public class TestRMWebServicesCapacitySc
         parentAbsCapacity * (info.capacity/100), info.absoluteCapacity, 1e-3f);
     assertEquals("absoluteMaxCapacity doesn't match",
         expectAbsMaxCapacity, info.absoluteMaxCapacity, 1e-3f);
-    assertEquals("utilization doesn't match", 0, info.utilization, 1e-3f);
+    assertEquals("absoluteUsedCapacity doesn't match",
+        0, info.absoluteUsedCapacity, 1e-3f);
     assertEquals("numApplications doesn't match", 0, info.numApplications);
     assertTrue("usedResources doesn't match",
         info.usedResources.matches("memory: 0"));

Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-site/src/site/apt/ResourceManagerRest.apt.vm
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-site/src/site/apt/ResourceManagerRest.apt.vm?rev=1294814&r1=1294813&r2=1294814&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-site/src/site/apt/ResourceManagerRest.apt.vm (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-site/src/site/apt/ResourceManagerRest.apt.vm Tue Feb 28 20:13:16 2012
@@ -313,11 +313,11 @@ ResourceManager REST API's.
 *---------------+--------------+-------------------------------+
 | type | string | Scheduler type - capacityScheduler|
 *---------------+--------------+-------------------------------+
-| capacity | float | Queue capacity in percentage relative to its parent queue |
+| capacity | float | Configured queue capacity in percentage relative to its parent queue |
 *---------------+--------------+-------------------------------+
-| usedCapacity | float | Used queue capacity in percentage relative its to parent queue |
+| usedCapacity | float | Used queue capacity in percentage |
 *---------------+--------------+-------------------------------+
-| maxCapacity | float | Maximum queue capacity in percentage relative to its parent queue |
+| maxCapacity | float | Configured maximum queue capacity in percentage relative to its parent queue|
 *---------------+--------------+-------------------------------+
 | queueName | string | Name of the queue |
 *---------------+--------------+-------------------------------+
@@ -329,17 +329,17 @@ ResourceManager REST API's.
 *---------------+--------------+-------------------------------+
 || Item         || Data Type   || Description                   |
 *---------------+--------------+-------------------------------+
-| capacity | float | Queue capacity in percentage relative to its parent queue |
+| capacity | float | Configured queue capacity in percentage relative to its parent queue |
 *---------------+--------------+-------------------------------+
-| usedCapacity | float | Used queue capacity in percentage relative its to parent queue |
+| usedCapacity | float | Used queue capacity in percentage |
 *---------------+--------------+-------------------------------+
-| maxCapacity | float | Maximum queue capacity in percentage relative to its parent queue |
+| maxCapacity | float | Configured maximum queue capacity in percentage relative to its parent queue |
 *---------------+--------------+-------------------------------+
 | absoluteCapacity | float | Absolute capacity percentage this queue can use of entire cluster | 
 *---------------+--------------+-------------------------------+
 | absoluteMaxCapacity | float | Absolute maximum capacity percentage this queue can use of the entire cluster | 
 *---------------+--------------+-------------------------------+
-| utilization | float | Queue utilization percentage relative to the entire cluster |
+| absoluteUsedCapacity | float | Absolute used capacity percentage this queue is using of the entire cluster |
 *---------------+--------------+-------------------------------+
 | numApplications | int | The number of applications currently in the queue |
 *---------------+--------------+-------------------------------+
@@ -421,7 +421,7 @@ ResourceManager REST API's.
                "absoluteMaxCapacity" : 90,
                "maxActiveApplications" : 1,
                "numActiveApplications" : 0,
-               "utilization" : 0,
+               "absoluteUsedCapacity" : 0,
                "userLimit" : 100,
                "absoluteCapacity" : 70,
                "maxActiveApplicationsPerUser" : 1,
@@ -431,7 +431,7 @@ ResourceManager REST API's.
             },
             {
                "queueName" : "test",
-               "utilization" : 0,
+               "absoluteUsedCapacity" : 0,
                "absoluteCapacity" : 20,
                "usedCapacity" : 0,
                "capacity" : 20,
@@ -450,7 +450,7 @@ ResourceManager REST API's.
                      "absoluteMaxCapacity" : 16.000002,
                      "maxActiveApplications" : 1,
                      "numActiveApplications" : 0,
-                     "utilization" : 0,
+                     "absoluteUsedCapacity" : 0,
                      "userLimit" : 100,
                      "absoluteCapacity" : 12,
                      "maxActiveApplicationsPerUser" : 1,
@@ -472,7 +472,7 @@ ResourceManager REST API's.
                      "absoluteMaxCapacity" : 100,
                      "maxActiveApplications" : 1,
                      "numActiveApplications" : 0,
-                     "utilization" : 0,
+                     "absoluteUsedCapacity" : 0,
                      "userLimit" : 100,
                      "absoluteCapacity" : 8.000001,
                      "maxActiveApplicationsPerUser" : 1,
@@ -489,7 +489,7 @@ ResourceManager REST API's.
             },
             {
                "queueName" : "test2",
-               "utilization" : 0,
+               "absoluteUsedCapacity" : 0,
                "absoluteCapacity" : 10,
                "usedCapacity" : 0,
                "capacity" : 10,
@@ -508,7 +508,7 @@ ResourceManager REST API's.
                      "absoluteMaxCapacity" : 100,
                      "maxActiveApplications" : 1,
                      "numActiveApplications" : 0,
-                     "utilization" : 0,
+                     "absoluteUsedCapacity" : 0,
                      "userLimit" : 100,
                      "absoluteCapacity" : 5,
                      "maxActiveApplicationsPerUser" : 1,
@@ -530,7 +530,7 @@ ResourceManager REST API's.
                      "absoluteMaxCapacity" : 100,
                      "maxActiveApplications" : 1,
                      "numActiveApplications" : 0,
-                     "utilization" : 0,
+                     "absoluteUsedCapacity" : 0,
                      "userLimit" : 100,
                      "absoluteCapacity" : 4.0000005,
                      "maxActiveApplicationsPerUser" : 1,
@@ -552,7 +552,7 @@ ResourceManager REST API's.
                      "absoluteMaxCapacity" : 100,
                      "maxActiveApplications" : 1,
                      "numActiveApplications" : 0,
-                     "utilization" : 0,
+                     "absoluteUsedCapacity" : 0,
                      "userLimit" : 100,
                      "absoluteCapacity" : 1.0000001,
                      "maxActiveApplicationsPerUser" : 1,
@@ -609,7 +609,7 @@ ResourceManager REST API's.
       <maxCapacity>90.0</maxCapacity>
       <absoluteCapacity>70.0</absoluteCapacity>
       <absoluteMaxCapacity>90.0</absoluteMaxCapacity>
-      <utilization>0.0</utilization>
+      <absoluteUsedCapacity>0.0</absoluteUsedCapacity>
       <numApplications>0</numApplications>
       <usedResources>memory: 0</usedResources>
       <queueName>default</queueName>
@@ -630,7 +630,7 @@ ResourceManager REST API's.
       <maxCapacity>80.0</maxCapacity>
       <absoluteCapacity>20.0</absoluteCapacity>
       <absoluteMaxCapacity>80.0</absoluteMaxCapacity>
-      <utilization>0.0</utilization>
+      <absoluteUsedCapacity>0.0</absoluteUsedCapacity>
       <numApplications>0</numApplications>
       <usedResources>memory: 0</usedResources>
       <queueName>test</queueName>
@@ -641,7 +641,7 @@ ResourceManager REST API's.
         <maxCapacity>80.0</maxCapacity>
         <absoluteCapacity>12.0</absoluteCapacity>
         <absoluteMaxCapacity>16.000002</absoluteMaxCapacity>
-        <utilization>0.0</utilization>
+        <absoluteUsedCapacity>0.0</absoluteUsedCapacity>
         <numApplications>0</numApplications>
         <usedResources>memory: 0</usedResources>
         <queueName>a1</queueName>
@@ -662,7 +662,7 @@ ResourceManager REST API's.
         <maxCapacity>100.0</maxCapacity>
         <absoluteCapacity>8.000001</absoluteCapacity>
         <absoluteMaxCapacity>100.0</absoluteMaxCapacity>
-        <utilization>0.0</utilization>
+        <absoluteUsedCapacity>0.0</absoluteUsedCapacity>
         <numApplications>0</numApplications>
         <usedResources>memory: 0</usedResources>
         <queueName>a2</queueName>
@@ -684,7 +684,7 @@ ResourceManager REST API's.
       <maxCapacity>15.000001</maxCapacity>
       <absoluteCapacity>10.0</absoluteCapacity>
       <absoluteMaxCapacity>15.000001</absoluteMaxCapacity>
-      <utilization>0.0</utilization>
+      <absoluteUsedCapacity>0.0</absoluteUsedCapacity>
       <numApplications>0</numApplications>
       <usedResources>memory: 0</usedResources>
      <queueName>test2</queueName>
@@ -695,7 +695,7 @@ ResourceManager REST API's.
         <maxCapacity>100.0</maxCapacity>
         <absoluteCapacity>5.0</absoluteCapacity>
         <absoluteMaxCapacity>100.0</absoluteMaxCapacity>
-        <utilization>0.0</utilization>
+        <absoluteUsedCapacity>0.0</absoluteUsedCapacity>
         <numApplications>0</numApplications>
         <usedResources>memory: 0</usedResources>
         <queueName>A4</queueName>
@@ -716,7 +716,7 @@ ResourceManager REST API's.
         <maxCapacity>100.0</maxCapacity>
         <absoluteCapacity>4.0000005</absoluteCapacity>
         <absoluteMaxCapacity>100.0</absoluteMaxCapacity>
-        <utilization>0.0</utilization>
+        <absoluteUsedCapacity>0.0</absoluteUsedCapacity>
         <numApplications>0</numApplications>
         <usedResources>memory: 0</usedResources>
         <queueName>a3</queueName>
@@ -737,7 +737,7 @@ ResourceManager REST API's.
         <maxCapacity>100.0</maxCapacity>
         <absoluteCapacity>1.0000001</absoluteCapacity>
         <absoluteMaxCapacity>100.0</absoluteMaxCapacity>
-        <utilization>0.0</utilization>
+        <absoluteUsedCapacity>0.0</absoluteUsedCapacity>
         <numApplications>0</numApplications>
         <usedResources>memory: 0</usedResources>
         <queueName>a4</queueName>