4343import java .util .stream .Collectors ;
4444import org .apache .hadoop .hdds .conf .ConfigurationSource ;
4545import org .apache .hadoop .hdds .protocol .DatanodeDetails ;
46+ import org .apache .hadoop .hdds .protocol .DatanodeID ;
4647import org .apache .hadoop .hdds .protocol .proto .HddsProtos ;
4748import org .apache .hadoop .hdds .protocol .proto .HddsProtos .NodeOperationalState ;
4849import org .apache .hadoop .hdds .protocol .proto .HddsProtos .NodeState ;
@@ -309,12 +310,11 @@ public void addNode(DatanodeDetails datanodeDetails,
309310 LayoutVersionProto layoutInfo ) throws NodeAlreadyExistsException {
310311 NodeStatus newNodeStatus = newNodeStatus (datanodeDetails , layoutInfo );
311312 nodeStateMap .addNode (datanodeDetails , newNodeStatus , layoutInfo );
312- UUID dnID = datanodeDetails .getUuid ();
313313 try {
314314 updateLastKnownLayoutVersion (datanodeDetails , layoutInfo );
315315 } catch (NodeNotFoundException ex ) {
316- LOG . error ("Inconsistent NodeStateMap! Datanode with ID {} was " +
317- " added but not found in map: {}" , dnID , nodeStateMap );
316+ throw new IllegalStateException ("Inconsistent NodeStateMap! Datanode "
317+ + datanodeDetails . getID () + " was added but not found in map: " + nodeStateMap );
318318 }
319319 }
320320
@@ -374,12 +374,11 @@ public int getPipelinesCount(DatanodeDetails datanodeDetails) {
374374 */
375375 public DatanodeInfo getNode (DatanodeDetails datanodeDetails )
376376 throws NodeNotFoundException {
377- return getNode (datanodeDetails .getUuid ());
377+ return getNode (datanodeDetails .getID ());
378378 }
379379
380- public DatanodeInfo getNode (UUID uuid )
381- throws NodeNotFoundException {
382- return nodeStateMap .getNodeInfo (uuid );
380+ public DatanodeInfo getNode (DatanodeID datanodeID ) throws NodeNotFoundException {
381+ return nodeStateMap .getNodeInfo (datanodeID );
383382 }
384383
385384 /**
@@ -389,7 +388,7 @@ public DatanodeInfo getNode(UUID uuid)
389388 */
390389 public void updateLastHeartbeatTime (DatanodeDetails datanodeDetails )
391390 throws NodeNotFoundException {
392- nodeStateMap .getNodeInfo (datanodeDetails .getUuid ())
391+ nodeStateMap .getNodeInfo (datanodeDetails .getID ())
393392 .updateLastHeartbeatTime ();
394393 }
395394
@@ -403,7 +402,7 @@ public void updateLastHeartbeatTime(DatanodeDetails datanodeDetails)
403402 public void updateLastKnownLayoutVersion (DatanodeDetails datanodeDetails ,
404403 LayoutVersionProto layoutInfo )
405404 throws NodeNotFoundException {
406- nodeStateMap .getNodeInfo (datanodeDetails .getUuid ())
405+ nodeStateMap .getNodeInfo (datanodeDetails .getID ())
407406 .updateLastKnownLayoutVersion (layoutInfo );
408407 }
409408
@@ -417,8 +416,7 @@ public void updateLastKnownLayoutVersion(DatanodeDetails datanodeDetails,
417416 public void updateNode (DatanodeDetails datanodeDetails ,
418417 LayoutVersionProto layoutInfo )
419418 throws NodeNotFoundException {
420- DatanodeInfo datanodeInfo =
421- nodeStateMap .getNodeInfo (datanodeDetails .getUuid ());
419+ final DatanodeInfo datanodeInfo = nodeStateMap .getNodeInfo (datanodeDetails .getID ());
422420 NodeStatus newNodeStatus = newNodeStatus (datanodeDetails , layoutInfo );
423421 LOG .info ("updating node {} from {} to {} with status {}" ,
424422 datanodeDetails .getUuidString (),
@@ -440,7 +438,7 @@ public void updateNode(DatanodeDetails datanodeDetails,
440438 */
441439 public NodeStatus getNodeStatus (DatanodeDetails datanodeDetails )
442440 throws NodeNotFoundException {
443- return nodeStateMap .getNodeStatus (datanodeDetails .getUuid ());
441+ return nodeStateMap .getNodeStatus (datanodeDetails .getID ());
444442 }
445443
446444 /**
@@ -582,12 +580,12 @@ public void setNodeOperationalState(DatanodeDetails dn,
582580 public void setNodeOperationalState (DatanodeDetails dn ,
583581 NodeOperationalState newState ,
584582 long stateExpiryEpochSec ) throws NodeNotFoundException {
585- DatanodeInfo dni = nodeStateMap .getNodeInfo (dn .getUuid ());
583+ final DatanodeID id = dn .getID ();
584+ final DatanodeInfo dni = nodeStateMap .getNodeInfo (id );
586585 NodeStatus oldStatus = dni .getNodeStatus ();
587586 if (oldStatus .getOperationalState () != newState ||
588587 oldStatus .getOpStateExpiryEpochSeconds () != stateExpiryEpochSec ) {
589- nodeStateMap .updateNodeOperationalState (
590- dn .getUuid (), newState , stateExpiryEpochSec );
588+ nodeStateMap .updateNodeOperationalState (id , newState , stateExpiryEpochSec );
591589 // This will trigger an event based on the nodes health when the
592590 // operational state changes. Eg a node that was IN_MAINTENANCE goes
593591 // to IN_SERVICE + HEALTHY. This will trigger the HEALTHY node event to
@@ -680,58 +678,49 @@ public void removePipeline(Pipeline pipeline) {
680678
681679 /**
682680 * Adds the given container to the specified datanode.
683- *
684- * @param uuid - datanode uuid
685- * @param containerId - containerID
686681 * @throws NodeNotFoundException - if datanode is not known. For new datanode
687682 * use addDatanodeInContainerMap call.
688683 */
689- public void addContainer (final UUID uuid ,
684+ public void addContainer (final DatanodeID datanodeID ,
690685 final ContainerID containerId )
691686 throws NodeNotFoundException {
692- nodeStateMap .addContainer (uuid , containerId );
687+ nodeStateMap .addContainer (datanodeID , containerId );
693688 }
694689
695690 /**
696691 * Removes the given container from the specified datanode.
697- *
698- * @param uuid - datanode uuid
699- * @param containerId - containerID
700692 * @throws NodeNotFoundException - if datanode is not known. For new datanode
701693 * use addDatanodeInContainerMap call.
702694 */
703- public void removeContainer (final UUID uuid ,
695+ public void removeContainer (final DatanodeID datanodeID ,
704696 final ContainerID containerId )
705697 throws NodeNotFoundException {
706- nodeStateMap .removeContainer (uuid , containerId );
698+ nodeStateMap .removeContainer (datanodeID , containerId );
707699 }
708700
709701 /**
710702 * Update set of containers available on a datanode.
711- * @param uuid - DatanodeID
712- * @param containerIds - Set of containerIDs
713703 * @throws NodeNotFoundException - if datanode is not known.
714704 */
715- public void setContainers (UUID uuid , Set <ContainerID > containerIds )
705+ public void setContainers (DatanodeID datanodeID , Set <ContainerID > containerIds )
716706 throws NodeNotFoundException {
717- nodeStateMap .setContainers (uuid , containerIds );
707+ nodeStateMap .setContainers (datanodeID , containerIds );
718708 }
719709
720710 /**
721711 * Return set of containerIDs available on a datanode. This is a copy of the
722712 * set which resides inside NodeStateMap and hence can be modified without
723713 * synchronization or side effects.
724- * @param uuid - DatanodeID
725714 * @return - set of containerIDs
726715 */
727- public Set <ContainerID > getContainers (UUID uuid )
716+ public Set <ContainerID > getContainers (DatanodeID datanodeID )
728717 throws NodeNotFoundException {
729- return nodeStateMap .getContainers (uuid );
718+ return nodeStateMap .getContainers (datanodeID );
730719 }
731720
732- public int getContainerCount (UUID uuid )
721+ public int getContainerCount (DatanodeID datanodeID )
733722 throws NodeNotFoundException {
734- return nodeStateMap .getContainerCount (uuid );
723+ return nodeStateMap .getContainerCount (datanodeID );
735724 }
736725
737726 /**
@@ -792,7 +781,7 @@ public synchronized void forceNodesToHealthyReadOnly() {
792781 try {
793782 List <DatanodeInfo > nodes = nodeStateMap .getDatanodeInfos (null , HEALTHY );
794783 for (DatanodeInfo node : nodes ) {
795- nodeStateMap .updateNodeHealthState (node .getUuid (),
784+ nodeStateMap .updateNodeHealthState (node .getID (),
796785 HEALTHY_READONLY );
797786 if (state2EventMap .containsKey (HEALTHY_READONLY )) {
798787 // At this point pipeline creation is already frozen and the node's
@@ -860,7 +849,7 @@ public synchronized void checkNodesHealth() {
860849
861850 try {
862851 for (DatanodeInfo node : nodeStateMap .getAllDatanodeInfos ()) {
863- NodeStatus status = nodeStateMap .getNodeStatus (node .getUuid ());
852+ NodeStatus status = nodeStateMap .getNodeStatus (node .getID ());
864853 switch (status .getHealth ()) {
865854 case HEALTHY :
866855 updateNodeLayoutVersionState (node , layoutMisMatchCondition , status ,
@@ -967,7 +956,7 @@ private void updateNodeState(DatanodeInfo node, Predicate<Long> condition,
967956 NodeState newHealthState = nodeHealthSM .
968957 getNextState (status .getHealth (), lifeCycleEvent );
969958 NodeStatus newStatus =
970- nodeStateMap .updateNodeHealthState (node .getUuid (), newHealthState );
959+ nodeStateMap .updateNodeHealthState (node .getID (), newHealthState );
971960 fireHealthStateEvent (newStatus .getHealth (), node );
972961 }
973962 } catch (InvalidStateTransitionException e ) {
@@ -1006,7 +995,7 @@ private void updateNodeLayoutVersionState(DatanodeInfo node,
1006995 NodeState newHealthState = nodeHealthSM .getNextState (status .getHealth (),
1007996 lifeCycleEvent );
1008997 NodeStatus newStatus =
1009- nodeStateMap .updateNodeHealthState (node .getUuid (), newHealthState );
998+ nodeStateMap .updateNodeHealthState (node .getID (), newHealthState );
1010999 fireHealthStateEvent (newStatus .getHealth (), node );
10111000 }
10121001 } catch (InvalidStateTransitionException e ) {
@@ -1086,7 +1075,7 @@ ScheduledFuture unpause() {
10861075 return healthCheckFuture ;
10871076 }
10881077
1089- protected void removeNode (DatanodeDetails datanodeDetails ) {
1090- nodeStateMap .removeNode (datanodeDetails );
1078+ protected void removeNode (DatanodeID datanodeID ) {
1079+ nodeStateMap .removeNode (datanodeID );
10911080 }
10921081}
0 commit comments