You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-commits@hadoop.apache.org by to...@apache.org on 2012/04/26 20:39:22 UTC
svn commit: r1331023 - in /hadoop/common/trunk/hadoop-mapreduce-project: ./
hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/
hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoo...
Author: tomwhite
Date: Thu Apr 26 18:39:22 2012
New Revision: 1331023
URL: http://svn.apache.org/viewvc?rev=1331023&view=rev
Log:
MAPREDUCE-4138. Reduce memory usage of counters due to non-static nested classes.
Modified:
hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt
hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/Counters.java
hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Counters.java
hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FileSystemCounterGroup.java
hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FrameworkCounterGroup.java
Modified: hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt?rev=1331023&r1=1331022&r2=1331023&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt (original)
+++ hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt Thu Apr 26 18:39:22 2012
@@ -154,6 +154,9 @@ Release 2.0.0 - UNRELEASED
MAPREDUCE-4093. Improve RM WebApp start up when proxy address is not set
(Devaraj K vai bobby)
+ MAPREDUCE-4138. Reduce memory usage of counters due to non-static nested
+ classes. (tomwhite)
+
OPTIMIZATIONS
BUG FIXES
Modified: hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/Counters.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/Counters.java?rev=1331023&r1=1331022&r2=1331023&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/Counters.java (original)
+++ hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/Counters.java Thu Apr 26 18:39:22 2012
@@ -387,21 +387,13 @@ public class Counters
private static class FrameworkGroupImpl<T extends Enum<T>>
extends FrameworkCounterGroup<T, Counter> {
- // Mix the framework counter implementation into the Counter interface
- class FrameworkCounterImpl extends FrameworkCounter {
- FrameworkCounterImpl(T key) {
- super(key);
- }
-
- }
-
FrameworkGroupImpl(Class<T> cls) {
super(cls);
}
@Override
protected Counter newCounter(T key) {
- return new Counter(new FrameworkCounterImpl(key));
+ return new Counter(new FrameworkCounter<T>(key, getName()));
}
@Override
@@ -413,17 +405,9 @@ public class Counters
// Mix the file system counter group implementation into the Group interface
private static class FSGroupImpl extends FileSystemCounterGroup<Counter> {
- private class FSCounterImpl extends FSCounter {
-
- FSCounterImpl(String scheme, FileSystemCounter key) {
- super(scheme, key);
- }
-
- }
-
@Override
protected Counter newCounter(String scheme, FileSystemCounter key) {
- return new Counter(new FSCounterImpl(scheme, key));
+ return new Counter(new FSCounter(scheme, key));
}
@Override
Modified: hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Counters.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Counters.java?rev=1331023&r1=1331022&r2=1331023&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Counters.java (original)
+++ hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Counters.java Thu Apr 26 18:39:22 2012
@@ -49,8 +49,8 @@ public class Counters extends AbstractCo
}
@Override
- protected FrameworkCounter newCounter(T key) {
- return new FrameworkCounter(key);
+ protected FrameworkCounter<T> newCounter(T key) {
+ return new FrameworkCounter<T>(key, getName());
}
@Override
Modified: hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FileSystemCounterGroup.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FileSystemCounterGroup.java?rev=1331023&r1=1331022&r2=1331023&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FileSystemCounterGroup.java (original)
+++ hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FileSystemCounterGroup.java Thu Apr 26 18:39:22 2012
@@ -61,7 +61,7 @@ public abstract class FileSystemCounterG
private static final Joiner DISP_JOINER = Joiner.on(": ");
@InterfaceAudience.Private
- public class FSCounter extends AbstractCounter {
+ public static class FSCounter extends AbstractCounter {
final String scheme;
final FileSystemCounter key;
private long value;
@@ -139,8 +139,7 @@ public abstract class FileSystemCounterG
@Override
public void addCounter(C counter) {
C ours;
- if (counter instanceof FileSystemCounterGroup<?>.FSCounter) {
- @SuppressWarnings("unchecked")
+ if (counter instanceof FileSystemCounterGroup.FSCounter) {
FSCounter c = (FSCounter) counter;
ours = findCounter(c.scheme, c.key);
}
Modified: hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FrameworkCounterGroup.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FrameworkCounterGroup.java?rev=1331023&r1=1331022&r2=1331023&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FrameworkCounterGroup.java (original)
+++ hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FrameworkCounterGroup.java Thu Apr 26 18:39:22 2012
@@ -57,12 +57,14 @@ public abstract class FrameworkCounterGr
* Use old (which extends new) interface to make compatibility easier.
*/
@InterfaceAudience.Private
- public class FrameworkCounter extends AbstractCounter {
+ public static class FrameworkCounter<T extends Enum<T>> extends AbstractCounter {
final T key;
+ final String groupName;
private long value;
- public FrameworkCounter(T ref) {
+ public FrameworkCounter(T ref, String groupName) {
key = ref;
+ this.groupName = groupName;
}
@Override
@@ -72,7 +74,7 @@ public abstract class FrameworkCounterGr
@Override
public String getDisplayName() {
- return localizeCounterName(getName());
+ return ResourceBundles.getCounterName(groupName, getName(), getName());
}
@Override
@@ -131,10 +133,6 @@ public abstract class FrameworkCounterGr
this.displayName = displayName;
}
- private String localizeCounterName(String counterName) {
- return ResourceBundles.getCounterName(getName(), counterName, counterName);
- }
-
private T valueOf(String name) {
return Enum.valueOf(enumClass, name);
}
@@ -204,7 +202,7 @@ public abstract class FrameworkCounterGr
if (checkNotNull(other, "other counter group")
instanceof FrameworkCounterGroup<?, ?>) {
for (Counter counter : other) {
- findCounter(((FrameworkCounter) counter).key)
+ findCounter(((FrameworkCounter) counter).key.name())
.increment(counter.getValue());
}
}