diff --git a/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/protocol/MockDatanodeDetails.java b/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/protocol/MockDatanodeDetails.java index f3ea2fe80874..8d1424248f8a 100644 --- a/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/protocol/MockDatanodeDetails.java +++ b/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/protocol/MockDatanodeDetails.java @@ -20,7 +20,6 @@ import static org.apache.hadoop.hdds.protocol.DatanodeDetails.Port.Name.ALL_PORTS; import java.util.Random; -import java.util.UUID; import java.util.concurrent.ThreadLocalRandom; import org.apache.hadoop.hdds.protocol.proto.HddsProtos; import org.apache.ozone.test.GenericTestUtils; @@ -31,16 +30,16 @@ public final class MockDatanodeDetails { /** - * Creates DatanodeDetails with random UUID and random IP address. + * Creates DatanodeDetails with random ID and random IP address. * * @return DatanodeDetails */ public static DatanodeDetails randomDatanodeDetails() { - return createDatanodeDetails(UUID.randomUUID()); + return createDatanodeDetails(DatanodeID.randomID()); } /** - * Creates DatanodeDetails with random UUID, specific hostname and network + * Creates DatanodeDetails with random DatanodeID, specific hostname and network * location. * * @return DatanodeDetails @@ -52,46 +51,46 @@ public static DatanodeDetails createDatanodeDetails(String hostname, + "." + random.nextInt(256) + "." + random.nextInt(256) + "." + random.nextInt(256); - return createDatanodeDetails(UUID.randomUUID().toString(), hostname, + return createDatanodeDetails(DatanodeID.randomID(), hostname, ipAddress, loc); } /** - * Creates DatanodeDetails using the given UUID. + * Creates DatanodeDetails using the given DatanodeID. * - * @param uuid Datanode's UUID + * @param id Datanode's ID * * @return DatanodeDetails */ - public static DatanodeDetails createDatanodeDetails(UUID uuid) { + public static DatanodeDetails createDatanodeDetails(DatanodeID id) { Random random = ThreadLocalRandom.current(); String ipAddress = random.nextInt(256) + "." + random.nextInt(256) + "." + random.nextInt(256) + "." + random.nextInt(256); - return createDatanodeDetails(uuid.toString(), "localhost" + "-" + ipAddress, + return createDatanodeDetails(id, "localhost" + "-" + ipAddress, ipAddress, null); } /** * Creates DatanodeDetails with the given information. * - * @param uuid Datanode's UUID + * @param id Datanode's ID * @param hostname hostname of Datanode * @param ipAddress ip address of Datanode * * @return DatanodeDetails */ - public static DatanodeDetails createDatanodeDetails(String uuid, + public static DatanodeDetails createDatanodeDetails(DatanodeID id, String hostname, String ipAddress, String networkLocation) { - return createDatanodeDetails(uuid, hostname, ipAddress, networkLocation, 0); + return createDatanodeDetails(id, hostname, ipAddress, networkLocation, 0); } - public static DatanodeDetails createDatanodeDetails(String uuid, + public static DatanodeDetails createDatanodeDetails(DatanodeID id, String hostname, String ipAddress, String networkLocation, int port) { DatanodeDetails.Builder dn = DatanodeDetails.newBuilder() - .setUuid(UUID.fromString(uuid)) + .setID(id) .setHostName(hostname) .setIpAddress(ipAddress) .setNetworkLocation(networkLocation) @@ -106,12 +105,12 @@ public static DatanodeDetails createDatanodeDetails(String uuid, } /** - * Creates DatanodeDetails with random UUID and valid local address and port. + * Creates DatanodeDetails with random ID and valid local address and port. * * @return DatanodeDetails */ public static DatanodeDetails randomLocalDatanodeDetails() { - return createDatanodeDetails(UUID.randomUUID().toString(), + return createDatanodeDetails(DatanodeID.randomID(), GenericTestUtils.PortAllocator.HOSTNAME, GenericTestUtils.PortAllocator.HOST_ADDRESS, null, GenericTestUtils.PortAllocator.getFreePort()); diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/SCMBlockDeletingService.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/SCMBlockDeletingService.java index 81b40729c4cd..dfcaca333c30 100644 --- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/SCMBlockDeletingService.java +++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/SCMBlockDeletingService.java @@ -313,7 +313,7 @@ protected Set getDatanodesWithinCommandLimit( final Set included = new HashSet<>(); for (DatanodeDetails dn : datanodes) { if (nodeManager.getTotalDatanodeCommandCount(dn, Type.deleteBlocksCommand) < deleteBlocksPendingCommandLimit - && nodeManager.getCommandQueueCount(dn.getUuid(), Type.deleteBlocksCommand) < 2) { + && nodeManager.getCommandQueueCount(dn.getID(), Type.deleteBlocksCommand) < 2) { included.add(dn); } } diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/CommandQueue.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/CommandQueue.java index f122215105f6..87e458767f55 100644 --- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/CommandQueue.java +++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/CommandQueue.java @@ -24,7 +24,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.UUID; +import org.apache.hadoop.hdds.protocol.DatanodeID; import org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.SCMCommandProto; import org.apache.hadoop.ozone.protocol.commands.SCMCommand; @@ -38,7 +38,7 @@ * Note this class is not thread safe, and accesses must be protected by a lock. */ public class CommandQueue { - private final Map commandMap; + private final Map commandMap; private long commandsInQueue; /** @@ -71,12 +71,11 @@ public void clear() { * commands returns a empty list otherwise the current set of * commands are returned and command map set to empty list again. * - * @param datanodeUuid Datanode UUID * @return List of SCM Commands. */ @SuppressWarnings("unchecked") - List> getCommand(final UUID datanodeUuid) { - Commands cmds = commandMap.remove(datanodeUuid); + List> getCommand(final DatanodeID datanodeID) { + Commands cmds = commandMap.remove(datanodeID); List> cmdList = null; if (cmds != null) { cmdList = cmds.getCommands(); @@ -93,13 +92,13 @@ List> getCommand(final UUID datanodeUuid) { * Command.contributesToQueueSize() method will not be included in the count. * At the current time, only low priority ReplicateContainerCommands meet this * condition. - * @param datanodeUuid Datanode UUID. + * @param datanodeID Datanode ID. * @param commandType The type of command for which to get the count. * @return The currently queued command count, or zero if none are queued. */ public int getDatanodeCommandCount( - final UUID datanodeUuid, SCMCommandProto.Type commandType) { - Commands commands = commandMap.get(datanodeUuid); + final DatanodeID datanodeID, SCMCommandProto.Type commandType) { + Commands commands = commandMap.get(datanodeID); if (commands == null) { return 0; } @@ -112,27 +111,21 @@ public int getDatanodeCommandCount( * Command.contributesToQueueSize() method will not be included in the count. * At the current time, only low priority ReplicateContainerCommands meet this * condition. - * @param datanodeUuid Datanode UUID * @return A map containing the command summary. Note the returned map is a * copy of the internal map and can be modified safely by the caller. */ public Map getDatanodeCommandSummary( - final UUID datanodeUuid) { - Commands commands = commandMap.get(datanodeUuid); + final DatanodeID datanodeID) { + Commands commands = commandMap.get(datanodeID); if (commands == null) { return Collections.emptyMap(); } return commands.getAllCommandsSummary(); } - /** - * Adds a Command to the SCM Queue to send the command to container. - * - * @param datanodeUuid DatanodeDetails.Uuid - * @param command - Command - */ - public void addCommand(final UUID datanodeUuid, final SCMCommand command) { - commandMap.computeIfAbsent(datanodeUuid, s -> new Commands()).add(command); + /** Adds a Command to the SCM Queue to send the command to container. */ + public void addCommand(final DatanodeID datanodeID, final SCMCommand command) { + commandMap.computeIfAbsent(datanodeID, s -> new Commands()).add(command); commandsInQueue++; } diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/DeadNodeHandler.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/DeadNodeHandler.java index bd6ee9503b35..773841575a6f 100644 --- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/DeadNodeHandler.java +++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/DeadNodeHandler.java @@ -109,7 +109,7 @@ public void onMessage(final DatanodeDetails datanodeDetails, // remove commands in command queue for the DN final List> cmdList = nodeManager.getCommandQueue( - datanodeDetails.getUuid()); + datanodeDetails.getID()); LOG.info("Clearing command queue of size {} for DN {}", cmdList.size(), datanodeDetails); diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/NodeManager.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/NodeManager.java index 2893acb78e4f..cb8093ff1bcb 100644 --- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/NodeManager.java +++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/NodeManager.java @@ -26,7 +26,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import java.util.UUID; import java.util.function.BiConsumer; import org.apache.hadoop.hdds.protocol.DatanodeDetails; import org.apache.hadoop.hdds.protocol.DatanodeID; @@ -312,11 +311,11 @@ int getNodeQueuedCommandCount(DatanodeDetails datanodeDetails, /** * Get the number of commands of the given type queued in the SCM CommandQueue * for the given datanode. - * @param dnID The UUID of the datanode. + * @param dnID The ID of the datanode. * @param cmdType The Type of command to query the current count for. * @return The count of commands queued, or zero if none. */ - int getCommandQueueCount(UUID dnID, SCMCommandProto.Type cmdType); + int getCommandQueueCount(DatanodeID dnID, SCMCommandProto.Type cmdType); /** * Get the total number of pending commands of the given type on the given @@ -354,11 +353,10 @@ Map getTotalDatanodeCommandCounts( /** * Get list of SCMCommands in the Command Queue for a particular Datanode. - * @param dnID - Datanode uuid. * @return list of commands */ // TODO: We can give better name to this method! - List> getCommandQueue(UUID dnID); + List> getCommandQueue(DatanodeID dnID); /** @return the datanode of the given id if it exists; otherwise, return null. */ @Nullable DatanodeDetails getNode(@Nullable DatanodeID id); diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/SCMNodeManager.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/SCMNodeManager.java index 658b9ffe82c5..1485f1ea29e3 100644 --- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/SCMNodeManager.java +++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/SCMNodeManager.java @@ -40,7 +40,6 @@ import java.util.Map; import java.util.Objects; import java.util.Set; -import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; @@ -547,9 +546,9 @@ public List> processHeartbeat(DatanodeDetails datanodeDetails, writeLock().lock(); try { Map summary = - commandQueue.getDatanodeCommandSummary(datanodeDetails.getUuid()); + commandQueue.getDatanodeCommandSummary(datanodeDetails.getID()); List> commands = - commandQueue.getCommand(datanodeDetails.getUuid()); + commandQueue.getCommand(datanodeDetails.getID()); // Update the SCMCommand of deleteBlocksCommand Status for (SCMCommand command : commands) { @@ -853,7 +852,7 @@ public int getNodeQueuedCommandCount(DatanodeDetails datanodeDetails, * @return The count of commands queued, or zero if none. */ @Override - public int getCommandQueueCount(UUID dnID, SCMCommandProto.Type cmdType) { + public int getCommandQueueCount(DatanodeID dnID, SCMCommandProto.Type cmdType) { readLock().lock(); try { return commandQueue.getDatanodeCommandCount(dnID, cmdType); @@ -885,7 +884,7 @@ public int getTotalDatanodeCommandCount(DatanodeDetails datanodeDetails, ". Assuming zero", datanodeDetails, cmdType); dnCount = 0; } - return getCommandQueueCount(datanodeDetails.getUuid(), cmdType) + dnCount; + return getCommandQueueCount(datanodeDetails.getID(), cmdType) + dnCount; } finally { readLock().unlock(); } @@ -1490,7 +1489,7 @@ public int minHealthyVolumeNum(List dnList) { getHealthyVolumeCount()); } catch (NodeNotFoundException e) { LOG.warn("Cannot generate NodeStat, datanode {} not found.", - dn.getUuid()); + dn.getID()); } } Preconditions.checkArgument(!volumeCountList.isEmpty()); @@ -1525,7 +1524,7 @@ public int pipelineLimit(DatanodeDetails dn) { } } catch (NodeNotFoundException e) { LOG.warn("Cannot generate NodeStat, datanode {} not found.", - dn.getUuid()); + dn.getID()); } return 0; } @@ -1647,10 +1646,9 @@ public int getPipeLineCount(DatanodeDetails datanodeDetails) @Override public void addDatanodeCommand(DatanodeID datanodeID, SCMCommand command) { - final UUID dnId = datanodeID.getUuid(); writeLock().lock(); try { - this.commandQueue.addCommand(dnId, command); + this.commandQueue.addCommand(datanodeID, command); } finally { writeLock().unlock(); } @@ -1690,7 +1688,7 @@ public void onMessage(CommandForDatanode commandForDatanode, } @Override - public List> getCommandQueue(UUID dnID) { + public List> getCommandQueue(DatanodeID dnID) { // Getting the queue actually clears it and returns the commands, so this // is a write operation and not a read as the method name suggests. writeLock().lock(); @@ -1836,7 +1834,7 @@ public void removeNode(DatanodeDetails datanodeDetails) throws NodeNotFoundExcep } nodeStateManager.removeNode(datanodeDetails.getID()); removeFromDnsToDnIdMap(datanodeDetails.getID(), datanodeDetails.getIpAddress()); - final List> cmdList = getCommandQueue(datanodeDetails.getUuid()); + final List> cmdList = getCommandQueue(datanodeDetails.getID()); LOG.info("Clearing command queue of size {} for DN {}", cmdList.size(), datanodeDetails); } else { LOG.warn("Node not decommissioned or dead, cannot remove: {}", datanodeDetails); diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMDatanodeHeartbeatDispatcher.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMDatanodeHeartbeatDispatcher.java index 92d2556f1484..9617d12e2535 100644 --- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMDatanodeHeartbeatDispatcher.java +++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMDatanodeHeartbeatDispatcher.java @@ -31,8 +31,8 @@ import com.google.protobuf.Message; import java.util.List; import java.util.Map; -import java.util.UUID; import org.apache.hadoop.hdds.protocol.DatanodeDetails; +import org.apache.hadoop.hdds.protocol.DatanodeID; import org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.CommandQueueReportProto; import org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.CommandStatusReportsProto; import org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.ContainerActionsProto; @@ -90,7 +90,7 @@ public List> dispatch(SCMHeartbeatRequestProto heartbeat) { if (!nodeManager.isNodeRegistered(datanodeDetails)) { LOG.info("SCM received heartbeat from an unregistered datanode {}. " + "Asking datanode to re-register.", datanodeDetails); - UUID dnID = datanodeDetails.getUuid(); + DatanodeID dnID = datanodeDetails.getID(); nodeManager.addDatanodeCommand(datanodeDetails.getID(), new ReregisterCommand()); commands = nodeManager.getCommandQueue(dnID); diff --git a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/HddsTestUtils.java b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/HddsTestUtils.java index a61562c361a4..25c3ba35068c 100644 --- a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/HddsTestUtils.java +++ b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/HddsTestUtils.java @@ -102,7 +102,7 @@ private HddsTestUtils() { public static DatanodeDetails getDatanodeDetails( RegisteredCommand registeredCommand) { return MockDatanodeDetails.createDatanodeDetails( - registeredCommand.getDatanode().getUuidString(), + registeredCommand.getDatanode().getID(), registeredCommand.getDatanode().getHostName(), registeredCommand.getDatanode().getIpAddress(), null); diff --git a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/MockNodeManager.java b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/MockNodeManager.java index d5112b428cf2..5c2dafb27196 100644 --- a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/MockNodeManager.java +++ b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/MockNodeManager.java @@ -30,7 +30,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.stream.Collectors; @@ -103,7 +102,7 @@ public class MockNodeManager implements NodeManager { private final List deadNodes; private final Map nodeMetricMap; private final SCMNodeStat aggregateStat; - private final Map>> commandMap; + private final Map>> commandMap; private Node2PipelineMap node2PipelineMap; private final NodeStateMap node2ContainerMap; private NetworkTopology clusterMap; @@ -520,15 +519,14 @@ public void removeContainer(DatanodeDetails dd, @Override public void addDatanodeCommand(DatanodeID datanodeID, SCMCommand command) { - final UUID dnId = datanodeID.getUuid(); - if (commandMap.containsKey(dnId)) { - List> commandList = commandMap.get(dnId); + if (commandMap.containsKey(datanodeID)) { + List> commandList = commandMap.get(datanodeID); Preconditions.checkNotNull(commandList); commandList.add(command); } else { List> commandList = new LinkedList<>(); commandList.add(command); - commandMap.put(dnId, commandList); + commandMap.put(datanodeID, commandList); } } @@ -581,12 +579,12 @@ public int getNodeQueuedCommandCount(DatanodeDetails datanodeDetails, /** * Get the number of commands of the given type queued in the SCM CommandQueue * for the given datanode. - * @param dnID The UUID of the datanode. + * @param dnID The ID of the datanode. * @param cmdType The Type of command to query the current count for. * @return The count of commands queued, or zero if none. */ @Override - public int getCommandQueueCount(UUID dnID, SCMCommandProto.Type cmdType) { + public int getCommandQueueCount(DatanodeID dnID, SCMCommandProto.Type cmdType) { return 0; } @@ -634,11 +632,11 @@ public Set getContainers(DatanodeDetails uuid) throws NodeNotFoundE // Returns the number of commands that is queued to this node manager. public int getCommandCount(DatanodeDetails dd) { - List> list = commandMap.get(dd.getUuid()); + List> list = commandMap.get(dd.getID()); return (list == null) ? 0 : list.size(); } - public void clearCommandQueue(UUID dnId) { + public void clearCommandQueue(DatanodeID dnId) { if (commandMap.containsKey(dnId)) { commandMap.put(dnId, new LinkedList<>()); } @@ -825,7 +823,7 @@ public void onMessage(CommandForDatanode commandForDatanode, } @Override - public List> getCommandQueue(UUID dnID) { + public List> getCommandQueue(DatanodeID dnID) { return null; } diff --git a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/SimpleMockNodeManager.java b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/SimpleMockNodeManager.java index 4157f3053ff9..592c94f250b4 100644 --- a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/SimpleMockNodeManager.java +++ b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/SimpleMockNodeManager.java @@ -23,7 +23,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; import org.apache.hadoop.hdds.protocol.DatanodeDetails; import org.apache.hadoop.hdds.protocol.DatanodeID; @@ -310,7 +309,7 @@ public int getNodeQueuedCommandCount(DatanodeDetails datanodeDetails, * @return The count of commands queued, or zero if none. */ @Override - public int getCommandQueueCount(UUID dnID, SCMCommandProto.Type cmdType) { + public int getCommandQueueCount(DatanodeID dnID, SCMCommandProto.Type cmdType) { return 0; } @@ -339,7 +338,7 @@ public Map getTotalDatanodeCommandCounts( } @Override - public List> getCommandQueue(UUID dnID) { + public List> getCommandQueue(DatanodeID dnID) { return null; } diff --git a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestCommandQueue.java b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestCommandQueue.java index d47a37f26317..d0cfa0be699a 100644 --- a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestCommandQueue.java +++ b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestCommandQueue.java @@ -22,7 +22,7 @@ import java.util.Collections; import java.util.List; import java.util.Map; -import java.util.UUID; +import org.apache.hadoop.hdds.protocol.DatanodeID; import org.apache.hadoop.hdds.protocol.MockDatanodeDetails; import org.apache.hadoop.hdds.protocol.proto.HddsProtos; import org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos; @@ -58,35 +58,35 @@ public void testSummaryUpdated() { .ReplicationCommandPriority.LOW); - UUID datanode1UUID = UUID.randomUUID(); - UUID datanode2UUID = UUID.randomUUID(); + DatanodeID datanode1ID = DatanodeID.randomID(); + DatanodeID datanode2ID = DatanodeID.randomID(); - commandQueue.addCommand(datanode1UUID, closeContainerCommand); - commandQueue.addCommand(datanode1UUID, closeContainerCommand); - commandQueue.addCommand(datanode1UUID, createPipelineCommand); - commandQueue.addCommand(datanode1UUID, replicationCommand); - commandQueue.addCommand(datanode1UUID, lowReplicationCommand); + commandQueue.addCommand(datanode1ID, closeContainerCommand); + commandQueue.addCommand(datanode1ID, closeContainerCommand); + commandQueue.addCommand(datanode1ID, createPipelineCommand); + commandQueue.addCommand(datanode1ID, replicationCommand); + commandQueue.addCommand(datanode1ID, lowReplicationCommand); - commandQueue.addCommand(datanode2UUID, closeContainerCommand); - commandQueue.addCommand(datanode2UUID, createPipelineCommand); - commandQueue.addCommand(datanode2UUID, createPipelineCommand); + commandQueue.addCommand(datanode2ID, closeContainerCommand); + commandQueue.addCommand(datanode2ID, createPipelineCommand); + commandQueue.addCommand(datanode2ID, createPipelineCommand); // Check zero returned for unknown DN assertEquals(0, commandQueue.getDatanodeCommandCount( - UUID.randomUUID(), SCMCommandProto.Type.closeContainerCommand)); + DatanodeID.randomID(), SCMCommandProto.Type.closeContainerCommand)); assertEquals(2, commandQueue.getDatanodeCommandCount( - datanode1UUID, SCMCommandProto.Type.closeContainerCommand)); + datanode1ID, SCMCommandProto.Type.closeContainerCommand)); assertEquals(1, commandQueue.getDatanodeCommandCount( - datanode1UUID, SCMCommandProto.Type.createPipelineCommand)); + datanode1ID, SCMCommandProto.Type.createPipelineCommand)); assertEquals(0, commandQueue.getDatanodeCommandCount( - datanode1UUID, SCMCommandProto.Type.closePipelineCommand)); + datanode1ID, SCMCommandProto.Type.closePipelineCommand)); assertEquals(1, commandQueue.getDatanodeCommandCount( - datanode1UUID, SCMCommandProto.Type.replicateContainerCommand)); + datanode1ID, SCMCommandProto.Type.replicateContainerCommand)); Map commandSummary = - commandQueue.getDatanodeCommandSummary(datanode1UUID); + commandQueue.getDatanodeCommandSummary(datanode1ID); assertEquals(3, commandSummary.size()); assertEquals(Integer.valueOf(2), commandSummary.get(SCMCommandProto.Type.closeContainerCommand)); @@ -96,34 +96,34 @@ public void testSummaryUpdated() { commandSummary.get(SCMCommandProto.Type.replicateContainerCommand)); assertEquals(1, commandQueue.getDatanodeCommandCount( - datanode2UUID, SCMCommandProto.Type.closeContainerCommand)); + datanode2ID, SCMCommandProto.Type.closeContainerCommand)); assertEquals(2, commandQueue.getDatanodeCommandCount( - datanode2UUID, SCMCommandProto.Type.createPipelineCommand)); + datanode2ID, SCMCommandProto.Type.createPipelineCommand)); // Ensure the counts are cleared when the commands are retrieved - List> cmds = commandQueue.getCommand(datanode1UUID); + List> cmds = commandQueue.getCommand(datanode1ID); assertEquals(5, cmds.size()); assertEquals(0, commandQueue.getDatanodeCommandCount( - datanode1UUID, SCMCommandProto.Type.closeContainerCommand)); + datanode1ID, SCMCommandProto.Type.closeContainerCommand)); assertEquals(0, commandQueue.getDatanodeCommandCount( - datanode1UUID, SCMCommandProto.Type.createPipelineCommand)); + datanode1ID, SCMCommandProto.Type.createPipelineCommand)); assertEquals(0, commandQueue.getDatanodeCommandCount( - datanode1UUID, SCMCommandProto.Type.closePipelineCommand)); + datanode1ID, SCMCommandProto.Type.closePipelineCommand)); assertEquals(0, commandQueue.getDatanodeCommandCount( - datanode1UUID, SCMCommandProto.Type.replicateContainerCommand)); + datanode1ID, SCMCommandProto.Type.replicateContainerCommand)); assertEquals(1, commandQueue.getDatanodeCommandCount( - datanode2UUID, SCMCommandProto.Type.closeContainerCommand)); + datanode2ID, SCMCommandProto.Type.closeContainerCommand)); assertEquals(2, commandQueue.getDatanodeCommandCount( - datanode2UUID, SCMCommandProto.Type.createPipelineCommand)); + datanode2ID, SCMCommandProto.Type.createPipelineCommand)); // Ensure the commands are zeroed when the queue is cleared commandQueue.clear(); assertEquals(0, commandQueue.getDatanodeCommandCount( - datanode2UUID, SCMCommandProto.Type.closeContainerCommand)); + datanode2ID, SCMCommandProto.Type.closeContainerCommand)); assertEquals(0, commandQueue.getDatanodeCommandCount( - datanode2UUID, SCMCommandProto.Type.createPipelineCommand)); + datanode2ID, SCMCommandProto.Type.createPipelineCommand)); } } diff --git a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestDeadNodeHandler.java b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestDeadNodeHandler.java index 530fa7782c0e..775fd6f4caf3 100644 --- a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestDeadNodeHandler.java +++ b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestDeadNodeHandler.java @@ -263,7 +263,7 @@ public void testOnMessage(@TempDir File tempDir) throws Exception { //deadNodeHandler.onMessage call will not change this assertFalse( nodeManager.getClusterNetworkTopologyMap().contains(datanode1)); - assertEquals(0, nodeManager.getCommandQueueCount(datanode1.getUuid(), cmd.getType())); + assertEquals(0, nodeManager.getCommandQueueCount(datanode1.getID(), cmd.getType())); verify(publisher).fireEvent(SCMEvents.REPLICATION_MANAGER_NOTIFY, datanode1); verify(deletedBlockLog).onDatanodeDead(datanode1.getID()); diff --git a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestSCMNodeManager.java b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestSCMNodeManager.java index 0e05e91a77ea..0fbdb1ffe994 100644 --- a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestSCMNodeManager.java +++ b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestSCMNodeManager.java @@ -61,7 +61,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import java.util.UUID; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; @@ -733,7 +732,7 @@ public void testScmDetectStaleAndDeadNode() "Expected to find 1 stale node"); assertEquals(1, staleNodeList.size(), "Expected to find 1 stale node"); - assertEquals(staleNode.getUuid(), staleNodeList.get(0).getUuid(), + assertEquals(staleNode.getID(), staleNodeList.get(0).getID(), "Stale node is not the expected ID"); Map> nodeCounts = nodeManager.getNodeCount(); @@ -771,7 +770,7 @@ public void testScmDetectStaleAndDeadNode() assertEquals(1, nodeCounts.get(HddsProtos.NodeOperationalState.IN_SERVICE.name()) .get(HddsProtos.NodeState.DEAD.name()).intValue()); - assertEquals(staleNode.getUuid(), deadNodeList.get(0).getUuid(), + assertEquals(staleNode.getID(), deadNodeList.get(0).getID(), "Dead node is not the expected ID"); } } @@ -1058,8 +1057,8 @@ public void testCommandCount() throws AuthenticationException, IOException { SCMNodeManager nodeManager = createNodeManager(getConf()); - UUID datanode1 = UUID.randomUUID(); - UUID datanode2 = UUID.randomUUID(); + DatanodeID datanode1 = DatanodeID.randomID(); + DatanodeID datanode2 = DatanodeID.randomID(); long containerID = 1; SCMCommand closeContainerCommand = @@ -1070,11 +1069,11 @@ public void testCommandCount() HddsProtos.ReplicationFactor.THREE, emptyList()); nodeManager.onMessage( - new CommandForDatanode<>(DatanodeID.of(datanode1), closeContainerCommand), null); + new CommandForDatanode<>(datanode1, closeContainerCommand), null); nodeManager.onMessage( - new CommandForDatanode<>(DatanodeID.of(datanode1), closeContainerCommand), null); + new CommandForDatanode<>(datanode1, closeContainerCommand), null); nodeManager.onMessage( - new CommandForDatanode<>(DatanodeID.of(datanode1), createPipelineCommand), null); + new CommandForDatanode<>(datanode1, createPipelineCommand), null); assertEquals(2, nodeManager.getCommandQueueCount( datanode1, SCMCommandProto.Type.closeContainerCommand)); @@ -1215,7 +1214,7 @@ public void testScmClusterIsInExpectedState1() List healthyList = nodeManager.getNodes( NodeStatus.inServiceHealthy()); assertEquals(1, healthyList.size(), "Expected one healthy node"); - assertEquals(healthyNode.getUuid(), healthyList.get(0).getUuid(), + assertEquals(healthyNode.getID(), healthyList.get(0).getID(), "Healthy node is not the expected ID"); assertEquals(2, nodeManager.getNodeCount(NodeStatus.inServiceStale())); @@ -1246,15 +1245,15 @@ public void testScmClusterIsInExpectedState1() assertEquals(1, nodeManager.getNodeCount(NodeStatus.inServiceDead())); assertEquals(1, healthyList.size(), "Expected one healthy node"); - assertEquals(healthyNode.getUuid(), healthyList.get(0).getUuid(), + assertEquals(healthyNode.getID(), healthyList.get(0).getID(), "Healthy node is not the expected ID"); assertEquals(1, staleList.size(), "Expected one stale node"); - assertEquals(staleNode.getUuid(), staleList.get(0).getUuid(), + assertEquals(staleNode.getID(), staleList.get(0).getID(), "Stale node is not the expected ID"); assertEquals(1, deadList.size(), "Expected one dead node"); - assertEquals(deadNode.getUuid(), deadList.get(0).getUuid(), + assertEquals(deadNode.getID(), deadList.get(0).getID(), "Dead node is not the expected ID"); /** * Cluster State : let us heartbeat all the nodes and verify that we get @@ -1818,7 +1817,7 @@ public void testScmRegisterNodeWith4LayerNetworkTopology() try (SCMNodeManager nodeManager = createNodeManager(conf)) { for (int i = 0; i < nodeCount; i++) { DatanodeDetails node = createDatanodeDetails( - UUID.randomUUID().toString(), hostNames[i], ipAddress[i], null); + DatanodeID.randomID(), hostNames[i], ipAddress[i], null); nodeManager.register(node, null, null); } @@ -1861,7 +1860,7 @@ void testScmRegisterNodeWithNetworkTopology(boolean useHostname) try (SCMNodeManager nodeManager = createNodeManager(conf)) { for (int i = 0; i < nodeCount; i++) { DatanodeDetails node = createDatanodeDetails( - UUID.randomUUID().toString(), hostNames[i], ipAddress[i], null); + DatanodeID.randomID(), hostNames[i], ipAddress[i], null); nodeManager.register(node, null, null); } @@ -1968,7 +1967,7 @@ void testGetNodesByAddress(boolean useHostname) try (SCMNodeManager nodeManager = createNodeManager(conf)) { for (int i = 0; i < nodeCount; i++) { DatanodeDetails node = createDatanodeDetails( - UUID.randomUUID().toString(), hostNames[i], ipAddress[i], null); + DatanodeID.randomID(), hostNames[i], ipAddress[i], null); nodeManager.register(node, null, null); } // test get node @@ -2007,9 +2006,9 @@ public void testScmRegisterNodeWithUpdatedIpAndHostname() // use default IP address to resolve node try (SCMNodeManager nodeManager = createNodeManager(conf)) { - String nodeUuid = UUID.randomUUID().toString(); + DatanodeID nodeId = DatanodeID.randomID(); DatanodeDetails node = createDatanodeDetails( - nodeUuid, hostName, ipAddress, null); + nodeId, hostName, ipAddress, null); nodeManager.register(node, null, null); // verify network topology cluster has all the registered nodes @@ -2033,7 +2032,7 @@ public void testScmRegisterNodeWithUpdatedIpAndHostname() String updatedIpAddress = "2.3.4.5"; String updatedHostName = "host2"; DatanodeDetails updatedNode = createDatanodeDetails( - nodeUuid, updatedHostName, updatedIpAddress, null); + nodeId, updatedHostName, updatedIpAddress, null); nodeManager.register(updatedNode, null, null); assertEquals(1, nodeManager.getNodeCount(NodeStatus.inServiceHealthy())); @@ -2103,7 +2102,7 @@ scmStorageConfig, eventPublisher, new NetworkTopologyImpl(conf), verify(eventPublisher, times(0)).fireEvent(SCMEvents.REPLICATION_MANAGER_NOTIFY, datanode); DatanodeDetails reportedDatanode = MockDatanodeDetails.createDatanodeDetails( - datanode.getUuid()); + datanode.getID()); reportedDatanode.setPersistedOpState(newState); nodeManager.processHeartbeat(reportedDatanode); diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/ozoneimpl/TestOzoneContainerWithTLS.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/ozoneimpl/TestOzoneContainerWithTLS.java index 934cd21088f2..4577a6b39b66 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/ozoneimpl/TestOzoneContainerWithTLS.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/ozoneimpl/TestOzoneContainerWithTLS.java @@ -60,6 +60,7 @@ import org.apache.hadoop.hdds.HddsConfigKeys; import org.apache.hadoop.hdds.conf.OzoneConfiguration; import org.apache.hadoop.hdds.protocol.DatanodeDetails; +import org.apache.hadoop.hdds.protocol.DatanodeID; import org.apache.hadoop.hdds.protocol.MockDatanodeDetails; import org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos; import org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos.ContainerCommandRequestProto; @@ -393,7 +394,7 @@ private ClientTrustManager aClientTrustManager() throws IOException { private DatanodeDetails aDatanode() { return MockDatanodeDetails.createDatanodeDetails( - UUID.randomUUID().toString(), "localhost", "0.0.0.0", + DatanodeID.randomID(), "localhost", "0.0.0.0", "/default-rack"); } } diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOmContainerLocationCache.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOmContainerLocationCache.java index a53f5a926f1f..e67cbfac2fb0 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOmContainerLocationCache.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOmContainerLocationCache.java @@ -49,7 +49,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.atomic.AtomicLong; @@ -62,6 +61,7 @@ import org.apache.hadoop.hdds.client.ReplicationConfig; import org.apache.hadoop.hdds.conf.OzoneConfiguration; import org.apache.hadoop.hdds.protocol.DatanodeDetails; +import org.apache.hadoop.hdds.protocol.DatanodeID; import org.apache.hadoop.hdds.protocol.MockDatanodeDetails; import org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos; import org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos.BlockData; @@ -148,15 +148,15 @@ public class TestOmContainerLocationCache { private static XceiverClientGrpc mockDn2Protocol; private static XceiverClientGrpc mockDnEcProtocol; private static final DatanodeDetails DN1 = - MockDatanodeDetails.createDatanodeDetails(UUID.randomUUID()); + MockDatanodeDetails.createDatanodeDetails(DatanodeID.randomID()); private static final DatanodeDetails DN2 = - MockDatanodeDetails.createDatanodeDetails(UUID.randomUUID()); + MockDatanodeDetails.createDatanodeDetails(DatanodeID.randomID()); private static final DatanodeDetails DN3 = - MockDatanodeDetails.createDatanodeDetails(UUID.randomUUID()); + MockDatanodeDetails.createDatanodeDetails(DatanodeID.randomID()); private static final DatanodeDetails DN4 = - MockDatanodeDetails.createDatanodeDetails(UUID.randomUUID()); + MockDatanodeDetails.createDatanodeDetails(DatanodeID.randomID()); private static final DatanodeDetails DN5 = - MockDatanodeDetails.createDatanodeDetails(UUID.randomUUID()); + MockDatanodeDetails.createDatanodeDetails(DatanodeID.randomID()); private static final AtomicLong CONTAINER_ID = new AtomicLong(1); private static OzoneClient ozoneClient;