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 ac...@apache.org on 2011/05/16 09:18:13 UTC
svn commit: r1103628 - in /hadoop/mapreduce/branches/MR-279: CHANGES.txt
yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/ParentQueue.java
Author: acmurthy
Date: Mon May 16 07:18:13 2011
New Revision: 1103628
URL: http://svn.apache.org/viewvc?rev=1103628&view=rev
Log:
Fix calculation of maximum capacity in ParentQueue to use its parent's absolute-capacity rather than its own absolute-capacity.
Modified:
hadoop/mapreduce/branches/MR-279/CHANGES.txt
hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/ParentQueue.java
Modified: hadoop/mapreduce/branches/MR-279/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/CHANGES.txt?rev=1103628&r1=1103627&r2=1103628&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/CHANGES.txt (original)
+++ hadoop/mapreduce/branches/MR-279/CHANGES.txt Mon May 16 07:18:13 2011
@@ -4,6 +4,9 @@ Trunk (unreleased changes)
MAPREDUCE-279
+ Fix calculation of maximum capacity in ParentQueue to use its parent's
+ absolute-capacity rather than its own absolute-capacity. (acmurthy)
+
Fixing a bug in JobIDPbImpl that's causing AM to crash randomly. (vinodkv)
Fix calculation of maximum capacity to use parent's absolute-capacity
Modified: hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/ParentQueue.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/ParentQueue.java?rev=1103628&r1=1103627&r2=1103628&view=diff
==============================================================================
--- hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/ParentQueue.java (original)
+++ hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/ParentQueue.java Mon May 16 07:18:13 2011
@@ -119,7 +119,7 @@ public class ParentQueue implements Queu
cs.getConfiguration().getMaximumCapacity(getQueuePath());
float absoluteMaxCapacity =
(maximumCapacity == CapacitySchedulerConfiguration.UNDEFINED) ?
- Float.MAX_VALUE : (parentAbsoluteCapacity * maximumCapacity) / 100;
+ 1000000000f : (parentAbsoluteCapacity * maximumCapacity) / 100;
QueueState state = cs.getConfiguration().getState(getQueuePath());
@@ -511,7 +511,7 @@ public class ParentQueue implements Queu
getQueueName());
// Are we over maximum-capacity for this queue?
- if (!assignToQueue()) {
+ if (!assignToQueue(clusterResource)) {
LOG.info(getQueueName() +
" current-capacity (" + getUtilization() + ") > max-capacity (" +
absoluteMaxCapacity + ")");
@@ -553,8 +553,21 @@ public class ParentQueue implements Queu
return assigned;
}
- private synchronized boolean assignToQueue() {
- return (getUtilization() < absoluteMaxCapacity);
+ private synchronized boolean assignToQueue(Resource clusterResource) {
+ // Check how of the parent's capacity we are currently using...
+ float parentAbsoluteCapacity =
+ (parent == null) ? 100.0f : parent.getAbsoluteCapacity();
+ float currentCapacity =
+ (float)(usedResources.getMemory()) /
+ (clusterResource.getMemory() * parentAbsoluteCapacity);
+ if (currentCapacity > absoluteMaxCapacity) {
+ LOG.info(getQueueName() +
+ " current-capacity (" + currentCapacity + ") +" +
+ " > max-capacity (" + absoluteMaxCapacity + ")");
+ return false;
+ }
+ return true;
+
}
private boolean canAssign(NodeInfo node) {