YARN-4551. Address the duplication between StatusUpdateWhenHealthy and StatusUpdateWhenUnhealthy transitions. (Sunil G via kasha)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/321072ba Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/321072ba Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/321072ba Branch: refs/heads/HDFS-1312 Commit: 321072ba8114ed5ad2e9c5c2cfd7e1a54def6ebe Parents: c722b62 Author: Karthik Kambatla <[email protected]> Authored: Wed Jan 13 12:09:34 2016 -0800 Committer: Karthik Kambatla <[email protected]> Committed: Wed Jan 13 12:09:34 2016 -0800 ---------------------------------------------------------------------- hadoop-yarn-project/CHANGES.txt | 3 ++ .../resourcemanager/rmnode/RMNodeImpl.java | 38 ++++++++++---------- 2 files changed, 21 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/321072ba/hadoop-yarn-project/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index 887211a..5dc1272 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -91,6 +91,9 @@ Release 2.9.0 - UNRELEASED YARN-4571. Make app id/name available to the yarn authorizer provider for better auditing. (Jian He via wangda) + YARN-4551. Address the duplication between StatusUpdateWhenHealthy and + StatusUpdateWhenUnhealthy transitions. (Sunil G via kasha) + OPTIMIZATIONS BUG FIXES http://git-wip-us.apache.org/repos/asf/hadoop/blob/321072ba/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmnode/RMNodeImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmnode/RMNodeImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmnode/RMNodeImpl.java index 8448287..3873e5f 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmnode/RMNodeImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmnode/RMNodeImpl.java @@ -744,6 +744,20 @@ public class RMNodeImpl implements RMNode, EventHandler<RMNodeEvent> { rmNode.totalCapability = resourceOption.getResource(); } + private static NodeHealthStatus updateRMNodeFromStatusEvents( + RMNodeImpl rmNode, RMNodeStatusEvent statusEvent) { + // Switch the last heartbeatresponse. + rmNode.latestNodeHeartBeatResponse = statusEvent.getLatestResponse(); + NodeHealthStatus remoteNodeHealthStatus = statusEvent.getNodeHealthStatus(); + rmNode.setHealthReport(remoteNodeHealthStatus.getHealthReport()); + rmNode.setLastHealthReportTime(remoteNodeHealthStatus + .getLastHealthReportTime()); + rmNode.setAggregatedContainersUtilization(statusEvent + .getAggregatedContainersUtilization()); + rmNode.setNodeUtilization(statusEvent.getNodeUtilization()); + return remoteNodeHealthStatus; + } + public static class AddNodeTransition implements SingleArcTransition<RMNodeImpl, RMNodeEvent> { @@ -1069,17 +1083,8 @@ public class RMNodeImpl implements RMNode, EventHandler<RMNodeEvent> { RMNodeStatusEvent statusEvent = (RMNodeStatusEvent) event; - // Switch the last heartbeatresponse. - rmNode.latestNodeHeartBeatResponse = statusEvent.getLatestResponse(); - - NodeHealthStatus remoteNodeHealthStatus = - statusEvent.getNodeHealthStatus(); - rmNode.setHealthReport(remoteNodeHealthStatus.getHealthReport()); - rmNode.setLastHealthReportTime( - remoteNodeHealthStatus.getLastHealthReportTime()); - rmNode.setAggregatedContainersUtilization( - statusEvent.getAggregatedContainersUtilization()); - rmNode.setNodeUtilization(statusEvent.getNodeUtilization()); + NodeHealthStatus remoteNodeHealthStatus = updateRMNodeFromStatusEvents( + rmNode, statusEvent); NodeState initialState = rmNode.getState(); boolean isNodeDecommissioning = initialState.equals(NodeState.DECOMMISSIONING); @@ -1151,15 +1156,8 @@ public class RMNodeImpl implements RMNode, EventHandler<RMNodeEvent> { RMNodeStatusEvent statusEvent = (RMNodeStatusEvent)event; // Switch the last heartbeatresponse. - rmNode.latestNodeHeartBeatResponse = statusEvent.getLatestResponse(); - NodeHealthStatus remoteNodeHealthStatus = - statusEvent.getNodeHealthStatus(); - rmNode.setHealthReport(remoteNodeHealthStatus.getHealthReport()); - rmNode.setLastHealthReportTime( - remoteNodeHealthStatus.getLastHealthReportTime()); - rmNode.setAggregatedContainersUtilization( - statusEvent.getAggregatedContainersUtilization()); - rmNode.setNodeUtilization(statusEvent.getNodeUtilization()); + NodeHealthStatus remoteNodeHealthStatus = updateRMNodeFromStatusEvents( + rmNode, statusEvent); if (remoteNodeHealthStatus.getIsNodeHealthy()) { rmNode.context.getDispatcher().getEventHandler().handle( new NodeAddedSchedulerEvent(rmNode));
