Repository: incubator-slider Updated Branches: refs/heads/develop 0908d8fc8 -> 90d4331d3
SLIDER-578 Change RoleHistory#failedNodes to Set Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/90d4331d Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/90d4331d Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/90d4331d Branch: refs/heads/develop Commit: 90d4331d3dea09ac57b0d6548158fca5ec8e69c6 Parents: 0908d8f Author: tedyu <[email protected]> Authored: Tue Oct 28 13:30:27 2014 -0700 Committer: tedyu <[email protected]> Committed: Tue Oct 28 13:30:27 2014 -0700 ---------------------------------------------------------------------- .../server/appmaster/state/RoleHistory.java | 31 ++++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/90d4331d/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleHistory.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleHistory.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleHistory.java index b9c266e..2b35ad5 100644 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleHistory.java +++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleHistory.java @@ -18,7 +18,17 @@ package org.apache.slider.server.appmaster.state; -import com.google.common.annotations.VisibleForTesting; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; + import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.yarn.api.records.Container; @@ -33,14 +43,7 @@ import org.apache.slider.server.avro.RoleHistoryWriter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; +import com.google.common.annotations.VisibleForTesting; /** * The Role History. @@ -93,7 +96,7 @@ public class RoleHistory { * Track the failed nodes. Currently used to make wiser decision of container * ask with/without locality. Has other potential uses as well. */ - private Map<String, Object> failedNodes = new HashMap<String, Object>(); + private Set<String> failedNodes = new HashSet<String>(); // dummy to be used in maps for faster lookup where we don't care about values private final Object DUMMY_VALUE = new Object(); @@ -682,7 +685,7 @@ public class RoleHistory { } if (updatedNode.getNodeState() != null && updatedNode.getNodeState().isUnusable()) { - failedNodes.put(hostname, DUMMY_VALUE); + failedNodes.add(hostname); nodemap.remove(hostname); } else { failedNodes.remove(hostname); @@ -741,7 +744,7 @@ public class RoleHistory { available = false; } else { available = nodeEntry.containerCompleted(wasReleased); - boolean isFailedNode = failedNodes.containsKey(RoleHistoryUtils + boolean isFailedNode = failedNodes.contains(RoleHistoryUtils .hostnameOf(container)); if (!isFailedNode) { maybeQueueNodeForWork(container, nodeEntry, available); @@ -816,7 +819,9 @@ public class RoleHistory { * @return the list */ public List<String> cloneFailedNodes() { - return new ArrayList<String>(failedNodes.keySet()); + List<String> lst = new ArrayList<String>(); + lst.addAll(failedNodes); + return lst; } }
