Author: tomwhite Date: Thu Apr 26 18:48:13 2012 New Revision: 1331029 URL: http://svn.apache.org/viewvc?rev=1331029&view=rev Log: Merge -r 1331022:1331023 from trunk to branch-2. Fixes: MAPREDUCE-4138
Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/Counters.java hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Counters.java hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FileSystemCounterGroup.java hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FrameworkCounterGroup.java Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt?rev=1331029&r1=1331028&r2=1331029&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt (original) +++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt Thu Apr 26 18:48:13 2012 @@ -48,6 +48,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/branches/branch-2/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/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/Counters.java?rev=1331029&r1=1331028&r2=1331029&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/Counters.java (original) +++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/Counters.java Thu Apr 26 18:48:13 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/branches/branch-2/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/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Counters.java?rev=1331029&r1=1331028&r2=1331029&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Counters.java (original) +++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Counters.java Thu Apr 26 18:48:13 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/branches/branch-2/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/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FileSystemCounterGroup.java?rev=1331029&r1=1331028&r2=1331029&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FileSystemCounterGroup.java (original) +++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FileSystemCounterGroup.java Thu Apr 26 18:48:13 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/branches/branch-2/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/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FrameworkCounterGroup.java?rev=1331029&r1=1331028&r2=1331029&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FrameworkCounterGroup.java (original) +++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/counters/FrameworkCounterGroup.java Thu Apr 26 18:48:13 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()); } }