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/07/31 21:35:39 UTC

svn commit: r1367720 - in /hadoop/common/branches/branch-2/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/hadoop...

Author: bobby
Date: Tue Jul 31 19:35:39 2012
New Revision: 1367720

URL: http://svn.apache.org/viewvc?rev=1367720&view=rev
Log:
svn merge -c 1367719 FIXES: MAPREDUCE-4492. Configuring total queue capacity between 100.5 and 99.5 at perticular level is sucessfull (Mayank Bansal via bobby)

Modified:
    hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt
    hadoop/common/branches/branch-2/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-2/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

Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt?rev=1367720&r1=1367719&r2=1367720&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt (original)
+++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt Tue Jul 31 19:35:39 2012
@@ -650,6 +650,9 @@ Release 0.23.3 - UNRELEASED
     MAPREDUCE-4493. Distibuted Cache Compatability Issues (Robert Evans
     via tgraves)
 
+    MAPREDUCE-4492. Configuring total queue capacity between 100.5 and 99.5 at
+    perticular level is sucessfull (Mayank Bansal via bobby)
+
 Release 0.23.2 - UNRELEASED
 
   INCOMPATIBLE CHANGES

Modified: hadoop/common/branches/branch-2/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-2/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=1367720&r1=1367719&r2=1367720&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/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-2/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 Jul 31 19:35:39 2012
@@ -193,7 +193,7 @@ public class ParentQueue implements CSQu
         ", acls=" + aclsString);
   }
 
-  private static float PRECISION = 0.005f; // 0.05% precision
+  private static float PRECISION = 0.0005f; // 0.05% precision
   void setChildQueues(Collection<CSQueue> childQueues) {
     
     // Validate

Modified: hadoop/common/branches/branch-2/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-2/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=1367720&r1=1367719&r2=1367720&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/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-2/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 Jul 31 19:35:39 2012
@@ -34,6 +34,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import junit.framework.Assert;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.security.UserGroupInformation;
@@ -270,6 +272,61 @@ public class TestParentQueue {
     verifyQueueMetrics(b, 9*GB, clusterResource);
   }
 
+  @Test
+  public void testSingleLevelQueuesPrecision() throws Exception {
+    // Setup queue configs
+    setupSingleLevelQueues(csConf);
+    final String Q_A = CapacitySchedulerConfiguration.ROOT + "." + "a";
+    csConf.setCapacity(Q_A, 30);
+    final String Q_B = CapacitySchedulerConfiguration.ROOT + "." + "b";
+    csConf.setCapacity(Q_B, 70.5F);
+
+    Map<String, CSQueue> queues = new HashMap<String, CSQueue>();
+    boolean exceptionOccured = false;
+    try {
+      CapacityScheduler.parseQueue(csContext, csConf, null,
+          CapacitySchedulerConfiguration.ROOT, queues, queues,
+          CapacityScheduler.queueComparator,
+          CapacityScheduler.applicationComparator, TestUtils.spyHook);
+    } catch (IllegalArgumentException ie) {
+      exceptionOccured = true;
+    }
+    if (!exceptionOccured) {
+      Assert.fail("Capacity is more then 100% so should be failed.");
+    }
+    csConf.setCapacity(Q_A, 30);
+    csConf.setCapacity(Q_B, 70);
+    exceptionOccured = false;
+    queues.clear();
+    try {
+      CapacityScheduler.parseQueue(csContext, csConf, null,
+          CapacitySchedulerConfiguration.ROOT, queues, queues,
+          CapacityScheduler.queueComparator,
+          CapacityScheduler.applicationComparator, TestUtils.spyHook);
+    } catch (IllegalArgumentException ie) {
+      exceptionOccured = true;
+    }
+    if (exceptionOccured) {
+      Assert.fail("Capacity is 100% so should not be failed.");
+    }
+    csConf.setCapacity(Q_A, 30);
+    csConf.setCapacity(Q_B, 70.005F);
+    exceptionOccured = false;
+    queues.clear();
+    try {
+      CapacityScheduler.parseQueue(csContext, csConf, null,
+          CapacitySchedulerConfiguration.ROOT, queues, queues,
+          CapacityScheduler.queueComparator,
+          CapacityScheduler.applicationComparator, TestUtils.spyHook);
+    } catch (IllegalArgumentException ie) {
+      exceptionOccured = true;
+    }
+    if (exceptionOccured) {
+      Assert
+          .fail("Capacity is under PRECISION which is .05% so should not be failed.");
+    }
+  }
+  
   private static final String C = "c";
   private static final String C1 = "c1";
   private static final String C11 = "c11";