Selaa lähdekoodia

YARN-7414. FairScheduler#getAppWeight() should be moved into FSAppAttempt#getWeight()
(Contributed by Soumabrata Chakraborty via Daniel Templeton)

Daniel Templeton 7 vuotta sitten
vanhempi
commit
b246c54749

+ 14 - 1
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FSAppAttempt.java

@@ -1304,7 +1304,20 @@ public class FSAppAttempt extends SchedulerApplicationAttempt
 
 
   @Override
   @Override
   public float getWeight() {
   public float getWeight() {
-    return scheduler.getAppWeight(this);
+    double weight = 1.0;
+
+    if (scheduler.isSizeBasedWeight()) {
+      scheduler.getSchedulerReadLock().lock();
+
+      try {
+        // Set weight based on current memory demand
+        weight = Math.log1p(getDemand().getMemorySize()) / Math.log(2);
+      } finally {
+        scheduler.getSchedulerReadLock().unlock();
+      }
+    }
+
+    return (float)weight * this.getPriority().getPriority();
   }
   }
 
 
   @Override
   @Override

+ 2 - 15
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FairScheduler.java

@@ -368,21 +368,8 @@ public class FairScheduler extends
     return rmContext.getContainerTokenSecretManager();
     return rmContext.getContainerTokenSecretManager();
   }
   }
 
 
-  public float getAppWeight(FSAppAttempt app) {
-    double weight = 1.0;
-
-    if (sizeBasedWeight) {
-      readLock.lock();
-
-      try {
-        // Set weight based on current memory demand
-        weight = Math.log1p(app.getDemand().getMemorySize()) / Math.log(2);
-      } finally {
-        readLock.unlock();
-      }
-    }
-
-    return (float)weight * app.getPriority().getPriority();
+  public boolean isSizeBasedWeight() {
+    return sizeBasedWeight;
   }
   }
 
 
   public Resource getIncrementResourceCapability() {
   public Resource getIncrementResourceCapability() {