YARN-7397. Reduce lock contention in FairScheduler#getAppWeight()

(cherry picked from commit e62bbbca7a)
This commit is contained in:
Daniel Templeton 2017-10-28 09:13:13 -07:00
parent c818c85238
commit ab93bf5b00
1 changed files with 9 additions and 6 deletions

View File

@ -369,17 +369,20 @@ public class FairScheduler extends
}
public float getAppWeight(FSAppAttempt app) {
try {
double weight = 1.0;
if (sizeBasedWeight) {
readLock.lock();
double weight = 1.0;
if (sizeBasedWeight) {
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();
} finally {
readLock.unlock();
}
return (float)weight * app.getPriority().getPriority();
}
public Resource getIncrementResourceCapability() {