This is an automated email from the ASF dual-hosted git repository.
szetszwo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new b08173486ca HDDS-13199. Remove DatanodeDetails#getUuid and
DatanodeID#getUuid methods (#10405)
b08173486ca is described below
commit b08173486cae60cd02176501a8083556f2b63a6b
Author: Navink <[email protected]>
AuthorDate: Sun Jun 7 21:29:52 2026 +0530
HDDS-13199. Remove DatanodeDetails#getUuid and DatanodeID#getUuid methods
(#10405)
---
.../hadoop/hdds/protocol/DatanodeDetails.java | 11 ---
.../apache/hadoop/hdds/protocol/DatanodeID.java | 17 ++---
.../hdds/scm/container/ContainerReplicaInfo.java | 10 +--
.../checksum/DNContainerOperationClient.java | 3 +-
.../hadoop/hdds/scm/node/SCMNodeManager.java | 2 +-
.../org/apache/hadoop/hdds/scm/HddsTestUtils.java | 2 +-
.../hadoop/hdds/scm/node/TestNodeStateManager.java | 2 +-
.../TestPipelineDatanodesIntersection.java | 12 +--
.../scm/pipeline/TestPipelinePlacementPolicy.java | 19 +++--
.../hadoop/hdds/scm/cli/TopologySubcommand.java | 8 +-
.../cli/datanode/DecommissionStatusSubCommand.java | 7 +-
.../hdds/scm/cli/datanode/ListInfoSubcommand.java | 2 +-
.../hdds/scm/cli/datanode/UsageInfoSubcommand.java | 12 +--
.../hdds/scm/cli/container/TestInfoSubCommand.java | 6 +-
.../scm/cli/datanode/TestUsageInfoSubcommand.java | 2 +-
.../hadoop/ozone/client/TestOzoneECClient.java | 11 +--
.../src/main/smoketest/balancer/testBalancer.robot | 2 +-
.../org/apache/hadoop/ozone/failure/Failures.java | 4 +-
.../insight/datanode/PipelineComponentUtil.java | 2 +-
.../TestReconContainerHealthSummaryEndToEnd.java | 8 +-
.../apache/hadoop/ozone/recon/TestReconTasks.java | 2 +-
.../org/apache/hadoop/ozone/RatisTestHelper.java | 2 +-
.../rpc/TestContainerReplicationEndToEnd.java | 2 +-
.../container/server/TestContainerServer.java | 4 +-
.../server/TestSecureContainerServer.java | 2 +-
.../ozone/om/TestOmContainerLocationCache.java | 2 +-
...skBalancerDuringDecommissionAndMaintenance.java | 12 +--
.../apache/hadoop/ozone/MiniOzoneClusterImpl.java | 4 +-
.../ozone/recon/scm/ContainerReplicaHistory.java | 18 ++---
.../ozone/recon/scm/ReconContainerManager.java | 69 +++++++++--------
.../recon/spi/ReconContainerMetadataManager.java | 8 +-
.../impl/ReconContainerMetadataManagerImpl.java | 22 +++---
.../ozone/recon/api/TestContainerEndpoint.java | 87 +++++++++++-----------
.../hadoop/ozone/recon/api/TestEndpoints.java | 14 ++--
.../ozone/recon/api/TestOpenContainerCount.java | 2 +-
.../ozone/recon/scm/TestReconContainerManager.java | 22 +++---
.../ozone/recon/scm/TestReconNodeManager.java | 2 +-
.../hadoop/ozone/freon/DatanodeSimulator.java | 11 +--
.../hadoop/ozone/freon/SCMThroughputBenchmark.java | 12 +--
39 files changed, 211 insertions(+), 228 deletions(-)
diff --git
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/protocol/DatanodeDetails.java
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/protocol/DatanodeDetails.java
index e75e1a5c5b3..abd00e70683 100644
---
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/protocol/DatanodeDetails.java
+++
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/protocol/DatanodeDetails.java
@@ -146,17 +146,6 @@ public DatanodeID getID() {
return id;
}
- /**
- * Returns the DataNode UUID.
- *
- * @return UUID of DataNode
- */
- // TODO: Remove this in follow-up Jira (HDDS-12015)
- @Deprecated
- public UUID getUuid() {
- return id.getUuid();
- }
-
/**
* Returns the string representation of DataNode UUID.
*
diff --git
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/protocol/DatanodeID.java
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/protocol/DatanodeID.java
index 6a0ee0b43c3..c7cda30ed4b 100644
---
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/protocol/DatanodeID.java
+++
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/protocol/DatanodeID.java
@@ -44,11 +44,6 @@ private DatanodeID(final UUID uuid) {
this.uuidByteString = StringWithByteString.valueOf(uuid.toString());
}
- // Mainly used for JSON conversion
- public String getID() {
- return toString();
- }
-
@Override
public int compareTo(final DatanodeID that) {
return this.uuid.compareTo(that.uuid);
@@ -70,6 +65,11 @@ public String toString() {
return uuidByteString.getString();
}
+ // Mainly used for JSON conversion
+ public String getUuid() {
+ return toString();
+ }
+
/**
* This will be removed once the proto structure is refactored
* to remove deprecated fields.
@@ -121,11 +121,4 @@ private static HddsProtos.UUID toProto(final UUID id) {
.setLeastSigBits(id.getLeastSignificantBits())
.build();
}
-
- // TODO: Remove this in follow-up Jira. (HDDS-12015)
- // Exposing this temporarily to help with refactoring.
- @Deprecated
- public UUID getUuid() {
- return uuid;
- }
}
diff --git
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerReplicaInfo.java
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerReplicaInfo.java
index b9b9d679d63..2aaa45d695d 100644
---
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerReplicaInfo.java
+++
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerReplicaInfo.java
@@ -18,8 +18,8 @@
package org.apache.hadoop.hdds.scm.container;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-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.HddsProtos;
import org.apache.hadoop.hdds.server.JsonUtils;
@@ -31,7 +31,7 @@ public final class ContainerReplicaInfo {
private long containerID;
private String state;
private DatanodeDetails datanodeDetails;
- private UUID placeOfBirth;
+ private DatanodeID placeOfBirth;
private long sequenceId;
private long keyCount;
private long bytesUsed;
@@ -46,7 +46,7 @@ public static ContainerReplicaInfo fromProto(
.setState(proto.getState())
.setDatanodeDetails(DatanodeDetails
.getFromProtoBuf(proto.getDatanodeDetails()))
- .setPlaceOfBirth(UUID.fromString(proto.getPlaceOfBirth()))
+ .setPlaceOfBirth(DatanodeID.fromUuidString(proto.getPlaceOfBirth()))
.setSequenceId(proto.getSequenceID())
.setKeyCount(proto.getKeyCount())
.setBytesUsed(proto.getBytesUsed())
@@ -71,7 +71,7 @@ public DatanodeDetails getDatanodeDetails() {
return datanodeDetails;
}
- public UUID getPlaceOfBirth() {
+ public DatanodeID getPlaceOfBirth() {
return placeOfBirth;
}
@@ -117,7 +117,7 @@ public Builder setDatanodeDetails(DatanodeDetails
datanodeDetails) {
return this;
}
- public Builder setPlaceOfBirth(UUID placeOfBirth) {
+ public Builder setPlaceOfBirth(DatanodeID placeOfBirth) {
subject.placeOfBirth = placeOfBirth;
return this;
}
diff --git
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/checksum/DNContainerOperationClient.java
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/checksum/DNContainerOperationClient.java
index 8556ce5f6d2..d1b5d99a5ec 100644
---
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/checksum/DNContainerOperationClient.java
+++
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/checksum/DNContainerOperationClient.java
@@ -33,7 +33,6 @@
import org.apache.hadoop.hdds.scm.container.ContainerID;
import
org.apache.hadoop.hdds.scm.container.common.helpers.StorageContainerException;
import org.apache.hadoop.hdds.scm.pipeline.Pipeline;
-import org.apache.hadoop.hdds.scm.pipeline.PipelineID;
import org.apache.hadoop.hdds.scm.storage.ContainerProtocolCalls;
import org.apache.hadoop.hdds.security.SecurityConfig;
import org.apache.hadoop.hdds.security.symmetric.SecretKeySignerClient;
@@ -119,7 +118,7 @@ public ContainerProtos.ContainerChecksumInfo
getContainerChecksumInfo(long conta
public static Pipeline createSingleNodePipeline(DatanodeDetails dn) {
return Pipeline.newBuilder()
.setNodes(ImmutableList.of(dn))
- .setId(PipelineID.valueOf(dn.getUuid()))
+ .setId(dn.getID().toPipelineID())
.setState(Pipeline.PipelineState.CLOSED)
.setReplicationConfig(StandaloneReplicationConfig.getInstance(
HddsProtos.ReplicationFactor.ONE)).build();
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 c53c7df4cb3..4ead7b1b1a3 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
@@ -1074,7 +1074,7 @@ public DatanodeInfo getDatanodeInfo(DatanodeDetails dn) {
return nodeStateManager.getNode(dn);
} catch (NodeNotFoundException e) {
LOG.warn("Cannot retrieve DatanodeInfo, datanode {} not found.",
- dn.getUuid());
+ dn.getID());
return null;
}
}
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 a0f5a14725f..0195bf80d1f 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
@@ -164,7 +164,7 @@ public static NodeReportProto getRandomNodeReport() {
public static NodeReportProto getRandomNodeReport(int numberOfStorageReport,
int numberOfMetadataStorageReport) {
DatanodeID nodeId = DatanodeID.randomID();
- return getRandomNodeReport(nodeId, File.separator + nodeId.getID(),
+ return getRandomNodeReport(nodeId, File.separator + nodeId.getUuid(),
numberOfStorageReport, numberOfMetadataStorageReport);
}
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeStateManager.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeStateManager.java
index 0f536b4b01c..d10d951da90 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeStateManager.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeStateManager.java
@@ -109,7 +109,7 @@ public void testNodeCanBeAddedAndRetrieved()
// Create a datanode, then add and retrieve it
DatanodeDetails dn = generateDatanode();
nsm.addNode(dn, UpgradeUtils.defaultLayoutVersionProto());
- assertEquals(dn.getUuid(), nsm.getNode(dn).getUuid());
+ assertEquals(dn.getID(), nsm.getNode(dn).getID());
// Now get the status of the newly added node and it should be
// IN_SERVICE and HEALTHY
NodeStatus expectedState = NodeStatus.inServiceHealthy();
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelineDatanodesIntersection.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelineDatanodesIntersection.java
index 586718766b2..a947d65e0fe 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelineDatanodesIntersection.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelineDatanodesIntersection.java
@@ -122,12 +122,12 @@ public void testPipelineDatanodesIntersection(int
nodeCount,
LOG.info("This pipeline: " + pipeline.getId().toString() +
" overlaps with previous pipeline: " + overlapPipeline.getId()
+
". They share same set of datanodes as: " +
- pipeline.getNodesInOrder().get(0).getUuid() + "/" +
- pipeline.getNodesInOrder().get(1).getUuid() + "/" +
- pipeline.getNodesInOrder().get(2).getUuid() + " and " +
- overlapPipeline.getNodesInOrder().get(0).getUuid() + "/" +
- overlapPipeline.getNodesInOrder().get(1).getUuid() + "/" +
- overlapPipeline.getNodesInOrder().get(2).getUuid() +
+ pipeline.getNodesInOrder().get(0).getID() + "/" +
+ pipeline.getNodesInOrder().get(1).getID() + "/" +
+ pipeline.getNodesInOrder().get(2).getID() + " and " +
+ overlapPipeline.getNodesInOrder().get(0).getID() + "/" +
+ overlapPipeline.getNodesInOrder().get(1).getID() + "/" +
+ overlapPipeline.getNodesInOrder().get(2).getID() +
" is the same.");
}
}
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelinePlacementPolicy.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelinePlacementPolicy.java
index 7094a39c79e..90b7747350b 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelinePlacementPolicy.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelinePlacementPolicy.java
@@ -41,7 +41,6 @@
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
-import java.util.UUID;
import java.util.concurrent.TimeoutException;
import java.util.stream.Collectors;
import org.apache.hadoop.hdds.client.RatisReplicationConfig;
@@ -49,6 +48,7 @@
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.conf.StorageUnit;
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.proto.HddsProtos;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor;
@@ -189,7 +189,7 @@ public void testChooseNodeBasedOnNetworkTopology() {
// nodeManager.getClusterNetworkTopologyMap(), anchor, excludedNodes);
assertThat(excludedNodes).doesNotContain(nextNode);
// next node should not be the same as anchor.
- assertNotSame(anchor.getUuid(), nextNode.getUuid());
+ assertNotSame(anchor.getID(), nextNode.getID());
// next node should be on the same rack based on topology.
assertEquals(anchor.getNetworkLocation(), nextNode.getNetworkLocation());
}
@@ -388,15 +388,14 @@ private NetworkTopology createNetworkTopologyOnDifRacks()
{
private DatanodeDetails overwriteLocationInNode(
DatanodeDetails datanode, Node node) {
- DatanodeDetails result = DatanodeDetails.newBuilder()
- .setUuid(datanode.getUuid())
+ return DatanodeDetails.newBuilder()
+ .setID(datanode.getID())
.setHostName(datanode.getHostName())
.setIpAddress(datanode.getIpAddress())
.addPort(datanode.getStandalonePort())
.addPort(datanode.getRatisPort())
.addPort(datanode.getRestPort())
.setNetworkLocation(node.getNetworkLocation()).build();
- return result;
}
private List<DatanodeDetails> overWriteLocationInNodes(
@@ -427,7 +426,7 @@ public void testHeavyNodeShouldBeExcludedWithMinorityHeavy()
// NODES should be sufficient.
assertEquals(nodesRequired, pickedNodes1.size());
// make sure pipeline placement policy won't select duplicated NODES.
- assertTrue(checkDuplicateNodesUUID(pickedNodes1));
+ assertTrue(checkDuplicateNodesID(pickedNodes1));
// majority of healthy NODES are heavily engaged in pipelines.
int majorityHeavy = healthyNodes.size() / 2 + 2;
@@ -608,11 +607,11 @@ private List<DatanodeDetails> setupSkewedRacks() {
return dns;
}
- private boolean checkDuplicateNodesUUID(List<DatanodeDetails> nodes) {
- HashSet<UUID> uuids = nodes.stream().
- map(DatanodeDetails::getUuid).
+ private boolean checkDuplicateNodesID(List<DatanodeDetails> nodes) {
+ HashSet<DatanodeID> ids = nodes.stream().
+ map(DatanodeDetails::getID).
collect(Collectors.toCollection(HashSet::new));
- return uuids.size() == nodes.size();
+ return ids.size() == nodes.size();
}
private void insertHeavyNodesIntoNodeManager(
diff --git
a/hadoop-ozone/cli-admin/src/main/java/org/apache/hadoop/hdds/scm/cli/TopologySubcommand.java
b/hadoop-ozone/cli-admin/src/main/java/org/apache/hadoop/hdds/scm/cli/TopologySubcommand.java
index 5a850551c2b..230c45f5d40 100644
---
a/hadoop-ozone/cli-admin/src/main/java/org/apache/hadoop/hdds/scm/cli/TopologySubcommand.java
+++
b/hadoop-ozone/cli-admin/src/main/java/org/apache/hadoop/hdds/scm/cli/TopologySubcommand.java
@@ -300,15 +300,15 @@ public List<DatanodeDetails.Port> getPorts() {
}
private static class NodeTopologyFull extends NodeTopologyDefault {
- private String uuid;
+ private final String id;
NodeTopologyFull(DatanodeDetails node, String state) {
super(node, state);
- uuid = node.getUuid().toString();
+ id = node.getID().toString();
}
- public String getUuid() {
- return uuid;
+ public String getId() {
+ return id;
}
}
}
diff --git
a/hadoop-ozone/cli-admin/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/DecommissionStatusSubCommand.java
b/hadoop-ozone/cli-admin/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/DecommissionStatusSubCommand.java
index 1c166a21316..306a5c5b667 100644
---
a/hadoop-ozone/cli-admin/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/DecommissionStatusSubCommand.java
+++
b/hadoop-ozone/cli-admin/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/DecommissionStatusSubCommand.java
@@ -59,9 +59,9 @@ public class DecommissionStatusSubCommand extends
ScmSubcommand {
@CommandLine.Mixin
private NodeSelectionMixin nodeSelectionMixin;
- @CommandLine.Spec
+ @CommandLine.Spec
private CommandLine.Model.CommandSpec spec;
-
+
@Override
public void execute(ScmClient scmClient) throws IOException {
if (!nodeSelectionMixin.getHostname().isEmpty()) {
@@ -135,8 +135,7 @@ public void setErrorMessage(String errorMessage) {
}
private void printDetails(DatanodeDetails datanode) {
- System.out.println();
- System.out.println("Datanode: " + datanode.getUuid().toString() +
+ System.out.println("\nDatanode: " + datanode.getID() +
" (" + datanode.getNetworkLocation() + "/" + datanode.getIpAddress()
+ "/" + datanode.getHostName() + ")");
}
diff --git
a/hadoop-ozone/cli-admin/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/ListInfoSubcommand.java
b/hadoop-ozone/cli-admin/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/ListInfoSubcommand.java
index 650027afbee..646bc1ef62f 100644
---
a/hadoop-ozone/cli-admin/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/ListInfoSubcommand.java
+++
b/hadoop-ozone/cli-admin/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/ListInfoSubcommand.java
@@ -218,7 +218,7 @@ private void printDatanodeInfo(BasicDatanodeInfo dn) {
.append("No pipelines in cluster.")
.append(System.lineSeparator());
}
- System.out.println("Datanode: " + datanode.getUuid().toString() +
+ System.out.println("Datanode: " + datanode.getID() +
" (" + datanode.getNetworkLocation() + "/" + datanode.getIpAddress()
+ "/" + datanode.getHostName() + "/" + relatedPipelineNum +
" pipelines)");
diff --git
a/hadoop-ozone/cli-admin/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/UsageInfoSubcommand.java
b/hadoop-ozone/cli-admin/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/UsageInfoSubcommand.java
index f6cefaa9ad3..824e090843c 100644
---
a/hadoop-ozone/cli-admin/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/UsageInfoSubcommand.java
+++
b/hadoop-ozone/cli-admin/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/UsageInfoSubcommand.java
@@ -81,7 +81,7 @@ public void execute(ScmClient scmClient) throws IOException {
!Strings.isNullOrEmpty(exclusiveArguments.getIp()) ?
exclusiveArguments.getIp()
: !Strings.isNullOrEmpty(exclusiveArguments.getHostname()) ?
exclusiveArguments.getHostname()
: exclusiveArguments.address; //Fallback to deprecated --address
for backward compatibility with older CLI.
-
+
List<HddsProtos.DatanodeUsageInfoProto> infoList;
if (count < 1) {
throw new IOException("Count must be an integer greater than 0.");
@@ -116,8 +116,8 @@ public void execute(ScmClient scmClient) throws IOException
{
* @param info Information such as Capacity, SCMUsed etc.
*/
private void printInfo(DatanodeUsage info) {
- System.out.printf("%-24s: %s %n", "UUID",
- info.getDatanodeDetails().getUuid());
+ System.out.printf("%-24s: %s %n", "ID",
+ info.getDatanodeDetails().getID());
System.out.printf("%-24s: %s %n", "IP Address",
info.getDatanodeDetails().getIpAddress());
System.out.printf("%-24s: %s %n", "Hostname",
@@ -161,7 +161,7 @@ private void printInfo(DatanodeUsage info) {
info.getFreeSpaceToSpare() + " B",
StringUtils.byteDesc(info.getFreeSpaceToSpare()));
System.out.printf("%-24s: %s (%s) %n", "Reserved",
- info.getReserved() + " B",
+ info.getReserved() + " B",
StringUtils.byteDesc(info.getReserved()));
System.out.println();
}
@@ -230,7 +230,7 @@ private static class DatanodeUsage {
if (proto.hasFreeSpaceToSpare()) {
freeSpaceToSpare = proto.getFreeSpaceToSpare();
}
- if (proto.hasReserved()) {
+ if (proto.hasReserved()) {
reserved = proto.getReserved();
}
}
@@ -329,7 +329,7 @@ public long getPipelineCount() {
return pipelineCount;
}
- public long getReserved() {
+ public long getReserved() {
return reserved;
}
}
diff --git
a/hadoop-ozone/cli-admin/src/test/java/org/apache/hadoop/hdds/scm/cli/container/TestInfoSubCommand.java
b/hadoop-ozone/cli-admin/src/test/java/org/apache/hadoop/hdds/scm/cli/container/TestInfoSubCommand.java
index 9433ce46c92..86e3bfdf273 100644
---
a/hadoop-ozone/cli-admin/src/test/java/org/apache/hadoop/hdds/scm/cli/container/TestInfoSubCommand.java
+++
b/hadoop-ozone/cli-admin/src/test/java/org/apache/hadoop/hdds/scm/cli/container/TestInfoSubCommand.java
@@ -234,7 +234,7 @@ private void testReplicaIncludedInOutput(boolean
includeIndex)
// Ensure each DN UUID is mentioned in the message:
for (DatanodeDetails dn : datanodes) {
- Pattern uuidPattern = Pattern.compile(".*" + dn.getUuid().toString() +
".*",
+ Pattern uuidPattern = Pattern.compile(".*" + dn.getID().toString() +
".*",
Pattern.DOTALL);
assertThat(replica).matches(uuidPattern);
}
@@ -321,7 +321,7 @@ private void testJsonOutput() throws IOException {
assertTrue(json.matches("(?s).*replicas.*"));
for (DatanodeDetails dn : datanodes) {
Pattern pattern = Pattern.compile(
- ".*replicas.*" + dn.getUuid().toString() + ".*", Pattern.DOTALL);
+ ".*replicas.*" + dn.getID().toString() + ".*", Pattern.DOTALL);
Matcher matcher = pattern.matcher(json);
assertTrue(matcher.matches());
}
@@ -340,7 +340,7 @@ private List<ContainerReplicaInfo> getReplicas(boolean
includeIndex) {
.setContainerID(1)
.setBytesUsed(1234)
.setState("CLOSED")
- .setPlaceOfBirth(dn.getUuid())
+ .setPlaceOfBirth(dn.getID())
.setDatanodeDetails(dn)
.setKeyCount(1)
.setSequenceId(1);
diff --git
a/hadoop-ozone/cli-admin/src/test/java/org/apache/hadoop/hdds/scm/cli/datanode/TestUsageInfoSubcommand.java
b/hadoop-ozone/cli-admin/src/test/java/org/apache/hadoop/hdds/scm/cli/datanode/TestUsageInfoSubcommand.java
index b104db6ef98..ceb2b6ac747 100644
---
a/hadoop-ozone/cli-admin/src/test/java/org/apache/hadoop/hdds/scm/cli/datanode/TestUsageInfoSubcommand.java
+++
b/hadoop-ozone/cli-admin/src/test/java/org/apache/hadoop/hdds/scm/cli/datanode/TestUsageInfoSubcommand.java
@@ -115,7 +115,7 @@ public void testOutputDataFieldsAligning() throws
IOException {
// then
String output = outContent.toString(CharEncoding.UTF_8);
- assertThat(output).contains("UUID :");
+ assertThat(output).contains("ID :");
assertThat(output).contains("IP Address :");
assertThat(output).contains("Hostname :");
assertThat(output).contains("Ozone Capacity :");
diff --git
a/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/TestOzoneECClient.java
b/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/TestOzoneECClient.java
index af452138761..eb7ca54438a 100644
---
a/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/TestOzoneECClient.java
+++
b/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/TestOzoneECClient.java
@@ -42,6 +42,7 @@
import org.apache.hadoop.hdds.conf.ConfigurationSource;
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.datanode.proto.ContainerProtos;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.OzoneClientConfig;
@@ -337,7 +338,7 @@ public void testSmallerThanChunkSize() throws IOException {
HddsProtos.DatanodeDetailsProto member =
blockList.getKeyLocations(0).getPipeline().getMembers(i);
MockDatanodeStorage mockDatanodeStorage =
- storages.get(getMatchingStorage(storages, member.getUuid()));
+ storages.get(getMatchingStorage(storages,
DatanodeID.fromProto(member.getId())));
dns.add(mockDatanodeStorage);
}
String firstBlockData = dns.get(0).getFullBlockData(new BlockID(
@@ -396,8 +397,8 @@ public void testPutBlockHasBlockGroupLen() throws
IOException {
for (int i = 0; i < dataBlocks + parityBlocks; i++) {
MockDatanodeStorage mockDatanodeStorage = storages.get(
getMatchingStorage(storages,
- blockList.getKeyLocations(0).getPipeline().getMembers(i)
- .getUuid()));
+
DatanodeID.fromProto(blockList.getKeyLocations(0).getPipeline().getMembers(i)
+ .getId())));
final OzoneKeyDetails keyDetails = bucket.getKey(keyName);
ContainerProtos.BlockData block = mockDatanodeStorage.getBlock(
@@ -421,11 +422,11 @@ public void testPutBlockHasBlockGroupLen() throws
IOException {
}
private static DatanodeDetails getMatchingStorage(
- Map<DatanodeDetails, MockDatanodeStorage> storages, String uuid) {
+ Map<DatanodeDetails, MockDatanodeStorage> storages, DatanodeID id) {
Iterator<DatanodeDetails> iterator = storages.keySet().iterator();
while (iterator.hasNext()) {
DatanodeDetails dn = iterator.next();
- if (dn.getUuid().toString().equals(uuid)) {
+ if (dn.getID().equals(id)) {
return dn;
}
}
diff --git a/hadoop-ozone/dist/src/main/smoketest/balancer/testBalancer.robot
b/hadoop-ozone/dist/src/main/smoketest/balancer/testBalancer.robot
index 7642719d9d3..4dc9ce74106 100644
--- a/hadoop-ozone/dist/src/main/smoketest/balancer/testBalancer.robot
+++ b/hadoop-ozone/dist/src/main/smoketest/balancer/testBalancer.robot
@@ -160,7 +160,7 @@ Get All Container IDs
Get Datanode Ozone Used Bytes Info
[arguments] ${uuid}
- ${output} = Execute export DATANODES=$(ozone admin datanode list
--json) && for datanode in $(echo "$\{DATANODES\}" | jq -r '.[].id'); do ozone
admin datanode usageinfo --uuid=$\{datanode\} --json | jq
'{(.[0].datanodeDetails.uuid) : .[0].ozoneUsed}'; done | jq -s add
+ ${output} = Execute export DATANODES=$(ozone admin datanode list
--json) && for datanode in $(echo "$\{DATANODES\}" | jq -r '.[].id'); do ozone
admin datanode usageinfo --uuid=$\{datanode\} --json | jq
'{(.[0].datanodeDetails.id.uuid) : .[0].ozoneUsed}'; done | jq -s add
${result} = Execute echo '${output}' | jq '. | to_entries | .[] |
select(.key == "${uuid}") | .value'
[return] ${result}
diff --git
a/hadoop-ozone/fault-injection-test/mini-chaos-tests/src/test/java/org/apache/hadoop/ozone/failure/Failures.java
b/hadoop-ozone/fault-injection-test/mini-chaos-tests/src/test/java/org/apache/hadoop/ozone/failure/Failures.java
index 9a5a19318c7..21a0303f32b 100644
---
a/hadoop-ozone/fault-injection-test/mini-chaos-tests/src/test/java/org/apache/hadoop/ozone/failure/Failures.java
+++
b/hadoop-ozone/fault-injection-test/mini-chaos-tests/src/test/java/org/apache/hadoop/ozone/failure/Failures.java
@@ -196,7 +196,7 @@ public void fail(MiniOzoneChaosCluster cluster) {
try {
cluster.restartHddsDatanode(dn, failureMode);
} catch (Throwable t) {
- LOG.error("Failed to restartNodes Datanode {}", dn.getUuid(), t);
+ LOG.error("Failed to restartNodes Datanode {}", dn.getID(), t);
}
});
}
@@ -218,7 +218,7 @@ public void fail(MiniOzoneChaosCluster cluster) {
cluster.restartHddsDatanode(dn, true);
}
} catch (Throwable t) {
- LOG.error("Failed to shutdown Datanode {}", dn.getUuid(), t);
+ LOG.error("Failed to shutdown Datanode {}", dn.getID(), t);
}
});
}
diff --git
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/datanode/PipelineComponentUtil.java
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/datanode/PipelineComponentUtil.java
index 02d42618095..667057af467 100644
---
a/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/datanode/PipelineComponentUtil.java
+++
b/hadoop-ozone/insight/src/main/java/org/apache/hadoop/ozone/insight/datanode/PipelineComponentUtil.java
@@ -68,7 +68,7 @@ public static void withDatanodesFromPipeline(
Pipeline pipeline = pipelineSelection.get();
for (DatanodeDetails datanode : pipeline.getNodes()) {
Component dn =
- new Component(Type.DATANODE, datanode.getUuid().toString(),
+ new Component(Type.DATANODE, datanode.getID().toString(),
datanode.getHostName(), 9882);
func.apply(dn);
}
diff --git
a/hadoop-ozone/integration-test-recon/src/test/java/org/apache/hadoop/ozone/recon/TestReconContainerHealthSummaryEndToEnd.java
b/hadoop-ozone/integration-test-recon/src/test/java/org/apache/hadoop/ozone/recon/TestReconContainerHealthSummaryEndToEnd.java
index fbfa650bac5..f1976f5a878 100644
---
a/hadoop-ozone/integration-test-recon/src/test/java/org/apache/hadoop/ozone/recon/TestReconContainerHealthSummaryEndToEnd.java
+++
b/hadoop-ozone/integration-test-recon/src/test/java/org/apache/hadoop/ozone/recon/TestReconContainerHealthSummaryEndToEnd.java
@@ -32,11 +32,11 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.UUID;
import java.util.stream.Collectors;
import org.apache.hadoop.hdds.client.RatisReplicationConfig;
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.proto.HddsProtos;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.ContainerReplicaProto;
import org.apache.hadoop.hdds.scm.XceiverClientManager;
@@ -611,12 +611,12 @@ private List<Long> setupOverReplicatedContainers(
// so the phantom persists for the duration of the test.
// With 10m FCR, the real DN won't send a full report that changes
replica counts.
// Result: 2 replicas for RF1 → OVER_REPLICATED.
- Set<UUID> existingUuids = scmCm.getContainerReplicas(containerID)
+ Set<DatanodeID> existingIds = scmCm.getContainerReplicas(containerID)
.stream()
- .map(r -> r.getDatanodeDetails().getUuid())
+ .map(r -> r.getDatanodeDetails().getID())
.collect(Collectors.toSet());
DatanodeDetails phantomDN = allDatanodes.stream()
- .filter(d -> !existingUuids.contains(d.getUuid()))
+ .filter(d -> !existingIds.contains(d.getID()))
.findFirst()
.orElseThrow(() -> new AssertionError(
"No spare DN available to inject phantom replica for " +
containerID));
diff --git
a/hadoop-ozone/integration-test-recon/src/test/java/org/apache/hadoop/ozone/recon/TestReconTasks.java
b/hadoop-ozone/integration-test-recon/src/test/java/org/apache/hadoop/ozone/recon/TestReconTasks.java
index 249e81470d7..c3e213c07ea 100644
---
a/hadoop-ozone/integration-test-recon/src/test/java/org/apache/hadoop/ozone/recon/TestReconTasks.java
+++
b/hadoop-ozone/integration-test-recon/src/test/java/org/apache/hadoop/ozone/recon/TestReconTasks.java
@@ -604,7 +604,7 @@ public void
testContainerHealthTaskDetectsOverReplicatedAndNegativeSize()
DatanodeDetails primaryDn = pipeline.getFirstNode();
DatanodeDetails secondDn = cluster.getHddsDatanodes().stream()
.map(HddsDatanodeService::getDatanodeDetails)
- .filter(dd -> !dd.getUuid().equals(primaryDn.getUuid()))
+ .filter(dd -> !dd.getID().equals(primaryDn.getID()))
.findFirst()
.orElseThrow(() -> new AssertionError("No second datanode available"));
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/RatisTestHelper.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/RatisTestHelper.java
index 5877542b92b..804d27ade4b 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/RatisTestHelper.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/RatisTestHelper.java
@@ -65,7 +65,7 @@ static RaftServer.Division getRaftServerDivision(
HddsDatanodeService dn, Pipeline pipeline) throws Exception {
if (!pipeline.getNodes().contains(dn.getDatanodeDetails())) {
throw new IllegalArgumentException("Pipeline:" + pipeline.getId() +
- " not exist in datanode:" + dn.getDatanodeDetails().getUuid());
+ " not exist in datanode:" + dn.getDatanodeDetails().getID());
}
XceiverServerRatis server =
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestContainerReplicationEndToEnd.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestContainerReplicationEndToEnd.java
index 5b89503788d..701a833f2e7 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestContainerReplicationEndToEnd.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestContainerReplicationEndToEnd.java
@@ -203,7 +203,7 @@ public void testContainerReplication() throws Exception {
for (HddsDatanodeService dn : cluster.getHddsDatanodes()) {
Predicate<DatanodeDetails> p =
- i -> i.getUuid().equals(dn.getDatanodeDetails().getUuid());
+ i -> i.getID().equals(dn.getDatanodeDetails().getID());
if (!pipeline.getNodes().stream().anyMatch(p)) {
dnService = dn;
}
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/server/TestContainerServer.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/server/TestContainerServer.java
index 54644189ece..e3bf613ed9e 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/server/TestContainerServer.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/server/TestContainerServer.java
@@ -130,7 +130,7 @@ static XceiverServerRatis newXceiverServerRatis(
DatanodeDetails dn, OzoneConfiguration conf) throws IOException {
conf.setInt(OzoneConfigKeys.HDDS_CONTAINER_RATIS_IPC_PORT,
dn.getRatisPort().getValue());
- final String dir = testDir.resolve(dn.getUuid().toString()).toString();
+ final String dir = testDir.resolve(dn.getID().toString()).toString();
conf.set(OzoneConfigKeys.HDDS_CONTAINER_RATIS_DATANODE_STORAGE_DIR, dir);
final ContainerDispatcher dispatcher = new TestContainerDispatcher();
@@ -208,7 +208,7 @@ private HddsDispatcher createDispatcher(DatanodeDetails dd,
UUID scmId,
ContainerProtos.ContainerType.values()) {
handlers.put(containerType,
Handler.getHandlerForContainerType(containerType, conf,
- dd.getUuid().toString(),
+ dd.getID().toString(),
containerSet, volumeSet, volumeChoosingPolicy, metrics,
c -> { }, new ContainerChecksumTreeManager(conf)));
}
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/server/TestSecureContainerServer.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/server/TestSecureContainerServer.java
index f02d6326022..235cc553fb0 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/server/TestSecureContainerServer.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/server/TestSecureContainerServer.java
@@ -183,7 +183,7 @@ private HddsDispatcher createDispatcher(DatanodeDetails dd,
UUID scmId,
ContainerProtos.ContainerType.values()) {
handlers.put(containerType,
Handler.getHandlerForContainerType(containerType, conf,
- dd.getUuid().toString(),
+ dd.getID().toString(),
containerSet, volumeSet, volumeChoosingPolicy, metrics,
c -> { }, new ContainerChecksumTreeManager(conf)));
}
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 4e69848b307..de30c36a50e 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
@@ -241,7 +241,7 @@ private static ArgumentMatcher<Pipeline>
matchEmptyPipeline() {
private static ArgumentMatcher<Pipeline> matchPipeline(DatanodeDetails dn) {
return argument -> argument != null && !argument.getNodes().isEmpty()
- && argument.getNodes().get(0).getUuid().equals(dn.getUuid());
+ && argument.getNodes().get(0).getID().equals(dn.getID());
}
private static ArgumentMatcher<Pipeline> matchEcPipeline() {
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/scm/node/TestDiskBalancerDuringDecommissionAndMaintenance.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/scm/node/TestDiskBalancerDuringDecommissionAndMaintenance.java
index 0bad66f8756..6e0686e1359 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/scm/node/TestDiskBalancerDuringDecommissionAndMaintenance.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/scm/node/TestDiskBalancerDuringDecommissionAndMaintenance.java
@@ -220,16 +220,16 @@ public void
testDiskBalancerWithDecommissionAndMaintenanceNodes()
// in DiskBalancer report and status (since we only queried IN_SERVICE
nodes)
boolean isDecommissionedDnInReport = reportProtoList.stream()
.anyMatch(proto -> proto.getNode().getUuid().
- equals(dnToDecommission.getUuid().toString()));
+ equals(dnToDecommission.getID().toString()));
boolean isMaintenanceDnInReport = reportProtoList.stream()
.anyMatch(proto -> proto.getNode().getUuid().
- equals(dnToMaintenance.getUuid().toString()));
+ equals(dnToMaintenance.getID().toString()));
boolean isDecommissionedDnInStatus = statusProtoList.stream()
.anyMatch(proto -> proto.getNode().getUuid().
- equals(dnToDecommission.getUuid().toString()));
+ equals(dnToDecommission.getID().toString()));
boolean isMaintenanceDnInStatus = statusProtoList.stream()
.anyMatch(proto -> proto.getNode().getUuid().
- equals(dnToMaintenance.getUuid().toString()));
+ equals(dnToMaintenance.getID().toString()));
// Assert that the decommissioned DN is not present in both report and
status
assertFalse(isDecommissionedDnInReport);
@@ -260,10 +260,10 @@ public void
testDiskBalancerWithDecommissionAndMaintenanceNodes()
boolean isRecommissionedDnInReport = reportProtoList.stream()
.anyMatch(proto -> proto.getNode().getUuid().
- equals(recommissionedDn.getUuid().toString()));
+ equals(recommissionedDn.getID().toString()));
boolean isRecommissionedDnInStatus = statusProtoList.stream()
.anyMatch(proto -> proto.getNode().getUuid().
- equals(recommissionedDn.getUuid().toString()));
+ equals(recommissionedDn.getID().toString()));
// Verify that the recommissioned DN is included in both report and status
assertTrue(isRecommissionedDnInReport);
diff --git
a/hadoop-ozone/mini-cluster/src/main/java/org/apache/hadoop/ozone/MiniOzoneClusterImpl.java
b/hadoop-ozone/mini-cluster/src/main/java/org/apache/hadoop/ozone/MiniOzoneClusterImpl.java
index dae0d4a4822..1200b1e4d56 100644
---
a/hadoop-ozone/mini-cluster/src/main/java/org/apache/hadoop/ozone/MiniOzoneClusterImpl.java
+++
b/hadoop-ozone/mini-cluster/src/main/java/org/apache/hadoop/ozone/MiniOzoneClusterImpl.java
@@ -245,7 +245,7 @@ public HddsDatanodeService getHddsDatanode(DatanodeDetails
dn)
}
}
throw new IOException(
- "Not able to find datanode with datanode Id " + dn.getUuid());
+ "Not able to find datanode with datanode Id " + dn.getID());
}
@Override
@@ -256,7 +256,7 @@ public int getHddsDatanodeIndex(DatanodeDetails dn) throws
IOException {
}
}
throw new IOException(
- "Not able to find datanode with datanode Id " + dn.getUuid());
+ "Not able to find datanode with datanode Id " + dn.getID());
}
@Override
diff --git
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ContainerReplicaHistory.java
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ContainerReplicaHistory.java
index 971bc2d2725..f5fe5aa14c0 100644
---
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ContainerReplicaHistory.java
+++
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ContainerReplicaHistory.java
@@ -17,7 +17,7 @@
package org.apache.hadoop.ozone.recon.scm;
-import java.util.UUID;
+import org.apache.hadoop.hdds.protocol.DatanodeID;
import
org.apache.hadoop.hdds.protocol.proto.HddsProtos.ContainerReplicaHistoryProto;
import org.apache.hadoop.hdds.scm.container.ContainerChecksums;
@@ -31,8 +31,8 @@
* of one DN but later moved back to the same DN.
*/
public class ContainerReplicaHistory {
- // Datanode UUID
- private final UUID uuid;
+ // Datanode ID
+ private final DatanodeID id;
// First reported time of the replica on this datanode
private final Long firstSeenTime;
// Last reported time of the replica
@@ -42,9 +42,9 @@ public class ContainerReplicaHistory {
private String state;
private ContainerChecksums checksums;
- public ContainerReplicaHistory(UUID id, Long firstSeenTime,
+ public ContainerReplicaHistory(DatanodeID id, Long firstSeenTime,
Long lastSeenTime, long bcsId, String state, ContainerChecksums
checksums) {
- this.uuid = id;
+ this.id = id;
this.firstSeenTime = firstSeenTime;
this.lastSeenTime = lastSeenTime;
this.bcsId = bcsId;
@@ -60,8 +60,8 @@ public void setBcsId(long bcsId) {
this.bcsId = bcsId;
}
- public UUID getUuid() {
- return uuid;
+ public DatanodeID getId() {
+ return id;
}
public Long getFirstSeenTime() {
@@ -98,13 +98,13 @@ public void setChecksums(ContainerChecksums checksums) {
public static ContainerReplicaHistory fromProto(
ContainerReplicaHistoryProto proto) {
- return new ContainerReplicaHistory(UUID.fromString(proto.getUuid()),
+ return new
ContainerReplicaHistory(DatanodeID.fromUuidString(proto.getUuid()),
proto.getFirstSeenTime(), proto.getLastSeenTime(), proto.getBcsId(),
proto.getState(), ContainerChecksums.of(proto.getDataChecksum()));
}
public ContainerReplicaHistoryProto toProto() {
- return ContainerReplicaHistoryProto.newBuilder().setUuid(uuid.toString())
+ return ContainerReplicaHistoryProto.newBuilder().setUuid(id.toString())
.setFirstSeenTime(firstSeenTime).setLastSeenTime(lastSeenTime)
.setBcsId(bcsId).setState(state)
.setDataChecksum(checksums.getDataChecksum())
diff --git
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconContainerManager.java
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconContainerManager.java
index e42e0ccac90..4057093c3aa 100644
---
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconContainerManager.java
+++
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/scm/ReconContainerManager.java
@@ -26,7 +26,6 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
import org.apache.hadoop.conf.Configuration;
@@ -70,8 +69,8 @@ public class ReconContainerManager extends
ContainerManagerImpl {
private final ContainerHealthSchemaManager containerHealthSchemaManager;
private final ReconContainerMetadataManager cdbServiceProvider;
private final Table<DatanodeID, DatanodeDetails> nodeDB;
- // Container ID -> Datanode UUID -> Timestamp
- private final Map<Long, Map<UUID, ContainerReplicaHistory>>
replicaHistoryMap;
+ // Container ID -> DatanodeID -> Timestamp
+ private final Map<Long, Map<DatanodeID, ContainerReplicaHistory>>
replicaHistoryMap;
// Pipeline -> # of open containers
private final Map<PipelineID, Integer> pipelineToOpenContainer;
@@ -307,13 +306,13 @@ public void updateContainerReplica(ContainerID
containerID,
super.updateContainerReplica(containerID, replica);
final long currTime = System.currentTimeMillis();
- final long id = containerID.getId();
+ final long cid = containerID.getId();
final DatanodeDetails dnInfo = replica.getDatanodeDetails();
- final UUID uuid = dnInfo.getUuid();
+ final DatanodeID id = dnInfo.getID();
- // Map from DataNode UUID to replica last seen time
- final Map<UUID, ContainerReplicaHistory> replicaLastSeenMap =
- replicaHistoryMap.get(id);
+ // Map from DataNode ID to replica last seen time
+ final Map<DatanodeID, ContainerReplicaHistory> replicaLastSeenMap =
+ replicaHistoryMap.get(cid);
boolean flushToDB = false;
long bcsId = replica.getSequenceId() != null ? replica.getSequenceId() :
-1;
@@ -323,19 +322,19 @@ public void updateContainerReplica(ContainerID
containerID,
// If replica doesn't exist in in-memory map, add to DB and add to map
if (replicaLastSeenMap == null) {
// putIfAbsent to avoid TOCTOU
- replicaHistoryMap.putIfAbsent(id,
- new ConcurrentHashMap<UUID, ContainerReplicaHistory>() {{
- put(uuid, new ContainerReplicaHistory(uuid, currTime, currTime,
+ replicaHistoryMap.putIfAbsent(cid,
+ new ConcurrentHashMap<DatanodeID, ContainerReplicaHistory>() {{
+ put(id, new ContainerReplicaHistory(id, currTime, currTime,
bcsId, state, checksums));
}});
flushToDB = true;
} else {
// ContainerID exists, update timestamp in memory
- final ContainerReplicaHistory ts = replicaLastSeenMap.get(uuid);
+ final ContainerReplicaHistory ts = replicaLastSeenMap.get(id);
if (ts == null) {
// New Datanode
- replicaLastSeenMap.put(uuid,
- new ContainerReplicaHistory(uuid, currTime, currTime, bcsId,
+ replicaLastSeenMap.put(id,
+ new ContainerReplicaHistory(id, currTime, currTime, bcsId,
state, checksums));
flushToDB = true;
} else {
@@ -348,7 +347,7 @@ public void updateContainerReplica(ContainerID containerID,
}
if (flushToDB) {
- upsertContainerHistory(id, uuid, currTime, bcsId, state, checksums);
+ upsertContainerHistory(cid, id, currTime, bcsId, state, checksums);
}
}
@@ -361,20 +360,20 @@ public void removeContainerReplica(ContainerID
containerID,
ContainerReplicaNotFoundException {
super.removeContainerReplica(containerID, replica);
- final long id = containerID.getId();
+ final long cid = containerID.getId();
final DatanodeDetails dnInfo = replica.getDatanodeDetails();
- final UUID uuid = dnInfo.getUuid();
+ final DatanodeID id = dnInfo.getID();
String state = replica.getState().toString();
- final Map<UUID, ContainerReplicaHistory> replicaLastSeenMap =
- replicaHistoryMap.get(id);
+ final Map<DatanodeID, ContainerReplicaHistory> replicaLastSeenMap =
+ replicaHistoryMap.get(cid);
if (replicaLastSeenMap != null) {
- final ContainerReplicaHistory ts = replicaLastSeenMap.get(uuid);
+ final ContainerReplicaHistory ts = replicaLastSeenMap.get(id);
if (ts != null) {
// Flush to DB, then remove from in-memory map
- upsertContainerHistory(id, uuid, ts.getLastSeenTime(), ts.getBcsId(),
+ upsertContainerHistory(cid, id, ts.getLastSeenTime(), ts.getBcsId(),
state, ts.getChecksums());
- replicaLastSeenMap.remove(uuid);
+ replicaLastSeenMap.remove(id);
}
}
}
@@ -385,13 +384,13 @@ public ContainerHealthSchemaManager
getContainerSchemaManager() {
}
@VisibleForTesting
- public Map<Long, Map<UUID, ContainerReplicaHistory>> getReplicaHistoryMap() {
+ public Map<Long, Map<DatanodeID, ContainerReplicaHistory>>
getReplicaHistoryMap() {
return replicaHistoryMap;
}
public List<ContainerHistory> getAllContainerHistory(long containerID) {
// First, get the existing entries from DB
- Map<UUID, ContainerReplicaHistory> resMap;
+ Map<DatanodeID, ContainerReplicaHistory> resMap;
try {
resMap = cdbServiceProvider.getContainerReplicaHistory(containerID);
} catch (IOException ex) {
@@ -401,10 +400,10 @@ public List<ContainerHistory> getAllContainerHistory(long
containerID) {
// Then, update the entries with the latest in-memory info, if available
if (replicaHistoryMap != null) {
- Map<UUID, ContainerReplicaHistory> replicaLastSeenMap =
+ Map<DatanodeID, ContainerReplicaHistory> replicaLastSeenMap =
replicaHistoryMap.get(containerID);
if (replicaLastSeenMap != null) {
- Map<UUID, ContainerReplicaHistory> finalResMap = resMap;
+ Map<DatanodeID, ContainerReplicaHistory> finalResMap = resMap;
replicaLastSeenMap.forEach((k, v) ->
finalResMap.merge(k, v, (old, latest) -> latest));
resMap = finalResMap;
@@ -413,19 +412,19 @@ public List<ContainerHistory> getAllContainerHistory(long
containerID) {
// Finally, convert map to list for output
List<ContainerHistory> resList = new ArrayList<>();
- for (Map.Entry<UUID, ContainerReplicaHistory> entry : resMap.entrySet()) {
- final UUID uuid = entry.getKey();
+ for (Map.Entry<DatanodeID, ContainerReplicaHistory> entry :
resMap.entrySet()) {
+ final DatanodeID id = entry.getKey();
String hostname = "N/A";
// Attempt to retrieve hostname from NODES table
if (nodeDB != null) {
try {
- final DatanodeDetails dnDetails = nodeDB.get(DatanodeID.of(uuid));
+ final DatanodeDetails dnDetails = nodeDB.get(id);
if (dnDetails != null) {
hostname = dnDetails.getHostName();
}
} catch (IOException ex) {
LOG.debug("Unable to retrieve from NODES table of node {}. {}",
- uuid, ex.getMessage());
+ id, ex.getMessage());
}
}
final long firstSeenTime = entry.getValue().getFirstSeenTime();
@@ -434,7 +433,7 @@ public List<ContainerHistory> getAllContainerHistory(long
containerID) {
String state = entry.getValue().getState();
long dataChecksum = entry.getValue().getDataChecksum();
- resList.add(new ContainerHistory(containerID, uuid.toString(), hostname,
+ resList.add(new ContainerHistory(containerID, id.toString(), hostname,
firstSeenTime, lastSeenTime, bcsId, state, dataChecksum));
}
return resList;
@@ -469,15 +468,15 @@ public void flushReplicaHistoryMapToDB(boolean clearMap) {
}
}
- public void upsertContainerHistory(long containerID, UUID uuid, long time,
+ public void upsertContainerHistory(long containerID, DatanodeID id, long
time,
long bcsId, String state,
ContainerChecksums checksums) {
- Map<UUID, ContainerReplicaHistory> tsMap;
+ Map<DatanodeID, ContainerReplicaHistory> tsMap;
try {
tsMap = cdbServiceProvider.getContainerReplicaHistory(containerID);
- ContainerReplicaHistory ts = tsMap.get(uuid);
+ ContainerReplicaHistory ts = tsMap.get(id);
if (ts == null) {
// New entry
- tsMap.put(uuid, new ContainerReplicaHistory(uuid, time, time, bcsId,
+ tsMap.put(id, new ContainerReplicaHistory(id, time, time, bcsId,
state, checksums));
} else {
// Entry exists, update last seen time and put it back to DB.
diff --git
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/ReconContainerMetadataManager.java
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/ReconContainerMetadataManager.java
index acdeaf43052..4ca02476654 100644
---
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/ReconContainerMetadataManager.java
+++
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/ReconContainerMetadataManager.java
@@ -19,8 +19,8 @@
import java.io.IOException;
import java.util.Map;
-import java.util.UUID;
import org.apache.hadoop.hdds.annotation.InterfaceStability;
+import org.apache.hadoop.hdds.protocol.DatanodeID;
import org.apache.hadoop.hdds.utils.db.BatchOperation;
import org.apache.hadoop.hdds.utils.db.DBStore;
import org.apache.hadoop.hdds.utils.db.RDBBatchOperation;
@@ -95,7 +95,7 @@ void batchStoreContainerKeyCounts(BatchOperation batch, Long
containerID,
* @throws IOException
*/
void storeContainerReplicaHistory(Long containerID,
- Map<UUID, ContainerReplicaHistory> tsMap) throws IOException;
+ Map<DatanodeID, ContainerReplicaHistory> tsMap) throws IOException;
/**
* Batch version of storeContainerReplicaHistory.
@@ -104,7 +104,7 @@ void storeContainerReplicaHistory(Long containerID,
* @throws IOException
*/
void batchStoreContainerReplicaHistory(
- Map<Long, Map<UUID, ContainerReplicaHistory>> replicaHistoryMap)
+ Map<Long, Map<DatanodeID, ContainerReplicaHistory>> replicaHistoryMap)
throws IOException;
/**
@@ -139,7 +139,7 @@ Integer getCountForContainerKeyPrefix(
* @return A map of ContainerReplicaWithTimestamp of the given containerID.
* @throws IOException
*/
- Map<UUID, ContainerReplicaHistory> getContainerReplicaHistory(
+ Map<DatanodeID, ContainerReplicaHistory> getContainerReplicaHistory(
Long containerID) throws IOException;
/**
diff --git
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/ReconContainerMetadataManagerImpl.java
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/ReconContainerMetadataManagerImpl.java
index 3d8b97d3676..470b2d2a812 100644
---
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/ReconContainerMetadataManagerImpl.java
+++
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/spi/impl/ReconContainerMetadataManagerImpl.java
@@ -34,10 +34,10 @@
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import java.util.UUID;
import javax.inject.Inject;
import javax.inject.Singleton;
import org.apache.commons.lang3.StringUtils;
+import org.apache.hadoop.hdds.protocol.DatanodeID;
import org.apache.hadoop.hdds.scm.pipeline.Pipeline;
import org.apache.hadoop.hdds.scm.pipeline.PipelineID;
import org.apache.hadoop.hdds.utils.db.BatchOperation;
@@ -215,9 +215,9 @@ public void batchStoreContainerKeyCounts(BatchOperation
batch,
*/
@Override
public void storeContainerReplicaHistory(Long containerID,
- Map<UUID, ContainerReplicaHistory> tsMap) throws IOException {
+ Map<DatanodeID, ContainerReplicaHistory> tsMap) throws IOException {
List<ContainerReplicaHistory> tsList = new ArrayList<>();
- for (Map.Entry<UUID, ContainerReplicaHistory> e : tsMap.entrySet()) {
+ for (Map.Entry<DatanodeID, ContainerReplicaHistory> e : tsMap.entrySet()) {
tsList.add(e.getValue());
}
@@ -233,17 +233,17 @@ public void storeContainerReplicaHistory(Long containerID,
*/
@Override
public void batchStoreContainerReplicaHistory(
- Map<Long, Map<UUID, ContainerReplicaHistory>> replicaHistoryMap)
+ Map<Long, Map<DatanodeID, ContainerReplicaHistory>> replicaHistoryMap)
throws IOException {
try (BatchOperation batchOperation =
containerDbStore.initBatchOperation()) {
- for (Map.Entry<Long, Map<UUID, ContainerReplicaHistory>> entry :
+ for (Map.Entry<Long, Map<DatanodeID, ContainerReplicaHistory>> entry :
replicaHistoryMap.entrySet()) {
final long containerId = entry.getKey();
- final Map<UUID, ContainerReplicaHistory> tsMap = entry.getValue();
+ final Map<DatanodeID, ContainerReplicaHistory> tsMap =
entry.getValue();
List<ContainerReplicaHistory> tsList = new ArrayList<>();
- for (Map.Entry<UUID, ContainerReplicaHistory> e : tsMap.entrySet()) {
+ for (Map.Entry<DatanodeID, ContainerReplicaHistory> e :
tsMap.entrySet()) {
tsList.add(e.getValue());
}
@@ -276,7 +276,7 @@ public long getKeyCountForContainer(Long containerID)
throws IOException {
* @throws IOException
*/
@Override
- public Map<UUID, ContainerReplicaHistory> getContainerReplicaHistory(
+ public Map<DatanodeID, ContainerReplicaHistory> getContainerReplicaHistory(
Long containerID) throws IOException {
final ContainerReplicaHistoryList tsList =
@@ -286,12 +286,12 @@ public Map<UUID, ContainerReplicaHistory>
getContainerReplicaHistory(
return new HashMap<>();
}
- Map<UUID, ContainerReplicaHistory> res = new HashMap<>();
+ Map<DatanodeID, ContainerReplicaHistory> res = new HashMap<>();
// Populate result map with entries from the DB.
// The list should be fairly short (< 10 entries).
for (ContainerReplicaHistory ts : tsList.getList()) {
- final UUID uuid = ts.getUuid();
- res.put(uuid, ts);
+ final DatanodeID id = ts.getId();
+ res.put(id, ts);
}
return res;
}
diff --git
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestContainerEndpoint.java
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestContainerEndpoint.java
index aabf2a45a63..bae9ecbeba3 100644
---
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestContainerEndpoint.java
+++
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestContainerEndpoint.java
@@ -48,7 +48,6 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.UUID;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
@@ -175,10 +174,10 @@ public class TestContainerEndpoint {
private static final long LOCAL_ID = 0L;
private static final long KEY_ONE_SIZE = 500L; // 500 bytes
- private UUID uuid1;
- private UUID uuid2;
- private UUID uuid3;
- private UUID uuid4;
+ private DatanodeID id1;
+ private DatanodeID id2;
+ private DatanodeID id3;
+ private DatanodeID id4;
private void initializeInjector() throws Exception {
reconOMMetadataManager = getTestReconOmMetadataManager(
@@ -763,10 +762,10 @@ public void testGetMissingContainers() throws
IOException, TimeoutException {
assertEquals(Collections.EMPTY_LIST, responseObject.getContainers());
putContainerInfos(5);
- uuid1 = newDatanode("host1", "127.0.0.1");
- uuid2 = newDatanode("host2", "127.0.0.2");
- uuid3 = newDatanode("host3", "127.0.0.3");
- uuid4 = newDatanode("host4", "127.0.0.4");
+ id1 = newDatanode("host1", "127.0.0.1");
+ id2 = newDatanode("host2", "127.0.0.2");
+ id3 = newDatanode("host3", "127.0.0.3");
+ id4 = newDatanode("host4", "127.0.0.4");
createUnhealthyRecords(5, 0, 0, 0, 0);
Response responseWithLimit = containerEndpoint.getMissingContainers(3);
@@ -848,10 +847,10 @@ public void testUnhealthyContainers() throws IOException,
TimeoutException {
assertEquals(Collections.EMPTY_LIST, responseObject.getContainers());
putContainerInfos(15);
- uuid1 = newDatanode("host1", "127.0.0.1");
- uuid2 = newDatanode("host2", "127.0.0.2");
- uuid3 = newDatanode("host3", "127.0.0.3");
- uuid4 = newDatanode("host4", "127.0.0.4");
+ id1 = newDatanode("host1", "127.0.0.1");
+ id2 = newDatanode("host2", "127.0.0.2");
+ id3 = newDatanode("host3", "127.0.0.3");
+ id4 = newDatanode("host4", "127.0.0.4");
createUnhealthyRecords(5, 4, 3, 2, 1);
response = containerEndpoint.getUnhealthyContainers(1000, 0, 0);
@@ -969,11 +968,13 @@ public void testUnhealthyContainersFilteredResponse()
// Add unhealthy records
putContainerInfos(5);
- uuid1 = newDatanode("host1", "127.0.0.1");
- uuid2 = newDatanode("host2", "127.0.0.2");
- uuid3 = newDatanode("host3", "127.0.0.3");
- uuid4 = newDatanode("host4", "127.0.0.4");
+ id1 = newDatanode("host1", "127.0.0.1");
+ id2 = newDatanode("host2", "127.0.0.2");
+ id3 = newDatanode("host3", "127.0.0.3");
+ id4 = newDatanode("host4", "127.0.0.4");
createUnhealthyRecords(5, 4, 3, 2, 1);
+ // createEmptyMissingUnhealthyRecords(2); // For EMPTY_MISSING state
+ // createNegativeSizeUnhealthyRecords(2); // For NEGATIVE_SIZE state
// Check for unhealthy containers
response = containerEndpoint.getUnhealthyContainers(missing, 1000, 0, 0);
@@ -1031,10 +1032,10 @@ public void testUnhealthyContainersPaging()
// createUnhealthyRecords(5, 4, 3, 2) will create records for containers
1-14
// So we need to create 14 containers instead of just 6
putContainerInfos(14); // Changed from 6 to 14
- uuid1 = newDatanode("host1", "127.0.0.1");
- uuid2 = newDatanode("host2", "127.0.0.2");
- uuid3 = newDatanode("host3", "127.0.0.3");
- uuid4 = newDatanode("host4", "127.0.0.4");
+ id1 = newDatanode("host1", "127.0.0.1");
+ id2 = newDatanode("host2", "127.0.0.2");
+ id3 = newDatanode("host3", "127.0.0.3");
+ id4 = newDatanode("host4", "127.0.0.4");
createUnhealthyRecords(5, 4, 3, 2, 0);
// Get first batch with no pagination (prevStartKey=0, prevLastKey=0)
@@ -1072,10 +1073,10 @@ public void testUnhealthyContainersPaging()
@Test
public void testGetReplicaHistoryForContainer() throws IOException {
// Add container history for container id 1
- final UUID u1 = newDatanode("host1", "127.0.0.1");
- final UUID u2 = newDatanode("host2", "127.0.0.2");
- final UUID u3 = newDatanode("host3", "127.0.0.3");
- final UUID u4 = newDatanode("host4", "127.0.0.4");
+ final DatanodeID u1 = newDatanode("host1", "127.0.0.1");
+ final DatanodeID u2 = newDatanode("host2", "127.0.0.2");
+ final DatanodeID u3 = newDatanode("host3", "127.0.0.3");
+ final DatanodeID u4 = newDatanode("host4", "127.0.0.4");
reconContainerManager.upsertContainerHistory(1L, u1, 1L, 1L, "OPEN",
ContainerChecksums.of(1234L, 0L));
reconContainerManager.upsertContainerHistory(1L, u2, 2L, 1L, "OPEN",
ContainerChecksums.of(1234L, 0L));
reconContainerManager.upsertContainerHistory(1L, u3, 3L, 1L, "OPEN",
ContainerChecksums.of(1234L, 0L));
@@ -1116,15 +1117,15 @@ public void testGetReplicaHistoryForContainer() throws
IOException {
}
}
- UUID newDatanode(String hostName, String ipAddress) throws IOException {
- final UUID uuid = UUID.randomUUID();
- reconContainerManager.getNodeDB().put(DatanodeID.of(uuid),
+ DatanodeID newDatanode(String hostName, String ipAddress) throws IOException
{
+ final DatanodeID id = DatanodeID.randomID();
+ reconContainerManager.getNodeDB().put(id,
DatanodeDetails.newBuilder()
- .setUuid(uuid)
+ .setID(id)
.setHostName(hostName)
.setIpAddress(ipAddress)
.build());
- return uuid;
+ return id;
}
private void createUnhealthyRecords(int missing, int overRep, int underRep,
@@ -1167,13 +1168,13 @@ private void createUnhealthyRecord(int id, String
state, int expected,
long differentChecksum = dataChecksumMismatch ? 2345L : 1234L;
- reconContainerManager.upsertContainerHistory(cID, uuid1, 1L, 1L,
+ reconContainerManager.upsertContainerHistory(cID, id1, 1L, 1L,
"UNHEALTHY", ContainerChecksums.of(differentChecksum, 0L));
- reconContainerManager.upsertContainerHistory(cID, uuid2, 2L, 1L,
+ reconContainerManager.upsertContainerHistory(cID, id2, 2L, 1L,
"UNHEALTHY", ContainerChecksums.of(differentChecksum, 0L));
- reconContainerManager.upsertContainerHistory(cID, uuid3, 3L, 1L,
+ reconContainerManager.upsertContainerHistory(cID, id3, 3L, 1L,
"UNHEALTHY", ContainerChecksums.of(1234L, 0L));
- reconContainerManager.upsertContainerHistory(cID, uuid4, 4L, 1L,
+ reconContainerManager.upsertContainerHistory(cID, id4, 4L, 1L,
"UNHEALTHY", ContainerChecksums.of(1234L, 0L));
}
@@ -1622,7 +1623,7 @@ public void
testGetContainerInsightsNonOMContainersPipelineIsolation()
throws IOException, TimeoutException {
// Verifies fix for pipeline accumulation bug: containers missing in OM
// should each have their own isolated pipeline list, not shared.
-
+
// Create 3 different pipelines
Pipeline[] pipelines = {
getRandomPipeline(), getRandomPipeline(), getRandomPipeline()
@@ -1630,7 +1631,7 @@ public void
testGetContainerInsightsNonOMContainersPipelineIsolation()
for (Pipeline p : pipelines) {
reconPipelineManager.addPipeline(p);
}
-
+
// Create 3 containers in SCM with different pipelines (not in OM)
long[] containerIds = {501L, 502L, 503L};
for (int i = 0; i < containerIds.length; i++) {
@@ -1638,16 +1639,16 @@ public void
testGetContainerInsightsNonOMContainersPipelineIsolation()
assertFalse(reconContainerMetadataManager.doesContainerExists(containerIds[i]),
"Container " + containerIds[i] + " should NOT exist in OM");
}
-
+
// Call API
Response response = containerEndpoint.getContainerMisMatchInsights(10,
500, "OM");
assertEquals(Response.Status.OK.getStatusCode(), response.getStatus());
-
+
Map<String, Object> responseMap = (Map<String, Object>)
response.getEntity();
List<ContainerDiscrepancyInfo> discrepancies =
(List<ContainerDiscrepancyInfo>)
responseMap.get("containerDiscrepancyInfo");
assertNotNull(discrepancies);
-
+
// Find containers in response
ContainerDiscrepancyInfo[] infos = new ContainerDiscrepancyInfo[3];
for (int i = 0; i < containerIds.length; i++) {
@@ -1658,12 +1659,12 @@ public void
testGetContainerInsightsNonOMContainersPipelineIsolation()
.orElseThrow(() -> new AssertionError(
"Container " + id + " not found in mismatch list"));
}
-
+
// Verify pipeline isolation for each container
List<Pipeline> pipelineList1 = infos[0].getPipelines();
List<Pipeline> pipelineList2 = infos[1].getPipelines();
List<Pipeline> pipelineList3 = infos[2].getPipelines();
-
+
verifyPipelineIsolation(infos[0], containerIds[0], pipelines[0].getId(),
Arrays.asList(pipelineList2, pipelineList3));
verifyPipelineIsolation(infos[1], containerIds[1], pipelines[1].getId(),
@@ -2030,8 +2031,8 @@ public void testGetQuasiClosedContainersWithReplicas()
throws Exception {
ContainerID.valueOf(210L), HddsProtos.LifeCycleEvent.QUASI_CLOSE);
// Register 2 datanodes and upsert replica history for container 210.
- UUID dn1 = newDatanode("qc-host1", "10.0.0.1");
- UUID dn2 = newDatanode("qc-host2", "10.0.0.2");
+ DatanodeID dn1 = newDatanode("qc-host1", "10.0.0.1");
+ DatanodeID dn2 = newDatanode("qc-host2", "10.0.0.2");
reconContainerManager.upsertContainerHistory(
210L, dn1, 1L, 2L, "QUASI_CLOSED", ContainerChecksums.of(1111L, 0L));
reconContainerManager.upsertContainerHistory(
diff --git
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestEndpoints.java
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestEndpoints.java
index 07dd11d8021..db9301e4795 100644
---
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestEndpoints.java
+++
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestEndpoints.java
@@ -53,6 +53,7 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
@@ -333,8 +334,8 @@ public void setUp() throws Exception {
initializeInjector();
isSetupDone = true;
}
- String datanodeId = datanodeDetails.getUuid().toString();
- String datanodeId2 = datanodeDetails2.getUuid().toString();
+ String datanodeId = datanodeDetails.getID().toString();
+ String datanodeId2 = datanodeDetails2.getID().toString();
containerReportsProto =
ContainerReportsProto.newBuilder()
.addReports(
@@ -432,7 +433,7 @@ public void setUp() throws Exception {
DatanodeDetailsProto datanodeDetailsProto3 =
DatanodeDetailsProto.newBuilder()
.setHostName(HOST3)
- .setUuid(datanodeDetails3.getUuid().toString())
+ .setId(datanodeDetails3.getID().toProto())
.setIpAddress(IP3)
.build();
extendedDatanodeDetailsProto3 =
@@ -1310,7 +1311,8 @@ public void testExplicitRemovalOfDecommissionedNode()
throws Exception {
nodeManager.setNodeOperationalState(dnDetailsInternal,
NodeOperationalState.DECOMMISSIONED, 666L);
- Response removedDNResponse =
nodeEndpoint.removeDatanodes(Arrays.asList(datanodeDetails3.getUuid().toString()));
+ Response removedDNResponse = nodeEndpoint.removeDatanodes(
+ Collections.singletonList(datanodeDetails3.getID().toString()));
RemoveDataNodesResponseWrapper removeDataNodesResponseWrapper =
(RemoveDataNodesResponseWrapper) removedDNResponse.getEntity();
@@ -1326,7 +1328,7 @@ public void testExplicitRemovalOfDecommissionedNode()
throws Exception {
@Test
public void testExplicitRemovalOfInvalidStateNode() {
- String dnUUID = datanodeDetails2.getUuid().toString();
+ String dnUUID = datanodeDetails2.getID().toString();
Response removedDNResponse =
nodeEndpoint.removeDatanodes(Arrays.asList(dnUUID));
RemoveDataNodesResponseWrapper removeDataNodesResponseWrapper =
(RemoveDataNodesResponseWrapper) removedDNResponse.getEntity();
@@ -1343,7 +1345,7 @@ public void testExplicitRemovalOfInvalidStateNode() {
@Test
public void testExplicitRemovalOfNonExistingNode() {
- String dnUUID = datanodeDetails4.getUuid().toString();
+ String dnUUID = datanodeDetails4.getID().toString();
Response removedDNResponse =
nodeEndpoint.removeDatanodes(Arrays.asList(dnUUID));
RemoveDataNodesResponseWrapper removeDataNodesResponseWrapper =
(RemoveDataNodesResponseWrapper) removedDNResponse.getEntity();
diff --git
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestOpenContainerCount.java
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestOpenContainerCount.java
index be2fd9bd824..e4325f9604f 100644
---
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestOpenContainerCount.java
+++
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestOpenContainerCount.java
@@ -225,7 +225,7 @@ public void setUp() throws Exception {
initializeInjector();
isSetupDone = true;
}
- datanodeId = datanodeDetails.getUuid().toString();
+ datanodeId = datanodeDetails.getID().toString();
// initialize container report
builder = ContainerReportsProto.newBuilder();
diff --git
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/TestReconContainerManager.java
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/TestReconContainerManager.java
index 1d871b9974b..e1e89f180be 100644
---
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/TestReconContainerManager.java
+++
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/TestReconContainerManager.java
@@ -32,10 +32,10 @@
import java.util.List;
import java.util.Map;
import java.util.NavigableSet;
-import java.util.UUID;
import java.util.concurrent.TimeoutException;
import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.protocol.DatanodeDetails;
+import org.apache.hadoop.hdds.protocol.DatanodeID;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos.LifeCycleState;
import
org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.ContainerReplicaProto;
@@ -205,16 +205,16 @@ public void testUpdateAndRemoveContainerReplica()
final ContainerID containerID1 = ContainerID.valueOf(cIDlong1);
// Init DN01
- final UUID uuid1 = UUID.randomUUID();
+ final DatanodeID id1 = DatanodeID.randomID();
final DatanodeDetails datanodeDetails1 = DatanodeDetails.newBuilder()
- .setUuid(uuid1).setHostName("host1").setIpAddress("127.0.0.1").build();
+ .setID(id1).setHostName("host1").setIpAddress("127.0.0.1").build();
ContainerReplica containerReplica1 = ContainerReplica.newBuilder()
.setContainerID(containerID1).setContainerState(State.OPEN)
.setDatanodeDetails(datanodeDetails1).setSequenceId(1001L)
.setChecksums(ContainerChecksums.of(1234L, 0L)).build();
final ReconContainerManager containerManager = getContainerManager();
- final Map<Long, Map<UUID, ContainerReplicaHistory>> repHistMap =
+ final Map<Long, Map<DatanodeID, ContainerReplicaHistory>> repHistMap =
containerManager.getReplicaHistoryMap();
// Should be empty at the beginning
assertEquals(0, repHistMap.size());
@@ -233,8 +233,8 @@ public void testUpdateAndRemoveContainerReplica()
assertEquals(1, repHistMap.size());
// Should only have 1 entry for this replica (on DN01)
assertEquals(1, repHistMap.get(cIDlong1).size());
- ContainerReplicaHistory repHist1 = repHistMap.get(cIDlong1).get(uuid1);
- assertEquals(uuid1, repHist1.getUuid());
+ ContainerReplicaHistory repHist1 = repHistMap.get(cIDlong1).get(id1);
+ assertEquals(id1, repHist1.getId());
// Because this is a new entry, first seen time equals last seen time
assertEquals(repHist1.getLastSeenTime(), repHist1.getFirstSeenTime());
assertEquals(containerReplica1.getSequenceId().longValue(),
@@ -253,9 +253,9 @@ public void testUpdateAndRemoveContainerReplica()
assertEquals(1051L, repHist1.getBcsId());
// Init DN02
- final UUID uuid2 = UUID.randomUUID();
+ final DatanodeID id2 = DatanodeID.randomID();
final DatanodeDetails datanodeDetails2 = DatanodeDetails.newBuilder()
- .setUuid(uuid2).setHostName("host2").setIpAddress("127.0.0.2").build();
+ .setID(id2).setHostName("host2").setIpAddress("127.0.0.2").build();
final ContainerReplica containerReplica2 = ContainerReplica.newBuilder()
.setContainerID(containerID1).setContainerState(State.OPEN)
.setDatanodeDetails(datanodeDetails2).setSequenceId(1051L)
@@ -268,8 +268,8 @@ public void testUpdateAndRemoveContainerReplica()
assertEquals(1, repHistMap.size());
// Should have 2 entries for this replica (on DN01 and DN02)
assertEquals(2, repHistMap.get(cIDlong1).size());
- ContainerReplicaHistory repHist2 = repHistMap.get(cIDlong1).get(uuid2);
- assertEquals(uuid2, repHist2.getUuid());
+ ContainerReplicaHistory repHist2 = repHistMap.get(cIDlong1).get(id2);
+ assertEquals(id2, repHist2.getId());
// Because this is a new entry, first seen time equals last seen time
assertEquals(repHist2.getLastSeenTime(), repHist2.getFirstSeenTime());
assertEquals(1051L, repHist2.getBcsId());
@@ -282,7 +282,7 @@ public void testUpdateAndRemoveContainerReplica()
// Should have 1 entry for this replica
assertEquals(1, repHistMap.get(cIDlong1).size());
// And the only entry should match DN02
- assertEquals(uuid2,
+ assertEquals(id2,
repHistMap.get(cIDlong1).keySet().iterator().next());
}
diff --git
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/TestReconNodeManager.java
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/TestReconNodeManager.java
index e0eb2f020cc..9c93441457d 100644
---
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/TestReconNodeManager.java
+++
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/TestReconNodeManager.java
@@ -232,7 +232,7 @@ public void testUpdateNodeOperationalStateFromScm() throws
Exception {
List<DatanodeDetails> nodes =
reconNodeManager.getNodes(DECOMMISSIONING, null);
assertEquals(1, nodes.size());
- assertEquals(datanodeDetails.getUuid(), nodes.get(0).getUuid());
+ assertEquals(datanodeDetails.getID(), nodes.get(0).getID());
}
@Test
diff --git
a/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java
index 0268281f83e..324df519e59 100644
---
a/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java
+++
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java
@@ -54,6 +54,7 @@
import org.apache.hadoop.hdds.cli.HddsVersionProvider;
import org.apache.hadoop.hdds.conf.ConfigurationSource;
import org.apache.hadoop.hdds.protocol.DatanodeDetails;
+import org.apache.hadoop.hdds.protocol.DatanodeID;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationType;
@@ -131,7 +132,7 @@ public class DatanodeSimulator implements Callable<Void>,
VaporSubcommand {
private ConfigurationSource conf;
private List<DatanodeSimulationState> datanodes;
- private Map<UUID, DatanodeSimulationState> datanodesMap;
+ private Map<DatanodeID, DatanodeSimulationState> datanodesMap;
private ScheduledExecutorService heartbeatScheduler;
private LayoutVersionProto layoutInfo;
@@ -295,7 +296,7 @@ private void loadOrCreateDatanodes() throws
UnknownHostException {
datanodesMap = new HashMap<>();
for (DatanodeSimulationState datanode : datanodes) {
- datanodesMap.put(datanode.getDatanodeDetails().getUuid(), datanode);
+ datanodesMap.put(datanode.getDatanodeDetails().getID(), datanode);
}
}
@@ -317,8 +318,8 @@ private void growContainers() throws IOException {
ReplicationFactor.THREE, "test");
for (DatanodeDetails datanode : cp.getPipeline().getNodeSet()) {
- if (datanodesMap.containsKey(datanode.getUuid())) {
- datanodesMap.get(datanode.getUuid())
+ if (datanodesMap.containsKey(datanode.getID())) {
+ datanodesMap.get(datanode.getID())
.newContainer(cp.getContainerInfo().getContainerID());
totalAssignedContainers++;
}
@@ -458,7 +459,7 @@ private LayoutVersionProto createLayoutInfo() throws
IOException {
private DatanodeDetails randomDatanodeDetails(ConfigurationSource config)
throws UnknownHostException {
DatanodeDetails details = DatanodeDetails.newBuilder()
- .setUuid(UUID.randomUUID())
+ .setID(DatanodeID.randomID())
.build();
details.setInitialVersion(DatanodeVersion.CURRENT_VERSION);
details.setCurrentVersion(DatanodeVersion.CURRENT_VERSION);
diff --git
a/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/SCMThroughputBenchmark.java
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/SCMThroughputBenchmark.java
index 031c69a10e2..3652a8e58dd 100644
---
a/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/SCMThroughputBenchmark.java
+++
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/SCMThroughputBenchmark.java
@@ -33,7 +33,6 @@
import java.util.List;
import java.util.Queue;
import java.util.Random;
-import java.util.UUID;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -49,6 +48,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.proto.HddsProtos.ReplicationFactor;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationType;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos.StorageTypeProto;
@@ -796,7 +796,7 @@ private class FakeDatanode {
public void register() throws IOException {
SCMRegisteredResponseProto response = datanodeScmClient.register(
datanodeDetails.getExtendedProtoBufMessage(),
- createNodeReport(datanodeDetails.getUuid()),
+ createNodeReport(datanodeDetails.getID()),
createContainerReport(),
createPipelineReport(),
UpgradeUtils.defaultLayoutVersionProto());
@@ -852,7 +852,6 @@ public DatanodeDetails getDatanodeDetails() {
}
private static DatanodeDetails createRandomDatanodeDetails() {
- UUID uuid = UUID.randomUUID();
String ipAddress =
RANDOM.nextInt(256) + "." + RANDOM.nextInt(256) + "." + RANDOM
.nextInt(256) + "." + RANDOM.nextInt(256);
@@ -861,7 +860,8 @@ private static DatanodeDetails
createRandomDatanodeDetails() {
DatanodeDetails.Port ratisPort = DatanodeDetails.newRatisPort(0);
DatanodeDetails.Port restPort = DatanodeDetails.newRestPort(0);
DatanodeDetails.Builder builder = DatanodeDetails.newBuilder();
- builder.setUuid(uuid).setHostName("localhost")
+ builder.setID(DatanodeID.randomID())
+ .setHostName("localhost")
.setIpAddress(ipAddress)
.addPort(containerPort)
.addPort(ratisPort)
@@ -869,7 +869,7 @@ private static DatanodeDetails
createRandomDatanodeDetails() {
return builder.build();
}
- private static NodeReportProto createNodeReport(UUID nodeId) {
+ private static NodeReportProto createNodeReport(DatanodeID nodeId) {
List<StorageReportProto> storageReports = new ArrayList<>();
List<MetadataStorageReportProto> metadataStorageReports =
new ArrayList<>();
@@ -881,7 +881,7 @@ private static NodeReportProto createNodeReport(UUID
nodeId) {
return nb.build();
}
- private static StorageReportProto createStorageReport(UUID nodeId) {
+ private static StorageReportProto createStorageReport(DatanodeID nodeId) {
StorageReportProto.Builder srb = StorageReportProto.newBuilder();
srb.setStorageUuid(nodeId.toString())
.setStorageLocation("/data")
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]