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 ss...@apache.org on 2012/08/22 00:45:48 UTC

svn commit: r1375835 - in /hadoop/common/branches/branch-1: CHANGES.txt src/mapred/org/apache/hadoop/mapred/Counters.java src/mapred/org/apache/hadoop/mapreduce/CounterGroup.java

Author: sseth
Date: Tue Aug 21 22:45:48 2012
New Revision: 1375835

URL: http://svn.apache.org/viewvc?rev=1375835&view=rev
Log:
MAPREDUCE-4565. Backport MR-2855 to branch-1: ResourceBundle lookup during counter name resolution takes a lot of time. (Contributed by Karthik Kambatla)

Modified:
    hadoop/common/branches/branch-1/CHANGES.txt
    hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/Counters.java
    hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapreduce/CounterGroup.java

Modified: hadoop/common/branches/branch-1/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/CHANGES.txt?rev=1375835&r1=1375834&r2=1375835&view=diff
==============================================================================
--- hadoop/common/branches/branch-1/CHANGES.txt (original)
+++ hadoop/common/branches/branch-1/CHANGES.txt Tue Aug 21 22:45:48 2012
@@ -84,6 +84,9 @@ Release 1.2.0 - unreleased
 
     MAPREDUCE-4511. Add IFile readahead (ahmed via tucu)
 
+    MAPREDUCE-4565. Backport MR-2855 to branch-1: ResourceBundle lookup during
+    counter name resolution takes a lot of time. (Karthik Kambatla via sseth)
+
   OPTIMIZATIONS
 
     HDFS-2533. Backport: Remove needless synchronization on some FSDataSet

Modified: hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/Counters.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/Counters.java?rev=1375835&r1=1375834&r2=1375835&view=diff
==============================================================================
--- hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/Counters.java (original)
+++ hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/Counters.java Tue Aug 21 22:45:48 2012
@@ -36,6 +36,7 @@ import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.io.Writable;
 import org.apache.hadoop.io.WritableUtils;
+import org.apache.hadoop.mapreduce.CounterGroup;
 import org.apache.hadoop.util.StringUtils;
 
 /**
@@ -167,7 +168,7 @@ public class Counters implements Writabl
     
     Group(String groupName) {
       try {
-        bundle = getResourceBundle(groupName);
+        bundle = CounterGroup.getResourceBundle(groupName);
       }
       catch (MissingResourceException neverMind) {
       }
@@ -385,15 +386,6 @@ public class Counters implements Writabl
   private Map<Enum, Counter> cache = new IdentityHashMap<Enum, Counter>();
 
   /**
-   * Returns the specified resource bundle, or throws an exception.
-   * @throws MissingResourceException if the bundle isn't found
-   */
-  private static ResourceBundle getResourceBundle(String enumClassName) {
-    String bundleName = enumClassName.replace('$','_');
-    return ResourceBundle.getBundle(bundleName);
-  }
-
-  /**
    * Returns the names of all counter classes.
    * @return Set of counter names.
    */

Modified: hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapreduce/CounterGroup.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapreduce/CounterGroup.java?rev=1375835&r1=1375834&r2=1375835&view=diff
==============================================================================
--- hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapreduce/CounterGroup.java (original)
+++ hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapreduce/CounterGroup.java Tue Aug 21 22:45:48 2012
@@ -22,10 +22,12 @@ import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
 import java.util.Iterator;
+import java.util.Locale;
 import java.util.MissingResourceException;
 import java.util.ResourceBundle;
 import java.util.TreeMap;
 
+import org.apache.hadoop.classification.InterfaceAudience.Private;
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.io.Writable;
 import org.apache.hadoop.io.WritableUtils;
@@ -45,9 +47,12 @@ public class CounterGroup implements Wri
    * Returns the specified resource bundle, or throws an exception.
    * @throws MissingResourceException if the bundle isn't found
    */
-  private static ResourceBundle getResourceBundle(String enumClassName) {
+  @Private
+  public static ResourceBundle getResourceBundle(String enumClassName)
+      throws MissingResourceException {
     String bundleName = enumClassName.replace('$','_');
-    return ResourceBundle.getBundle(bundleName);
+    return ResourceBundle.getBundle(bundleName, Locale.getDefault(), Thread
+        .currentThread().getContextClassLoader());
   }
 
   protected CounterGroup(String name) {