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();