You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by aw...@apache.org on 2015/07/30 03:27:40 UTC
[10/14] hadoop git commit: YARN-2768. Avoid cloning Resource in
FSAppAttempt#updateDemand. (Hong Zhiguo via kasha)
YARN-2768. Avoid cloning Resource in FSAppAttempt#updateDemand. (Hong Zhiguo via kasha)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/5205a330
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/5205a330
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/5205a330
Branch: refs/heads/HADOOP-12111
Commit: 5205a330b387d2e133ee790b9fe7d5af3cd8bccc
Parents: 6f0a357
Author: Karthik Kambatla <ka...@apache.org>
Authored: Wed Jul 29 09:42:32 2015 -0700
Committer: Karthik Kambatla <ka...@apache.org>
Committed: Wed Jul 29 09:42:32 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/5205a330/hadoop-yarn-project/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt
index be6a50c..910b85c 100644
--- a/hadoop-yarn-project/CHANGES.txt
+++ b/hadoop-yarn-project/CHANGES.txt
@@ -378,6 +378,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/5205a330/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/5205a330/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());
}
}
}