This is an automated email from the ASF dual-hosted git repository.

jeagles pushed a commit to branch branch-0.9
in repository https://gitbox.apache.org/repos/asf/tez.git


The following commit(s) were added to refs/heads/branch-0.9 by this push:
     new 990d71a  TEZ-4275: Use Google Guava Intern Facility (#95)
990d71a is described below

commit 990d71a1582939e05946de9011fa89f4efc759ed
Author: belugabehr <[email protected]>
AuthorDate: Wed Jun 30 10:48:30 2021 -0400

    TEZ-4275: Use Google Guava Intern Facility (#95)
    
    * TEZ-4275: Use Google Guava Intern Facility
    
    * Also add hint for running finalization
    
    * Use Guava String Intern implementation
    
    * Fix checkstyle, white-space issues
    
    * Remove GC hint
    
    Co-authored-by: David Mollitor <[email protected]>
    (cherry picked from commit 984d09c4d37fe7b73d63bf0ce9d2de7c34bdd735)
---
 .../java/org/apache/tez/dag/records/TezDAGID.java  | 15 ++++-----
 .../java/org/apache/tez/dag/records/TezID.java     | 21 -------------
 .../apache/tez/dag/records/TezTaskAttemptID.java   | 12 +++-----
 .../java/org/apache/tez/dag/records/TezTaskID.java | 12 +++-----
 .../org/apache/tez/dag/records/TezVertexID.java    | 12 +++-----
 .../java/org/apache/tez/util/StringInterner.java   | 36 ++++++++++++++++++++++
 .../java/org/apache/tez/dag/app/DAGAppMaster.java  |  6 ----
 .../tez/dag/app/dag/impl/TaskAttemptImpl.java      | 12 ++++----
 .../apache/tez/dag/app/dag/impl/VertexImpl.java    |  6 ++--
 .../tez/history/parser/datamodel/DagInfo.java      |  8 ++---
 .../history/parser/datamodel/TaskAttemptInfo.java  | 16 +++++-----
 .../tez/history/parser/datamodel/TaskInfo.java     | 10 +++---
 .../tez/history/parser/datamodel/VertexInfo.java   | 10 +++---
 .../org/apache/tez/history/parser/utils/Utils.java |  4 +--
 .../apache/tez/runtime/api/impl/EventMetaData.java | 10 +++---
 .../tez/runtime/api/impl/GroupInputSpec.java       |  8 ++---
 .../org/apache/tez/runtime/api/impl/InputSpec.java |  6 ++--
 .../apache/tez/runtime/api/impl/OutputSpec.java    |  6 ++--
 .../org/apache/tez/runtime/api/impl/TaskSpec.java  | 14 ++++-----
 .../tez/runtime/api/impl/TaskStatistics.java       |  5 +--
 .../ShuffleInputEventHandlerOrderedGrouped.java    | 10 +++---
 .../common/sort/impl/dflt/TestDefaultSorter.java   |  4 +--
 .../tez/analyzer/plugins/CriticalPathAnalyzer.java |  9 +++---
 23 files changed, 127 insertions(+), 125 deletions(-)

diff --git a/tez-common/src/main/java/org/apache/tez/dag/records/TezDAGID.java 
b/tez-common/src/main/java/org/apache/tez/dag/records/TezDAGID.java
index 24365c9..68184fc 100644
--- a/tez-common/src/main/java/org/apache/tez/dag/records/TezDAGID.java
+++ b/tez-common/src/main/java/org/apache/tez/dag/records/TezDAGID.java
@@ -22,12 +22,14 @@ import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
 
-import org.apache.hadoop.classification.InterfaceAudience;
 import org.apache.hadoop.yarn.api.records.ApplicationId;
 
 import org.apache.tez.common.Preconditions;
 import org.apache.tez.util.FastNumberFormat;
 
+import com.google.common.collect.Interner;
+import com.google.common.collect.Interners;
+
 /**
  * TezDAGID represents the immutable and unique identifier for
  * a Tez DAG.
@@ -40,7 +42,7 @@ import org.apache.tez.util.FastNumberFormat;
  */
 public class TezDAGID extends TezID {
 
-  private static TezIDCache<TezDAGID> tezDAGIDCache = new TezIDCache<>();
+  private static Interner<TezDAGID> tezDAGIDCache = 
Interners.newWeakInterner();
   private ApplicationId applicationId;
 
   /**
@@ -53,12 +55,7 @@ public class TezDAGID extends TezID {
     // will be short-lived.
     // Alternately the cache can be keyed by the hash of the incoming 
paramters.
     Preconditions.checkArgument(applicationId != null, "ApplicationID cannot 
be null");
-    return tezDAGIDCache.getInstance(new TezDAGID(applicationId, id));
-  }
-
-  @InterfaceAudience.Private
-  public static void clearCache() {
-    tezDAGIDCache.clear();
+    return tezDAGIDCache.intern(new TezDAGID(applicationId, id));
   }
   
   /**
@@ -72,7 +69,7 @@ public class TezDAGID extends TezID {
     // will be short-lived.
     // Alternately the cache can be keyed by the hash of the incoming 
paramters.
     Preconditions.checkArgument(yarnRMIdentifier != null, "yarnRMIdentifier 
cannot be null");
-    return tezDAGIDCache.getInstance(new TezDAGID(yarnRMIdentifier, appId, 
id));
+    return tezDAGIDCache.intern(new TezDAGID(yarnRMIdentifier, appId, id));
   }
   
   // Public for Writable serialization. Verify if this is actually required.
diff --git a/tez-common/src/main/java/org/apache/tez/dag/records/TezID.java 
b/tez-common/src/main/java/org/apache/tez/dag/records/TezID.java
index cd7b27d..7efbd9a 100644
--- a/tez-common/src/main/java/org/apache/tez/dag/records/TezID.java
+++ b/tez-common/src/main/java/org/apache/tez/dag/records/TezID.java
@@ -21,8 +21,6 @@ package org.apache.tez.dag.records;
 import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
-import java.lang.ref.WeakReference;
-import java.util.WeakHashMap;
 
 import org.apache.hadoop.classification.InterfaceAudience;
 import org.apache.hadoop.classification.InterfaceStability;
@@ -42,25 +40,6 @@ public abstract class TezID implements 
WritableComparable<TezID> {
   public static final char SEPARATOR = '_';
   protected int id;
 
-  public static class TezIDCache<T> {
-    private final WeakHashMap<T, WeakReference<T>> cache = new WeakHashMap<>();
-
-    synchronized T getInstance(final T id) {
-      final WeakReference<T> cached = cache.get(id);
-      if (cached != null) {
-        final T value = cached.get();
-        if (value != null)
-          return value;
-      }
-      cache.put(id, new WeakReference<T>(id));
-      return id;
-    }
-
-    synchronized void clear() {
-      cache.clear();
-    }
-  }
-
   /** constructs an ID object from the given int */
   public TezID(int id) {
     this.id = id;
diff --git 
a/tez-common/src/main/java/org/apache/tez/dag/records/TezTaskAttemptID.java 
b/tez-common/src/main/java/org/apache/tez/dag/records/TezTaskAttemptID.java
index 7aee80f..9ce1b10 100644
--- a/tez-common/src/main/java/org/apache/tez/dag/records/TezTaskAttemptID.java
+++ b/tez-common/src/main/java/org/apache/tez/dag/records/TezTaskAttemptID.java
@@ -25,6 +25,9 @@ import java.io.IOException;
 import org.apache.hadoop.classification.InterfaceAudience;
 import org.apache.hadoop.classification.InterfaceStability;
 
+import com.google.common.collect.Interner;
+import com.google.common.collect.Interners;
+
 /**
  * TezTaskAttemptID represents the immutable and unique identifier for
  * a task attempt. Each task attempt is one particular instance of a Tez Task
@@ -46,7 +49,7 @@ public class TezTaskAttemptID extends TezID {
   public static final String ATTEMPT = "attempt";
   private TezTaskID taskId;
 
-  private static TezIDCache<TezTaskAttemptID> tezTaskAttemptIDCache = new 
TezIDCache<>();
+  private static Interner<TezTaskAttemptID> tezTaskAttemptIDCache = 
Interners.newWeakInterner();
 
   // Public for Writable serialization. Verify if this is actually required.
   public TezTaskAttemptID() {
@@ -58,12 +61,7 @@ public class TezTaskAttemptID extends TezID {
    * @param id the task attempt number
    */
   public static TezTaskAttemptID getInstance(TezTaskID taskID, int id) {
-    return tezTaskAttemptIDCache.getInstance(new TezTaskAttemptID(taskID, id));
-  }
-
-  @InterfaceAudience.Private
-  public static void clearCache() {
-    tezTaskAttemptIDCache.clear();
+    return tezTaskAttemptIDCache.intern(new TezTaskAttemptID(taskID, id));
   }
 
   private TezTaskAttemptID(TezTaskID taskId, int id) {
diff --git a/tez-common/src/main/java/org/apache/tez/dag/records/TezTaskID.java 
b/tez-common/src/main/java/org/apache/tez/dag/records/TezTaskID.java
index 15b695c..993df7c 100644
--- a/tez-common/src/main/java/org/apache/tez/dag/records/TezTaskID.java
+++ b/tez-common/src/main/java/org/apache/tez/dag/records/TezTaskID.java
@@ -28,6 +28,9 @@ import org.apache.hadoop.classification.InterfaceStability;
 import org.apache.tez.common.Preconditions;
 import org.apache.tez.util.FastNumberFormat;
 
+import com.google.common.collect.Interner;
+import com.google.common.collect.Interners;
+
 /**
  * TaskID represents the immutable and unique identifier for
  * a Tez Task. Each TaskID encompasses multiple attempts made to
@@ -51,7 +54,7 @@ public class TezTaskID extends TezID {
     }
   };
 
-  private static TezIDCache<TezTaskID> tezTaskIDCache = new TezIDCache<>();
+  private static Interner<TezTaskID> tezTaskIDCache = 
Interners.newWeakInterner();
   private TezVertexID vertexId;
 
   /**
@@ -61,12 +64,7 @@ public class TezTaskID extends TezID {
    */
   public static TezTaskID getInstance(TezVertexID vertexID, int id) {
     Preconditions.checkArgument(vertexID != null, "vertexID cannot be null");
-    return tezTaskIDCache.getInstance(new TezTaskID(vertexID, id));
-  }
-
-  @InterfaceAudience.Private
-  public static void clearCache() {
-    tezTaskIDCache.clear();
+    return tezTaskIDCache.intern(new TezTaskID(vertexID, id));
   }
 
   private TezTaskID(TezVertexID vertexID, int id) {
diff --git 
a/tez-common/src/main/java/org/apache/tez/dag/records/TezVertexID.java 
b/tez-common/src/main/java/org/apache/tez/dag/records/TezVertexID.java
index b5a36ab..5ecfca6 100644
--- a/tez-common/src/main/java/org/apache/tez/dag/records/TezVertexID.java
+++ b/tez-common/src/main/java/org/apache/tez/dag/records/TezVertexID.java
@@ -28,6 +28,9 @@ import org.apache.hadoop.classification.InterfaceStability;
 import org.apache.tez.common.Preconditions;
 import org.apache.tez.util.FastNumberFormat;
 
+import com.google.common.collect.Interner;
+import com.google.common.collect.Interners;
+
 /**
  * TezVertexID represents the immutable and unique identifier for
  * a Vertex in a Tez DAG. Each TezVertexID encompasses multiple Tez Tasks.
@@ -53,7 +56,7 @@ public class TezVertexID extends TezID {
     }
   };
 
-  private static TezIDCache<TezVertexID> tezVertexIDCache = new TezIDCache<>();
+  private static Interner<TezVertexID> tezVertexIDCache = 
Interners.newWeakInterner();
   private TezDAGID dagId;
 
   // Public for Writable serialization. Verify if this is actually required.
@@ -67,12 +70,7 @@ public class TezVertexID extends TezID {
    */
   public static TezVertexID getInstance(TezDAGID dagId, int id) {
     Preconditions.checkArgument(dagId != null, "DagID cannot be null");
-    return tezVertexIDCache.getInstance(new TezVertexID(dagId, id));
-  }
-
-  @InterfaceAudience.Private
-  public static void clearCache() {
-    tezVertexIDCache.clear();
+    return tezVertexIDCache.intern(new TezVertexID(dagId, id));
   }
 
   private TezVertexID(TezDAGID dagId, int id) {
diff --git a/tez-common/src/main/java/org/apache/tez/util/StringInterner.java 
b/tez-common/src/main/java/org/apache/tez/util/StringInterner.java
new file mode 100644
index 0000000..b8c9113
--- /dev/null
+++ b/tez-common/src/main/java/org/apache/tez/util/StringInterner.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.tez.util;
+
+import com.google.common.collect.Interner;
+import com.google.common.collect.Interners;
+
+/**
+ * A class to replace the {@code String.intern()}. The {@code String.intern()}
+ * has some well-known performance limitations, and should generally be 
avoided.
+ * Prefer Google's interner over the JDK's implementation.
+ */
+public final class StringInterner {
+
+  private static final Interner<String> STRING_INTERNER =
+      Interners.newWeakInterner();
+
+  private StringInterner() {
+  }
+
+  public static String intern(final String str) {
+    return (str == null) ? null : STRING_INTERNER.intern(str);
+  }
+}
diff --git a/tez-dag/src/main/java/org/apache/tez/dag/app/DAGAppMaster.java 
b/tez-dag/src/main/java/org/apache/tez/dag/app/DAGAppMaster.java
index 92a4d40..cfeb049 100644
--- a/tez-dag/src/main/java/org/apache/tez/dag/app/DAGAppMaster.java
+++ b/tez-dag/src/main/java/org/apache/tez/dag/app/DAGAppMaster.java
@@ -83,8 +83,6 @@ import 
org.apache.tez.dag.app.dag.event.DAGAppMasterEventUserServiceFatalError;
 import org.apache.tez.dag.app.dag.event.DAGEventInternalError;
 import org.apache.tez.dag.app.dag.event.DAGEventTerminateDag;
 import org.apache.tez.dag.history.events.DAGRecoveredEvent;
-import org.apache.tez.dag.records.TezTaskAttemptID;
-import org.apache.tez.dag.records.TezTaskID;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
@@ -865,10 +863,6 @@ public class DAGAppMaster extends AbstractService {
       taskCommunicatorManager.dagComplete(cleanupEvent.getDag());
       nodes.dagComplete(cleanupEvent.getDag());
       containers.dagComplete(cleanupEvent.getDag());
-      TezTaskAttemptID.clearCache();
-      TezTaskID.clearCache();
-      TezVertexID.clearCache();
-      TezDAGID.clearCache();
       LOG.info("Completed cleanup for DAG: name=" + 
cleanupEvent.getDag().getName() + ", with id=" +
           cleanupEvent.getDag().getID());
       synchronized (idleStateLock) {
diff --git 
a/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/TaskAttemptImpl.java 
b/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/TaskAttemptImpl.java
index 36ea33e..5a69119 100644
--- a/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/TaskAttemptImpl.java
+++ b/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/TaskAttemptImpl.java
@@ -40,11 +40,11 @@ import 
org.apache.tez.dag.app.dag.event.TaskEventTASucceeded;
 import org.apache.tez.dag.app.rm.AMSchedulerEventTAStateUpdated;
 import org.apache.tez.runtime.api.TaskFailureType;
 import org.apache.tez.serviceplugins.api.TaskScheduler;
+import org.apache.tez.util.StringInterner;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.net.NetUtils;
-import org.apache.hadoop.util.StringInterner;
 import org.apache.hadoop.yarn.api.records.Container;
 import org.apache.hadoop.yarn.api.records.ContainerId;
 import org.apache.hadoop.yarn.api.records.NodeId;
@@ -1358,7 +1358,7 @@ public class TaskAttemptImpl implements TaskAttempt,
         ta.container = container;
         ta.containerId = tEvent.getContainerId();
         ta.containerNodeId = container.getNodeId();
-        ta.nodeHttpAddress = 
StringInterner.weakIntern(container.getNodeHttpAddress());
+        ta.nodeHttpAddress = 
StringInterner.intern(container.getNodeHttpAddress());
       }
 
       if (event instanceof TaskAttemptEventContainerTerminatedBySystem) {
@@ -1370,7 +1370,7 @@ public class TaskAttemptImpl implements TaskAttempt,
         ta.container = container;
         ta.containerId = tEvent.getContainerId();
         ta.containerNodeId = container.getNodeId();
-        ta.nodeHttpAddress = 
StringInterner.weakIntern(container.getNodeHttpAddress());
+        ta.nodeHttpAddress = 
StringInterner.intern(container.getNodeHttpAddress());
       }
 
       if (ta.recoveryData == null ||
@@ -1411,8 +1411,8 @@ public class TaskAttemptImpl implements TaskAttempt,
       ta.container = container;
       ta.containerId = event.getContainerId();
       ta.containerNodeId = container.getNodeId();
-      ta.nodeHttpAddress = 
StringInterner.weakIntern(container.getNodeHttpAddress());
-      ta.nodeRackName = 
StringInterner.weakIntern(RackResolver.resolve(ta.containerNodeId.getHost())
+      ta.nodeHttpAddress = 
StringInterner.intern(container.getNodeHttpAddress());
+      ta.nodeRackName = 
StringInterner.intern(RackResolver.resolve(ta.containerNodeId.getHost())
           .getNetworkLocation());
       ta.lastNotifyProgressTimestamp = ta.clock.getTime();
 
@@ -1421,7 +1421,7 @@ public class TaskAttemptImpl implements TaskAttempt,
       // TODO Resolve to host / IP in case of a local address.
       InetSocketAddress nodeHttpInetAddr = NetUtils
           .createSocketAddr(ta.nodeHttpAddress); // TODO: Costly?
-      ta.trackerName = 
StringInterner.weakIntern(nodeHttpInetAddr.getHostName());
+      ta.trackerName = StringInterner.intern(nodeHttpInetAddr.getHostName());
       ta.httpPort = nodeHttpInetAddr.getPort();
       ta.sendEvent(createDAGCounterUpdateEventTALaunched(ta));
 
diff --git 
a/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/VertexImpl.java 
b/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/VertexImpl.java
index dc10738..7917390 100644
--- a/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/VertexImpl.java
+++ b/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/VertexImpl.java
@@ -52,7 +52,6 @@ import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.hadoop.service.AbstractService;
 import org.apache.hadoop.service.ServiceOperations;
 import org.apache.hadoop.service.ServiceStateException;
-import org.apache.hadoop.util.StringInterner;
 import org.apache.hadoop.yarn.api.records.LocalResource;
 import org.apache.hadoop.yarn.api.records.Resource;
 import org.apache.hadoop.yarn.event.EventHandler;
@@ -189,6 +188,7 @@ import org.apache.tez.runtime.api.impl.TaskStatistics;
 import org.apache.tez.runtime.api.impl.TezEvent;
 import org.apache.tez.state.OnStateChangedCallback;
 import org.apache.tez.state.StateMachineTez;
+import org.apache.tez.util.StringInterner;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -964,7 +964,7 @@ public class VertexImpl implements 
org.apache.tez.dag.app.dag.Vertex, EventHandl
       StateChangeNotifier entityStatusTracker, Configuration dagOnlyConf) {
     this.vertexId = vertexId;
     this.vertexPlan = vertexPlan;
-    this.vertexName = StringInterner.weakIntern(vertexName);
+    this.vertexName = StringInterner.intern(vertexName);
     this.vertexConf = new Configuration(dagConf);
     this.vertexOnlyConf = new Configuration(dagOnlyConf);
     if (vertexPlan.hasVertexConf()) {
@@ -4517,7 +4517,7 @@ public class VertexImpl implements 
org.apache.tez.dag.app.dag.Vertex, EventHandl
   }
   
   void addIO(String name) {
-    ioIndices.put(StringInterner.weakIntern(name), ioIndices.size());
+    ioIndices.put(StringInterner.intern(name), ioIndices.size());
   }
 
   @VisibleForTesting
diff --git 
a/tez-plugins/tez-history-parser/src/main/java/org/apache/tez/history/parser/datamodel/DagInfo.java
 
b/tez-plugins/tez-history-parser/src/main/java/org/apache/tez/history/parser/datamodel/DagInfo.java
index 64ddcf8..3f4c8c5 100644
--- 
a/tez-plugins/tez-history-parser/src/main/java/org/apache/tez/history/parser/datamodel/DagInfo.java
+++ 
b/tez-plugins/tez-history-parser/src/main/java/org/apache/tez/history/parser/datamodel/DagInfo.java
@@ -32,10 +32,10 @@ import org.apache.commons.collections4.BidiMap;
 import org.apache.commons.collections4.bidimap.DualHashBidiMap;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.util.StringInterner;
 import org.apache.tez.client.CallerContext;
 import org.apache.tez.dag.api.event.VertexState;
 import org.apache.tez.dag.history.HistoryEventType;
+import org.apache.tez.util.StringInterner;
 import org.codehaus.jettison.json.JSONArray;
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
@@ -97,7 +97,7 @@ public class DagInfo extends BaseInfo {
     
Preconditions.checkArgument(jsonObject.getString(Constants.ENTITY_TYPE).equalsIgnoreCase
         (Constants.TEZ_DAG_ID));
 
-    dagId = StringInterner.weakIntern(jsonObject.getString(Constants.ENTITY));
+    dagId = StringInterner.intern(jsonObject.getString(Constants.ENTITY));
 
     //Parse additional Info
     JSONObject otherInfoNode = jsonObject.getJSONObject(Constants.OTHER_INFO);
@@ -137,7 +137,7 @@ public class DagInfo extends BaseInfo {
     diagnostics = otherInfoNode.optString(Constants.DIAGNOSTICS);
     failedTasks = otherInfoNode.optInt(Constants.NUM_FAILED_TASKS);
     JSONObject dagPlan = otherInfoNode.optJSONObject(Constants.DAG_PLAN);
-    name = StringInterner.weakIntern((dagPlan != null) ? 
(dagPlan.optString(Constants.DAG_NAME)) : null);
+    name = StringInterner.intern((dagPlan != null) ? 
(dagPlan.optString(Constants.DAG_NAME)) : null);
     if (dagPlan != null) {
       JSONArray vertices = dagPlan.optJSONArray(Constants.VERTICES);
       if (vertices != null) {
@@ -149,7 +149,7 @@ public class DagInfo extends BaseInfo {
     } else {
       numVertices = 0;
     }
-    status = 
StringInterner.weakIntern(otherInfoNode.optString(Constants.STATUS));
+    status = StringInterner.intern(otherInfoNode.optString(Constants.STATUS));
 
     //parse name id mapping
     JSONObject vertexIDMappingJson = 
otherInfoNode.optJSONObject(Constants.VERTEX_NAME_ID_MAPPING);
diff --git 
a/tez-plugins/tez-history-parser/src/main/java/org/apache/tez/history/parser/datamodel/TaskAttemptInfo.java
 
b/tez-plugins/tez-history-parser/src/main/java/org/apache/tez/history/parser/datamodel/TaskAttemptInfo.java
index 3f39310..a6155e8 100644
--- 
a/tez-plugins/tez-history-parser/src/main/java/org/apache/tez/history/parser/datamodel/TaskAttemptInfo.java
+++ 
b/tez-plugins/tez-history-parser/src/main/java/org/apache/tez/history/parser/datamodel/TaskAttemptInfo.java
@@ -26,7 +26,6 @@ import com.google.common.collect.Ordering;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.util.StringInterner;
 import org.apache.tez.common.ATSConstants;
 import org.apache.tez.common.counters.DAGCounter;
 import org.apache.tez.common.counters.TaskCounter;
@@ -34,6 +33,7 @@ import org.apache.tez.common.counters.TezCounter;
 import org.apache.tez.dag.api.oldrecords.TaskAttemptState;
 import org.apache.tez.dag.history.HistoryEventType;
 import org.apache.tez.history.parser.utils.Utils;
+import org.apache.tez.util.StringInterner;
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
 
@@ -51,7 +51,7 @@ public class TaskAttemptInfo extends BaseInfo {
 
   private static final Log LOG = LogFactory.getLog(TaskAttemptInfo.class);
 
-  private static final String SUCCEEDED = 
StringInterner.weakIntern(TaskAttemptState.SUCCEEDED.name());
+  private static final String SUCCEEDED = TaskAttemptState.SUCCEEDED.name();
 
   private final String taskAttemptId;
   private final long startTime;
@@ -96,7 +96,7 @@ public class TaskAttemptInfo extends BaseInfo {
         jsonObject.getString(Constants.ENTITY_TYPE).equalsIgnoreCase
             (Constants.TEZ_TASK_ATTEMPT_ID));
 
-    taskAttemptId = 
StringInterner.weakIntern(jsonObject.optString(Constants.ENTITY));
+    taskAttemptId = 
StringInterner.intern(jsonObject.optString(Constants.ENTITY));
 
     //Parse additional Info
     final JSONObject otherInfoNode = 
jsonObject.getJSONObject(Constants.OTHER_INFO);
@@ -132,15 +132,15 @@ public class TaskAttemptInfo extends BaseInfo {
 
     diagnostics = otherInfoNode.optString(Constants.DIAGNOSTICS);
     creationTime = otherInfoNode.optLong(Constants.CREATION_TIME);
-    creationCausalTA = StringInterner.weakIntern(
+    creationCausalTA = StringInterner.intern(
         otherInfoNode.optString(Constants.CREATION_CAUSAL_ATTEMPT));
     allocationTime = otherInfoNode.optLong(Constants.ALLOCATION_TIME);
-    containerId = 
StringInterner.weakIntern(otherInfoNode.optString(Constants.CONTAINER_ID));
+    containerId = 
StringInterner.intern(otherInfoNode.optString(Constants.CONTAINER_ID));
     String id = otherInfoNode.optString(Constants.NODE_ID);
-    nodeId = StringInterner.weakIntern((id != null) ? (id.split(":")[0]) : "");
+    nodeId = StringInterner.intern((id != null) ? (id.split(":")[0]) : "");
     logUrl = otherInfoNode.optString(Constants.COMPLETED_LOGS_URL);
 
-    status = 
StringInterner.weakIntern(otherInfoNode.optString(Constants.STATUS));
+    status = StringInterner.intern(otherInfoNode.optString(Constants.STATUS));
     container = new Container(containerId, nodeId);
     if (otherInfoNode.has(Constants.LAST_DATA_EVENTS)) {
       List<DataDependencyEvent> eventInfo = 
Utils.parseDataEventDependencyFromJSON(
@@ -154,7 +154,7 @@ public class TaskAttemptInfo extends BaseInfo {
       }
     }
     terminationCause = StringInterner
-        
.weakIntern(otherInfoNode.optString(ATSConstants.TASK_ATTEMPT_ERROR_ENUM));
+        .intern(otherInfoNode.optString(ATSConstants.TASK_ATTEMPT_ERROR_ENUM));
     executionTimeInterval = (endTime > startTime) ? (endTime - startTime) : 0;
   }
   
diff --git 
a/tez-plugins/tez-history-parser/src/main/java/org/apache/tez/history/parser/datamodel/TaskInfo.java
 
b/tez-plugins/tez-history-parser/src/main/java/org/apache/tez/history/parser/datamodel/TaskInfo.java
index de74ad2..43886fa 100644
--- 
a/tez-plugins/tez-history-parser/src/main/java/org/apache/tez/history/parser/datamodel/TaskInfo.java
+++ 
b/tez-plugins/tez-history-parser/src/main/java/org/apache/tez/history/parser/datamodel/TaskInfo.java
@@ -31,9 +31,9 @@ import com.google.common.collect.Ordering;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.util.StringInterner;
 import org.apache.tez.dag.api.oldrecords.TaskAttemptState;
 import org.apache.tez.dag.history.HistoryEventType;
+import org.apache.tez.util.StringInterner;
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
 
@@ -71,7 +71,7 @@ public class TaskInfo extends BaseInfo {
         jsonObject.getString(Constants.ENTITY_TYPE).equalsIgnoreCase
             (Constants.TEZ_TASK_ID));
 
-    taskId = StringInterner.weakIntern(jsonObject.optString(Constants.ENTITY));
+    taskId = StringInterner.intern(jsonObject.optString(Constants.ENTITY));
 
     //Parse additional Info
     final JSONObject otherInfoNode = 
jsonObject.getJSONObject(Constants.OTHER_INFO);
@@ -106,10 +106,10 @@ public class TaskInfo extends BaseInfo {
     endTime = eTime;
 
     diagnostics = otherInfoNode.optString(Constants.DIAGNOSTICS);
-    successfulAttemptId = StringInterner.weakIntern(
-        otherInfoNode.optString(Constants.SUCCESSFUL_ATTEMPT_ID));
+    successfulAttemptId = StringInterner
+        .intern(otherInfoNode.optString(Constants.SUCCESSFUL_ATTEMPT_ID));
     scheduledTime = otherInfoNode.optLong(Constants.SCHEDULED_TIME);
-    status = 
StringInterner.weakIntern(otherInfoNode.optString(Constants.STATUS));
+    status = StringInterner.intern(otherInfoNode.optString(Constants.STATUS));
   }
 
   @Override
diff --git 
a/tez-plugins/tez-history-parser/src/main/java/org/apache/tez/history/parser/datamodel/VertexInfo.java
 
b/tez-plugins/tez-history-parser/src/main/java/org/apache/tez/history/parser/datamodel/VertexInfo.java
index efcce3b..c196c48 100644
--- 
a/tez-plugins/tez-history-parser/src/main/java/org/apache/tez/history/parser/datamodel/VertexInfo.java
+++ 
b/tez-plugins/tez-history-parser/src/main/java/org/apache/tez/history/parser/datamodel/VertexInfo.java
@@ -30,9 +30,9 @@ import com.google.common.collect.Ordering;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.util.StringInterner;
 import org.apache.tez.dag.api.oldrecords.TaskState;
 import org.apache.tez.dag.history.HistoryEventType;
+import org.apache.tez.util.StringInterner;
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
 
@@ -91,7 +91,7 @@ public class VertexInfo extends BaseInfo {
         jsonObject.getString(Constants.ENTITY_TYPE).equalsIgnoreCase
             (Constants.TEZ_VERTEX_ID));
 
-    vertexId = 
StringInterner.weakIntern(jsonObject.optString(Constants.ENTITY));
+    vertexId = StringInterner.intern(jsonObject.optString(Constants.ENTITY));
     taskInfoMap = Maps.newHashMap();
 
     inEdgeList = Lists.newLinkedList();
@@ -149,9 +149,9 @@ public class VertexInfo extends BaseInfo {
     killedTasks = otherInfoNode.optInt(Constants.NUM_KILLED_TASKS);
     numFailedTaskAttempts =
         otherInfoNode.optInt(Constants.NUM_FAILED_TASKS_ATTEMPTS);
-    vertexName = 
StringInterner.weakIntern(otherInfoNode.optString(Constants.VERTEX_NAME));
-    processorClass = 
StringInterner.weakIntern(otherInfoNode.optString(Constants.PROCESSOR_CLASS_NAME));
-    status = 
StringInterner.weakIntern(otherInfoNode.optString(Constants.STATUS));
+    vertexName = 
StringInterner.intern(otherInfoNode.optString(Constants.VERTEX_NAME));
+    processorClass = 
StringInterner.intern(otherInfoNode.optString(Constants.PROCESSOR_CLASS_NAME));
+    status = StringInterner.intern(otherInfoNode.optString(Constants.STATUS));
   }
 
   public static VertexInfo create(JSONObject vertexInfoObject) throws
diff --git 
a/tez-plugins/tez-history-parser/src/main/java/org/apache/tez/history/parser/utils/Utils.java
 
b/tez-plugins/tez-history-parser/src/main/java/org/apache/tez/history/parser/utils/Utils.java
index aacec8e..08eb92b 100644
--- 
a/tez-plugins/tez-history-parser/src/main/java/org/apache/tez/history/parser/utils/Utils.java
+++ 
b/tez-plugins/tez-history-parser/src/main/java/org/apache/tez/history/parser/utils/Utils.java
@@ -22,7 +22,6 @@ import com.google.common.base.Strings;
 import com.google.common.collect.Lists;
 
 import org.apache.hadoop.classification.InterfaceAudience;
-import org.apache.hadoop.util.StringInterner;
 import org.apache.log4j.ConsoleAppender;
 import org.apache.log4j.Level;
 import org.apache.log4j.Logger;
@@ -34,6 +33,7 @@ import org.apache.tez.dag.history.logging.EntityTypes;
 import org.apache.tez.history.parser.datamodel.Constants;
 import org.apache.tez.history.parser.datamodel.Event;
 import 
org.apache.tez.history.parser.datamodel.TaskAttemptInfo.DataDependencyEvent;
+import org.apache.tez.util.StringInterner;
 import org.codehaus.jettison.json.JSONArray;
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
@@ -106,7 +106,7 @@ public class Utils {
     for (int i=0; i<fields.length(); i++) {
       JSONObject eventMap = fields.getJSONObject(i);
       events.add(new DataDependencyEvent(
-          
StringInterner.weakIntern(eventMap.optString(EntityTypes.TEZ_TASK_ATTEMPT_ID.name())),
+          
StringInterner.intern(eventMap.optString(EntityTypes.TEZ_TASK_ATTEMPT_ID.name())),
           eventMap.optLong(Constants.TIMESTAMP)));
     }
     return events;
diff --git 
a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/EventMetaData.java
 
b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/EventMetaData.java
index 1191a9f..0542b33 100644
--- 
a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/EventMetaData.java
+++ 
b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/EventMetaData.java
@@ -28,8 +28,8 @@ import java.util.Objects;
 import javax.annotation.Nullable;
 
 import org.apache.hadoop.io.Writable;
-import org.apache.hadoop.util.StringInterner;
 import org.apache.tez.dag.records.TezTaskAttemptID;
+import org.apache.tez.util.StringInterner;
 
 /**
  * Class that encapsulates all the information to identify the unique
@@ -74,8 +74,8 @@ public class EventMetaData implements Writable {
     Objects.requireNonNull(generator, "generator is null");
     Objects.requireNonNull(taskVertexName, "taskVertexName is null");
     this.producerConsumerType = generator;
-    this.taskVertexName = StringInterner.weakIntern(taskVertexName);
-    this.edgeVertexName = StringInterner.weakIntern(edgeVertexName);
+    this.taskVertexName = StringInterner.intern(taskVertexName);
+    this.edgeVertexName = StringInterner.intern(edgeVertexName);
     this.taskAttemptID = taskAttemptID;
   }
 
@@ -122,10 +122,10 @@ public class EventMetaData implements Writable {
   public void readFields(DataInput in) throws IOException {
     producerConsumerType = EventProducerConsumerType.values()[in.readInt()];
     if (in.readBoolean()) {
-      taskVertexName = StringInterner.weakIntern(in.readUTF());
+      taskVertexName = StringInterner.intern(in.readUTF());
     }
     if (in.readBoolean()) {
-      edgeVertexName = StringInterner.weakIntern(in.readUTF());
+      edgeVertexName = StringInterner.intern(in.readUTF());
     }
     if (in.readBoolean()) {
       taskAttemptID = TezTaskAttemptID.readTezTaskAttemptID(in);
diff --git 
a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/GroupInputSpec.java
 
b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/GroupInputSpec.java
index 83c80bd..0177bc8 100644
--- 
a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/GroupInputSpec.java
+++ 
b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/GroupInputSpec.java
@@ -25,8 +25,8 @@ import java.util.List;
 
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.io.Writable;
-import org.apache.hadoop.util.StringInterner;
 import org.apache.tez.dag.api.InputDescriptor;
+import org.apache.tez.util.StringInterner;
 
 import com.google.common.collect.Lists;
 
@@ -53,7 +53,7 @@ public class GroupInputSpec implements Writable{
   }
   
   public GroupInputSpec(String groupName, List<String> groupVertices, 
InputDescriptor inputDescriptor) {
-    this.groupName = StringInterner.weakIntern(groupName);
+    this.groupName = StringInterner.intern(groupName);
     this.groupVertices = groupVertices;
     this.mergedInputDescriptor = inputDescriptor;
   }
@@ -70,11 +70,11 @@ public class GroupInputSpec implements Writable{
 
   @Override
   public void readFields(DataInput in) throws IOException {
-    groupName = StringInterner.weakIntern(Text.readString(in));
+    groupName = StringInterner.intern(Text.readString(in));
     int numMembers = in.readInt();
     groupVertices = Lists.newArrayListWithCapacity(numMembers);
     for (int i=0; i<numMembers; ++i) {
-      groupVertices.add(StringInterner.weakIntern(Text.readString(in)));
+      groupVertices.add(StringInterner.intern(Text.readString(in)));
     }
     mergedInputDescriptor = new InputDescriptor();
     mergedInputDescriptor.readFields(in);
diff --git 
a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/InputSpec.java
 
b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/InputSpec.java
index 1ee7b44..f2a23ec 100644
--- 
a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/InputSpec.java
+++ 
b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/InputSpec.java
@@ -23,8 +23,8 @@ import java.io.DataOutput;
 import java.io.IOException;
 
 import org.apache.hadoop.io.Writable;
-import org.apache.hadoop.util.StringInterner;
 import org.apache.tez.dag.api.InputDescriptor;
+import org.apache.tez.util.StringInterner;
 
 public class InputSpec implements Writable {
 
@@ -37,7 +37,7 @@ public class InputSpec implements Writable {
 
   public InputSpec(String sourceVertexName, InputDescriptor inputDescriptor,
       int physicalEdgeCount) {
-    this.sourceVertexName = StringInterner.weakIntern(sourceVertexName);
+    this.sourceVertexName = StringInterner.intern(sourceVertexName);
     this.inputDescriptor = inputDescriptor;
     this.physicalEdgeCount = physicalEdgeCount;
   }
@@ -68,7 +68,7 @@ public class InputSpec implements Writable {
 
   @Override
   public void readFields(DataInput in) throws IOException {
-    sourceVertexName = StringInterner.weakIntern(in.readUTF());
+    sourceVertexName = StringInterner.intern(in.readUTF());
     physicalEdgeCount = in.readInt();
     inputDescriptor = new InputDescriptor();
     inputDescriptor.readFields(in);
diff --git 
a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/OutputSpec.java
 
b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/OutputSpec.java
index d224a0f..9f16005 100644
--- 
a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/OutputSpec.java
+++ 
b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/OutputSpec.java
@@ -23,8 +23,8 @@ import java.io.DataOutput;
 import java.io.IOException;
 
 import org.apache.hadoop.io.Writable;
-import org.apache.hadoop.util.StringInterner;
 import org.apache.tez.dag.api.OutputDescriptor;
+import org.apache.tez.util.StringInterner;
 
 public class OutputSpec implements Writable {
 
@@ -37,7 +37,7 @@ public class OutputSpec implements Writable {
 
   public OutputSpec(String destinationVertexName,
       OutputDescriptor outputDescriptor, int physicalEdgeCount) {
-    this.destinationVertexName = 
StringInterner.weakIntern(destinationVertexName);
+    this.destinationVertexName = StringInterner.intern(destinationVertexName);
     this.outputDescriptor = outputDescriptor;
     this.physicalEdgeCount = physicalEdgeCount;
   }
@@ -64,7 +64,7 @@ public class OutputSpec implements Writable {
 
   @Override
   public void readFields(DataInput in) throws IOException {
-    destinationVertexName = StringInterner.weakIntern(in.readUTF());
+    destinationVertexName = StringInterner.intern(in.readUTF());
     physicalEdgeCount = in.readInt();
     outputDescriptor = new OutputDescriptor();
     outputDescriptor.readFields(in);
diff --git 
a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TaskSpec.java
 
b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TaskSpec.java
index fe9afc2..63c251c 100644
--- 
a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TaskSpec.java
+++ 
b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TaskSpec.java
@@ -29,9 +29,9 @@ import javax.annotation.Nullable;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.io.Writable;
-import org.apache.hadoop.util.StringInterner;
 import org.apache.tez.dag.api.ProcessorDescriptor;
 import org.apache.tez.dag.records.TezTaskAttemptID;
+import org.apache.tez.util.StringInterner;
 
 import com.google.common.collect.Lists;
 
@@ -80,8 +80,8 @@ public class TaskSpec implements Writable {
     Objects.requireNonNull(inputSpecList, "inputSpecList is null");
     Objects.requireNonNull(outputSpecList, "outputSpecList is null");
     this.taskAttemptId = null;
-    this.dagName = StringInterner.weakIntern(dagName);
-    this.vertexName = StringInterner.weakIntern(vertexName);
+    this.dagName = StringInterner.intern(dagName);
+    this.vertexName = StringInterner.intern(vertexName);
     this.processorDescriptor = processorDescriptor;
     this.inputSpecList = inputSpecList;
     this.outputSpecList = outputSpecList;
@@ -113,8 +113,8 @@ public class TaskSpec implements Writable {
     Objects.requireNonNull(inputSpecList, "inputSpecList is null");
     Objects.requireNonNull(outputSpecList, "outputSpecList is null");
     this.taskAttemptId = taskAttemptID;
-    this.dagName = StringInterner.weakIntern(dagName);
-    this.vertexName = StringInterner.weakIntern(vertexName);
+    this.dagName = StringInterner.intern(dagName);
+    this.vertexName = StringInterner.intern(vertexName);
     this.processorDescriptor = processorDescriptor;
     this.inputSpecList = inputSpecList;
     this.outputSpecList = outputSpecList;
@@ -198,8 +198,8 @@ public class TaskSpec implements Writable {
   @Override
   public void readFields(DataInput in) throws IOException {
     taskAttemptId = TezTaskAttemptID.readTezTaskAttemptID(in);
-    dagName = StringInterner.weakIntern(in.readUTF());
-    vertexName = StringInterner.weakIntern(in.readUTF());
+    dagName = StringInterner.intern(in.readUTF());
+    vertexName = StringInterner.intern(in.readUTF());
     vertexParallelism = in.readInt();
     // TODO TEZ-305 convert this to PB
     processorDescriptor = new ProcessorDescriptor();
diff --git 
a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TaskStatistics.java
 
b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TaskStatistics.java
index eba5823..d9825c9 100644
--- 
a/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TaskStatistics.java
+++ 
b/tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TaskStatistics.java
@@ -24,9 +24,10 @@ import java.util.Map;
 
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.io.Writable;
-import org.apache.hadoop.util.StringInterner;
 
 import org.apache.tez.common.Preconditions;
+import org.apache.tez.util.StringInterner;
+
 import com.google.common.collect.Maps;
 
 public class TaskStatistics implements Writable {
@@ -40,7 +41,7 @@ public class TaskStatistics implements Writable {
   
   public void addIO(String edgeName, IOStatistics stats) {
     Preconditions.checkArgument(stats != null, edgeName);
-    ioStatistics.put(StringInterner.weakIntern(edgeName), stats);    
+    ioStatistics.put(StringInterner.intern(edgeName), stats);
   }
   
   public Map<String, IOStatistics> getIOStatistics() {
diff --git 
a/tez-runtime-library/src/main/java/org/apache/tez/runtime/library/common/shuffle/orderedgrouped/ShuffleInputEventHandlerOrderedGrouped.java
 
b/tez-runtime-library/src/main/java/org/apache/tez/runtime/library/common/shuffle/orderedgrouped/ShuffleInputEventHandlerOrderedGrouped.java
index 0c55a3a..c97cfdf 100644
--- 
a/tez-runtime-library/src/main/java/org/apache/tez/runtime/library/common/shuffle/orderedgrouped/ShuffleInputEventHandlerOrderedGrouped.java
+++ 
b/tez-runtime-library/src/main/java/org/apache/tez/runtime/library/common/shuffle/orderedgrouped/ShuffleInputEventHandlerOrderedGrouped.java
@@ -30,7 +30,6 @@ import 
org.apache.tez.runtime.library.common.CompositeInputAttemptIdentifier;
 import org.apache.tez.runtime.library.common.shuffle.ShuffleEventHandler;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.apache.hadoop.util.StringInterner;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.tez.common.TezCommonUtils;
 import org.apache.tez.common.TezUtilsInternal;
@@ -42,6 +41,7 @@ import org.apache.tez.runtime.api.events.InputFailedEvent;
 import org.apache.tez.runtime.library.common.InputAttemptIdentifier;
 import org.apache.tez.runtime.library.common.shuffle.ShuffleUtils;
 import 
org.apache.tez.runtime.library.shuffle.impl.ShuffleUserPayloads.DataMovementEventPayloadProto;
+import org.apache.tez.util.StringInterner;
 
 import com.google.protobuf.InvalidProtocolBufferException;
 
@@ -167,7 +167,7 @@ public class ShuffleInputEventHandlerOrderedGrouped 
implements ShuffleEventHandl
       }
     }
 
-    
scheduler.addKnownMapOutput(StringInterner.weakIntern(shufflePayload.getHost()),
 shufflePayload.getPort(),
+    
scheduler.addKnownMapOutput(StringInterner.intern(shufflePayload.getHost()), 
shufflePayload.getPort(),
         partitionId, srcAttemptIdentifier);
   }
 
@@ -200,7 +200,7 @@ public class ShuffleInputEventHandlerOrderedGrouped 
implements ShuffleEventHandl
       }
     }
 
-    
scheduler.addKnownMapOutput(StringInterner.weakIntern(shufflePayload.getHost()),
 shufflePayload.getPort(),
+    
scheduler.addKnownMapOutput(StringInterner.intern(shufflePayload.getHost()), 
shufflePayload.getPort(),
         partitionId, compositeInputAttemptIdentifier);
   }
 
@@ -221,7 +221,9 @@ public class ShuffleInputEventHandlerOrderedGrouped 
implements ShuffleEventHandl
    */
   private CompositeInputAttemptIdentifier constructInputAttemptIdentifier(int 
targetIndex, int targetIndexCount, int version,
                                                                           
DataMovementEventPayloadProto shufflePayload) {
-    String pathComponent = (shufflePayload.hasPathComponent()) ? 
StringInterner.weakIntern(shufflePayload.getPathComponent()) : null;
+    String pathComponent = (shufflePayload.hasPathComponent())
+        ? StringInterner.intern(shufflePayload.getPathComponent())
+        : null;
     int spillEventId = shufflePayload.getSpillId();
     CompositeInputAttemptIdentifier srcAttemptIdentifier = null;
     if (shufflePayload.hasSpillId()) {
diff --git 
a/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/common/sort/impl/dflt/TestDefaultSorter.java
 
b/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/common/sort/impl/dflt/TestDefaultSorter.java
index e0fb153..754fbfa 100644
--- 
a/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/common/sort/impl/dflt/TestDefaultSorter.java
+++ 
b/tez-runtime-library/src/test/java/org/apache/tez/runtime/library/common/sort/impl/dflt/TestDefaultSorter.java
@@ -52,7 +52,6 @@ import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.io.DataOutputBuffer;
 import org.apache.hadoop.io.NullWritable;
 import org.apache.hadoop.io.Text;
-import org.apache.hadoop.util.StringInterner;
 import org.apache.tez.common.TezRuntimeFrameworkConfigs;
 import org.apache.tez.common.TezUtils;
 import org.apache.tez.common.counters.TaskCounter;
@@ -78,6 +77,7 @@ import 
org.apache.tez.runtime.library.common.sort.impl.TezSpillRecord;
 import 
org.apache.tez.runtime.library.conf.OrderedPartitionedKVOutputConfig.SorterImpl;
 import org.apache.tez.runtime.library.partitioner.HashPartitioner;
 import org.apache.tez.runtime.library.shuffle.impl.ShuffleUserPayloads;
+import org.apache.tez.util.StringInterner;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -222,7 +222,7 @@ public class TestDefaultSorter {
       Text key = new Text(i + "");
       //Generate random size between 1 MB to 100 MB.
       int valSize = ThreadLocalRandom.current().nextInt(1 * 1024 * 1024, 100 * 
1024 * 1024);
-      String val = StringInterner.weakIntern(StringUtils.repeat("v", valSize));
+      String val = StringInterner.intern(StringUtils.repeat("v", valSize));
       sorter.write(key, new Text(val));
       i = (i + 1) % 10;
     }
diff --git 
a/tez-tools/analyzers/job-analyzer/src/main/java/org/apache/tez/analyzer/plugins/CriticalPathAnalyzer.java
 
b/tez-tools/analyzers/job-analyzer/src/main/java/org/apache/tez/analyzer/plugins/CriticalPathAnalyzer.java
index 5944870..387b0cf 100644
--- 
a/tez-tools/analyzers/job-analyzer/src/main/java/org/apache/tez/analyzer/plugins/CriticalPathAnalyzer.java
+++ 
b/tez-tools/analyzers/job-analyzer/src/main/java/org/apache/tez/analyzer/plugins/CriticalPathAnalyzer.java
@@ -26,7 +26,6 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.util.StringInterner;
 import org.apache.hadoop.util.ToolRunner;
 import org.apache.tez.analyzer.Analyzer;
 import org.apache.tez.analyzer.CSVResult;
@@ -54,8 +53,8 @@ public class CriticalPathAnalyzer extends TezAnalyzerBase 
implements Analyzer {
 
   private static final Logger LOG = 
LoggerFactory.getLogger(CriticalPathAnalyzer.class);
 
-  String succeededState = 
StringInterner.weakIntern(TaskAttemptState.SUCCEEDED.name());
-  String failedState = 
StringInterner.weakIntern(TaskAttemptState.FAILED.name());
+  private static final String SUCCEEDED_STATE = 
TaskAttemptState.SUCCEEDED.name();
+  private static final String FAILED_STATE = TaskAttemptState.FAILED.name();
 
   public enum CriticalPathDependency {
     DATA_DEPENDENCY,
@@ -130,8 +129,8 @@ public class CriticalPathAnalyzer extends TezAnalyzerBase 
implements Analyzer {
       for (TaskInfo task : vertex.getTasks()) {
         for (TaskAttemptInfo attempt : task.getTaskAttempts()) { 
           attempts.put(attempt.getTaskAttemptId(), attempt);
-          if (attempt.getStatus().equals(succeededState) ||
-              attempt.getStatus().equals(failedState)) {
+          if (attempt.getStatus().equals(SUCCEEDED_STATE) ||
+              attempt.getStatus().equals(FAILED_STATE)) {
             if (lastAttemptFinishTime < attempt.getFinishTime()) {
               lastAttempt = attempt;
               lastAttemptFinishTime = attempt.getFinishTime();

Reply via email to