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

This commit is contained in:
Daniel Templeton 2017-10-28 09:13:13 -07:00
parent 9c5c68745e
commit e62bbbca7a

View File

@ -369,19 +369,22 @@ public void update() {
}
public float getAppWeight(FSAppAttempt app) {
try {
readLock.lock();
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);
}
return (float)weight * app.getPriority().getPriority();
} finally {
readLock.unlock();
}
}
return (float)weight * app.getPriority().getPriority();
}
public Resource getIncrementResourceCapability() {
return incrAllocation;
}