This is an automated email from the ASF dual-hosted git repository.
adoroszlai 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 8d906a5ac0 HDDS-10087. Clean up code in NodeDecommissionManager (#5953)
8d906a5ac0 is described below
commit 8d906a5ac0afe2c7ab8fe9ea1594407ae4d6ea64
Author: jianghuazhu <[email protected]>
AuthorDate: Thu Jan 11 02:14:47 2024 +0800
HDDS-10087. Clean up code in NodeDecommissionManager (#5953)
---
.../hdds/scm/node/NodeDecommissionManager.java | 51 ++++++++--------------
.../hdds/scm/server/StorageContainerManager.java | 2 +-
.../hdds/scm/node/TestNodeDecommissionManager.java | 2 +-
3 files changed, 19 insertions(+), 36 deletions(-)
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/NodeDecommissionManager.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/NodeDecommissionManager.java
index f48841bc67..c98cc63c46 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/NodeDecommissionManager.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/NodeDecommissionManager.java
@@ -24,7 +24,6 @@ import org.apache.hadoop.hdds.protocol.DatanodeDetails;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeOperationalState;
import org.apache.hadoop.hdds.scm.DatanodeAdminError;
import org.apache.hadoop.hdds.scm.ScmConfigKeys;
-import org.apache.hadoop.hdds.scm.container.ContainerManager;
import org.apache.hadoop.hdds.scm.container.replication.ReplicationManager;
import org.apache.hadoop.hdds.scm.ha.SCMContext;
import org.apache.hadoop.hdds.scm.node.states.NodeNotFoundException;
@@ -51,25 +50,20 @@ import java.util.stream.Collectors;
*/
public class NodeDecommissionManager {
- private ScheduledExecutorService executor;
- private DatanodeAdminMonitor monitor;
+ private final ScheduledExecutorService executor;
+ private final DatanodeAdminMonitor monitor;
- private NodeManager nodeManager;
- //private ContainerManager containerManager;
- private SCMContext scmContext;
- private EventPublisher eventQueue;
- private ReplicationManager replicationManager;
- private OzoneConfiguration conf;
- private boolean useHostnames;
- private long monitorInterval;
+ private final NodeManager nodeManager;
+ private final SCMContext scmContext;
+ private final boolean useHostnames;
// Decommissioning and Maintenance mode progress related metrics.
- private NodeDecommissionMetrics metrics;
+ private final NodeDecommissionMetrics metrics;
private static final Logger LOG =
LoggerFactory.getLogger(NodeDecommissionManager.class);
- static class HostDefinition {
+ static final class HostDefinition {
private String rawHostname;
private String hostname;
private int port;
@@ -119,12 +113,7 @@ public class NodeDecommissionManager {
try {
host = new HostDefinition(hostString);
addr = InetAddress.getByName(host.getHostname());
- } catch (InvalidHostStringException e) {
- LOG.warn("Unable to resolve host {} ", hostString, e);
- errors.add(new DatanodeAdminError(hostString,
- e.getMessage()));
- continue;
- } catch (UnknownHostException e) {
+ } catch (InvalidHostStringException | UnknownHostException e) {
LOG.warn("Unable to resolve host {} ", hostString, e);
errors.add(new DatanodeAdminError(hostString,
e.getMessage()));
@@ -262,15 +251,10 @@ public class NodeDecommissionManager {
}
public NodeDecommissionManager(OzoneConfiguration config, NodeManager nm,
- ContainerManager containerManager, SCMContext scmContext,
+ SCMContext scmContext,
EventPublisher eventQueue, ReplicationManager rm) {
this.nodeManager = nm;
- conf = config;
- //this.containerManager = containerManager;
this.scmContext = scmContext;
- this.eventQueue = eventQueue;
- this.replicationManager = rm;
- this.metrics = null;
executor = Executors.newScheduledThreadPool(1,
new ThreadFactoryBuilder()
@@ -280,11 +264,11 @@ public class NodeDecommissionManager {
.build()
);
- useHostnames = conf.getBoolean(
+ useHostnames = config.getBoolean(
DFSConfigKeys.DFS_DATANODE_USE_DN_HOSTNAME,
DFSConfigKeys.DFS_DATANODE_USE_DN_HOSTNAME_DEFAULT);
- monitorInterval = conf.getTimeDuration(
+ long monitorInterval = config.getTimeDuration(
ScmConfigKeys.OZONE_SCM_DATANODE_ADMIN_MONITOR_INTERVAL,
ScmConfigKeys.OZONE_SCM_DATANODE_ADMIN_MONITOR_INTERVAL_DEFAULT,
TimeUnit.SECONDS);
@@ -292,16 +276,16 @@ public class NodeDecommissionManager {
LOG.warn("{} must be greater than zero, defaulting to {}",
ScmConfigKeys.OZONE_SCM_DATANODE_ADMIN_MONITOR_INTERVAL,
ScmConfigKeys.OZONE_SCM_DATANODE_ADMIN_MONITOR_INTERVAL_DEFAULT);
- conf.set(ScmConfigKeys.OZONE_SCM_DATANODE_ADMIN_MONITOR_INTERVAL,
+ config.set(ScmConfigKeys.OZONE_SCM_DATANODE_ADMIN_MONITOR_INTERVAL,
ScmConfigKeys.OZONE_SCM_DATANODE_ADMIN_MONITOR_INTERVAL_DEFAULT);
- monitorInterval = conf.getTimeDuration(
+ monitorInterval = config.getTimeDuration(
ScmConfigKeys.OZONE_SCM_DATANODE_ADMIN_MONITOR_INTERVAL,
ScmConfigKeys.OZONE_SCM_DATANODE_ADMIN_MONITOR_INTERVAL_DEFAULT,
TimeUnit.SECONDS);
}
- monitor = new DatanodeAdminMonitorImpl(conf, eventQueue, nodeManager,
- replicationManager);
+ monitor = new DatanodeAdminMonitorImpl(config, eventQueue, nodeManager,
+ rm);
this.metrics = NodeDecommissionMetrics.create();
monitor.setMetrics(this.metrics);
executor.scheduleAtFixedRate(monitor, monitorInterval, monitorInterval,
@@ -342,7 +326,6 @@ public class NodeDecommissionManager {
* be in DECOMMISSIONING or ENTERING_MAINTENANCE state. In that case, it
* needs to be added back into the monitor to track its progress.
* @param dn Datanode to add back to tracking.
- * @throws NodeNotFoundException
*/
public synchronized void continueAdminForNode(DatanodeDetails dn)
throws NodeNotFoundException {
@@ -379,7 +362,7 @@ public class NodeDecommissionManager {
}
public synchronized List<DatanodeAdminError> recommissionNodes(
- List<String> nodes) throws InvalidHostStringException {
+ List<String> nodes) {
List<DatanodeAdminError> errors = new ArrayList<>();
List<DatanodeDetails> dns = mapHostnamesToDatanodes(nodes, errors);
for (DatanodeDetails dn : dns) {
@@ -416,7 +399,7 @@ public class NodeDecommissionManager {
}
public synchronized List<DatanodeAdminError> startMaintenanceNodes(
- List<String> nodes, int endInHours) throws InvalidHostStringException {
+ List<String> nodes, int endInHours) {
List<DatanodeAdminError> errors = new ArrayList<>();
List<DatanodeDetails> dns = mapHostnamesToDatanodes(nodes, errors);
for (DatanodeDetails dn : dns) {
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java
index 34f2274a32..1a3ea2515f 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java
@@ -847,7 +847,7 @@ public final class StorageContainerManager extends
ServiceRuntimeInfoImpl
}
scmDecommissionManager = new NodeDecommissionManager(conf, scmNodeManager,
- containerManager, scmContext, eventQueue, replicationManager);
+ scmContext, eventQueue, replicationManager);
statefulServiceStateManager = StatefulServiceStateManagerImpl.newBuilder()
.setStatefulServiceConfig(
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeDecommissionManager.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeDecommissionManager.java
index 02b0ffdeb2..332d762a4c 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeDecommissionManager.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeDecommissionManager.java
@@ -64,7 +64,7 @@ public class TestNodeDecommissionManager {
conf = new OzoneConfiguration();
conf.set(HddsConfigKeys.OZONE_METADATA_DIRS, dir.getAbsolutePath());
nodeManager = createNodeManager(conf);
- decom = new NodeDecommissionManager(conf, nodeManager, null,
+ decom = new NodeDecommissionManager(conf, nodeManager,
SCMContext.emptyContext(), new EventQueue(), null);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]