You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ozone.apache.org by so...@apache.org on 2024/02/06 16:35:02 UTC

(ozone) branch HDDS-5713 updated: HDDS-10304. [DiskBalancer] Start command - Fix nodes not being processed and incorrect config values (#6181)

This is an automated email from the ASF dual-hosted git repository.

sodonnell pushed a commit to branch HDDS-5713
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/HDDS-5713 by this push:
     new 7e4057899a HDDS-10304. [DiskBalancer] Start command - Fix nodes not being processed and incorrect config values (#6181)
7e4057899a is described below

commit 7e4057899acbfa320be4b8c4cb10a39939b6a2cd
Author: Stephen O'Donnell <st...@gmail.com>
AuthorDate: Tue Feb 6 16:34:56 2024 +0000

    HDDS-10304. [DiskBalancer] Start command - Fix nodes not being processed and incorrect config values (#6181)
---
 .../protocol/commands/DiskBalancerCommand.java      |  5 +++++
 .../hadoop/hdds/scm/node/DiskBalancerManager.java   |  4 +++-
 ...ainerLocationProtocolServerSideTranslatorPB.java | 21 ++++++++++++---------
 3 files changed, 20 insertions(+), 10 deletions(-)

diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/DiskBalancerCommand.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/DiskBalancerCommand.java
index 1780877787..b8c047d1b1 100644
--- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/DiskBalancerCommand.java
+++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/DiskBalancerCommand.java
@@ -76,4 +76,9 @@ public class DiskBalancerCommand extends SCMCommand<DiskBalancerCommandProto> {
   public DiskBalancerConfiguration getDiskBalancerConfiguration() {
     return diskBalancerConfiguration;
   }
+
+  @Override
+  public String toString() {
+    return getType() + ": opType=" + opType + ", configuration=" + diskBalancerConfiguration;
+  }
 }
diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/DiskBalancerManager.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/DiskBalancerManager.java
index 1af9bfde4c..a45e81e15f 100644
--- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/DiskBalancerManager.java
+++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/DiskBalancerManager.java
@@ -156,7 +156,7 @@ public class DiskBalancerManager {
     List<DatanodeAdminError> errors = new ArrayList<>();
     for (DatanodeDetails dn : dns) {
       try {
-        if (nodeManager.getNodeStatus(dn).isHealthy()) {
+        if (!nodeManager.getNodeStatus(dn).isHealthy()) {
           errors.add(new DatanodeAdminError(dn.getHostName(),
               "Datanode not in healthy state"));
           continue;
@@ -169,6 +169,7 @@ public class DiskBalancerManager {
             HddsProtos.DiskBalancerOpType.START, updateConf);
         sendCommand(dn, command);
       } catch (Exception e) {
+        LOG.info("Caught an error for {}", dn);
         errors.add(new DatanodeAdminError(dn.getHostName(), e.getMessage()));
       }
     }
@@ -355,6 +356,7 @@ public class DiskBalancerManager {
           " since not leader SCM.", dn.getUuidString());
       return;
     }
+    LOG.info("Sending {} to Datanode {}", command, dn);
     scmNodeEventPublisher.fireEvent(SCMEvents.DATANODE_COMMAND,
         new CommandForDatanode<>(dn.getUuid(), command));
   }
diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocolServerSideTranslatorPB.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocolServerSideTranslatorPB.java
index 4773aa123f..011599d58a 100644
--- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocolServerSideTranslatorPB.java
+++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocolServerSideTranslatorPB.java
@@ -1336,23 +1336,26 @@ public final class StorageContainerLocationProtocolServerSideTranslatorPB
           DatanodeDiskBalancerOpRequestProto request)
       throws IOException {
     List<DatanodeAdminError> errors;
+    HddsProtos.DiskBalancerConfigurationProto conf = request.getConf();
     switch (request.getOpType()) {
     case START:
       errors = impl.startDiskBalancer(
-          Optional.of(request.getConf().getThreshold()),
-          Optional.of(request.getConf().getDiskBandwidthInMB()),
-          Optional.of(request.getConf().getParallelThread()),
-          Optional.of(request.getHostsList()));
+          conf.hasThreshold() ? Optional.of(conf.getThreshold()) : Optional.empty(),
+          conf.hasDiskBandwidthInMB() ? Optional.of(conf.getDiskBandwidthInMB()) : Optional.empty(),
+          conf.hasParallelThread() ? Optional.of(conf.getParallelThread()) : Optional.empty(),
+          request.getHostsList().isEmpty() ? Optional.empty() : Optional.of(request.getHostsList()));
       break;
     case UPDATE:
+
       errors = impl.updateDiskBalancerConfiguration(
-          Optional.of(request.getConf().getThreshold()),
-          Optional.of(request.getConf().getDiskBandwidthInMB()),
-          Optional.of(request.getConf().getParallelThread()),
-          Optional.of(request.getHostsList()));
+          conf.hasThreshold() ? Optional.of(conf.getThreshold()) : Optional.empty(),
+          conf.hasDiskBandwidthInMB() ? Optional.of(conf.getDiskBandwidthInMB()) : Optional.empty(),
+          conf.hasParallelThread() ? Optional.of(conf.getParallelThread()) : Optional.empty(),
+          request.getHostsList().isEmpty() ? Optional.empty() : Optional.of(request.getHostsList()));
       break;
     case STOP:
-      errors = impl.stopDiskBalancer(Optional.of(request.getHostsList()));
+      errors = impl.stopDiskBalancer(
+          request.getHostsList().isEmpty() ? Optional.empty() : Optional.of(request.getHostsList()));
       break;
     default:
       errors = new ArrayList<>();


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@ozone.apache.org
For additional commands, e-mail: commits-help@ozone.apache.org