Browse Source

YARN-7513. Remove the scheduler lock in FSAppAttempt.getWeight() (Contributed by Wilfred Spiegelenburg)

yufei 7 years ago
parent
commit
03c311eae3

+ 4 - 10
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,20 +1304,14 @@ public class FSAppAttempt extends SchedulerApplicationAttempt
 
   @Override
   public float getWeight() {
-    double weight = 1.0;
+    float weight = 1.0F;
 
     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();
-      }
+      // Set weight based on current memory demand
+      weight = (float)(Math.log1p(demand.getMemorySize()) / Math.log(2));
     }
 
-    return (float)weight * this.getPriority().getPriority();
+    return weight * appPriority.getPriority();
   }
 
   @Override