Repository: hadoop Updated Branches: refs/heads/branch-2.6 89e90becf -> 319790432
YARN-4690. Skip object allocation in FSAppAttempt#getResourceUsage when possible (Ming Ma via sjlee) (cherry picked from commit 7de70680fe44967e2afc92ba4c92f8e7afa7b151) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/31979043 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/31979043 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/31979043 Branch: refs/heads/branch-2.6 Commit: 319790432d01f7a86bb7235d406a32ac4230b840 Parents: 89e90be Author: Sangjin Lee <sj...@apache.org> Authored: Wed Feb 17 20:55:21 2016 -0800 Committer: Sangjin Lee <sj...@twitter.com> Committed: Wed Feb 17 20:57:09 2016 -0800 ---------------------------------------------------------------------- hadoop-yarn-project/CHANGES.txt | 3 +++ .../server/resourcemanager/scheduler/fair/FSAppAttempt.java | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/31979043/hadoop-yarn-project/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index ad6898c..4327e51 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -10,6 +10,9 @@ Release 2.6.5 - UNRELEASED OPTIMIZATIONS + YARN-4690. Skip object allocation in FSAppAttempt#getResourceUsage when + possible (Ming Ma via sjlee) + BUG FIXES Release 2.6.4 - 2016-02-11 http://git-wip-us.apache.org/repos/asf/hadoop/blob/31979043/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 b23ec3e..a30a2c5 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 @@ -722,7 +722,12 @@ public class FSAppAttempt extends SchedulerApplicationAttempt public Resource getResourceUsage() { // Here the getPreemptedResources() always return zero, except in // a preemption round - return Resources.subtract(getCurrentConsumption(), getPreemptedResources()); + // In the common case where preempted resource is zero, return the + // current consumption Resource object directly without calling + // Resources.subtract which creates a new Resource object for each call. + return getPreemptedResources().equals(Resources.none()) ? + getCurrentConsumption() : + Resources.subtract(getCurrentConsumption(), getPreemptedResources()); } @Override