Repository: hadoop Updated Branches: refs/heads/branch-2 e6b4714d0 -> 865931506
YARN-2768. Avoid cloning Resource in FSAppAttempt#updateDemand. (Hong Zhiguo via kasha) (cherry picked from commit 5205a330b387d2e133ee790b9fe7d5af3cd8bccc) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/86593150 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/86593150 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/86593150 Branch: refs/heads/branch-2 Commit: 86593150621c246b323c6488f1aabc46cc55c438 Parents: e6b4714 Author: Karthik Kambatla <[email protected]> Authored: Wed Jul 29 09:42:32 2015 -0700 Committer: Karthik Kambatla <[email protected]> Committed: Wed Jul 29 09:42:57 2015 -0700 ---------------------------------------------------------------------- hadoop-yarn-project/CHANGES.txt | 3 +++ .../apache/hadoop/yarn/util/resource/Resources.java | 14 +++++++++++++- .../resourcemanager/scheduler/fair/FSAppAttempt.java | 4 ++-- 3 files changed, 18 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/86593150/hadoop-yarn-project/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index 536169c..5c356b6 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -326,6 +326,9 @@ Release 2.8.0 - UNRELEASED YARN-3259. FairScheduler: Trigger fairShare updates on node events. (Anubhav Dhoot via kasha) + YARN-2768. Avoid cloning Resource in FSAppAttempt#updateDemand. + (Hong Zhiguo via kasha) + BUG FIXES YARN-3197. Confusing log generated by CapacityScheduler. (Varun Saxena http://git-wip-us.apache.org/repos/asf/hadoop/blob/86593150/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/resource/Resources.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/resource/Resources.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/resource/Resources.java index 472811a..503d456 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/resource/Resources.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/resource/Resources.java @@ -150,7 +150,19 @@ public class Resources { public static Resource multiply(Resource lhs, double by) { return multiplyTo(clone(lhs), by); } - + + /** + * Multiply @param rhs by @param by, and add the result to @param lhs + * without creating any new {@link Resource} object + */ + public static Resource multiplyAndAddTo( + Resource lhs, Resource rhs, double by) { + lhs.setMemory(lhs.getMemory() + (int)(rhs.getMemory() * by)); + lhs.setVirtualCores(lhs.getVirtualCores() + + (int)(rhs.getVirtualCores() * by)); + return lhs; + } + public static Resource multiplyAndNormalizeUp( ResourceCalculator calculator,Resource lhs, double by, Resource factor) { return calculator.multiplyAndNormalizeUp(lhs, by, factor); http://git-wip-us.apache.org/repos/asf/hadoop/blob/86593150/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 ---------------------------------------------------------------------- diff --git a/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 b/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 index 7419446..cfec915 100644 --- a/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 +++ b/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 @@ -801,8 +801,8 @@ public class FSAppAttempt extends SchedulerApplicationAttempt synchronized (this) { for (Priority p : getPriorities()) { for (ResourceRequest r : getResourceRequests(p).values()) { - Resource total = Resources.multiply(r.getCapability(), r.getNumContainers()); - Resources.addTo(demand, total); + Resources.multiplyAndAddTo(demand, + r.getCapability(), r.getNumContainers()); } } }
