You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@druid.apache.org by kg...@apache.org on 2025/04/05 04:55:37 UTC

(druid) 01/02: Fix flakiness in compaction ITs (#17877)

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

kgyrtkirk pushed a commit to branch 33.0.0
in repository https://gitbox.apache.org/repos/asf/druid.git

commit 01bd059309f0bb4da769eda84a4ec227ef08223e
Author: Kashif Faraz <ka...@gmail.com>
AuthorDate: Fri Apr 4 20:10:44 2025 +0530

    Fix flakiness in compaction ITs (#17877)
    
    (cherry picked from commit 11c2ad1bac211b28c4f91ef68befd906d517e3bb)
---
 .../coordinator/CoordinatorConfigManager.java      | 23 ++++++++++++++++++++++
 .../http/CoordinatorCompactionConfigsResource.java | 13 +-----------
 2 files changed, 24 insertions(+), 12 deletions(-)

diff --git a/server/src/main/java/org/apache/druid/server/coordinator/CoordinatorConfigManager.java b/server/src/main/java/org/apache/druid/server/coordinator/CoordinatorConfigManager.java
index 9313ba1ff15..5d435549bac 100644
--- a/server/src/main/java/org/apache/druid/server/coordinator/CoordinatorConfigManager.java
+++ b/server/src/main/java/org/apache/druid/server/coordinator/CoordinatorConfigManager.java
@@ -27,6 +27,7 @@ import org.apache.druid.audit.AuditEntry;
 import org.apache.druid.audit.AuditInfo;
 import org.apache.druid.audit.AuditManager;
 import org.apache.druid.common.config.ConfigManager;
+import org.apache.druid.common.config.Configs;
 import org.apache.druid.common.config.JacksonConfigManager;
 import org.apache.druid.error.DruidException;
 import org.apache.druid.error.InternalServerError;
@@ -152,6 +153,28 @@ public class CoordinatorConfigManager
     );
   }
 
+  public boolean updateCompactionTaskSlots(
+      @Nullable Double compactionTaskSlotRatio,
+      @Nullable Integer maxCompactionTaskSlots,
+      AuditInfo auditInfo
+  )
+  {
+    UnaryOperator<DruidCompactionConfig> operator = current -> {
+      final ClusterCompactionConfig currentClusterConfig = current.clusterConfig();
+      final ClusterCompactionConfig updatedClusterConfig = new ClusterCompactionConfig(
+          Configs.valueOrDefault(compactionTaskSlotRatio, currentClusterConfig.getCompactionTaskSlotRatio()),
+          Configs.valueOrDefault(maxCompactionTaskSlots, currentClusterConfig.getMaxCompactionTaskSlots()),
+          currentClusterConfig.getCompactionPolicy(),
+          currentClusterConfig.isUseSupervisors(),
+          currentClusterConfig.getEngine()
+      );
+
+      return current.withClusterConfig(updatedClusterConfig);
+    };
+
+    return updateConfigHelper(operator, auditInfo);
+  }
+
   public boolean updateClusterCompactionConfig(
       ClusterCompactionConfig config,
       AuditInfo auditInfo
diff --git a/server/src/main/java/org/apache/druid/server/http/CoordinatorCompactionConfigsResource.java b/server/src/main/java/org/apache/druid/server/http/CoordinatorCompactionConfigsResource.java
index f24aae7baa5..561670ae628 100644
--- a/server/src/main/java/org/apache/druid/server/http/CoordinatorCompactionConfigsResource.java
+++ b/server/src/main/java/org/apache/druid/server/http/CoordinatorCompactionConfigsResource.java
@@ -22,10 +22,8 @@ package org.apache.druid.server.http;
 import com.google.inject.Inject;
 import com.sun.jersey.spi.container.ResourceFilters;
 import org.apache.druid.audit.AuditInfo;
-import org.apache.druid.common.config.Configs;
 import org.apache.druid.error.InvalidInput;
 import org.apache.druid.indexer.CompactionEngine;
-import org.apache.druid.server.coordinator.ClusterCompactionConfig;
 import org.apache.druid.server.coordinator.CoordinatorConfigManager;
 import org.apache.druid.server.coordinator.DataSourceCompactionConfig;
 import org.apache.druid.server.http.security.ConfigResourceFilter;
@@ -85,18 +83,9 @@ public class CoordinatorCompactionConfigsResource
       return ServletResourceUtils.buildUpdateResponse(() -> true);
     }
 
-    final ClusterCompactionConfig currentConfig = configManager.getCurrentCompactionConfig().clusterConfig();
-    final ClusterCompactionConfig updatedClusterConfig = new ClusterCompactionConfig(
-        Configs.valueOrDefault(compactionTaskSlotRatio, currentConfig.getCompactionTaskSlotRatio()),
-        Configs.valueOrDefault(maxCompactionTaskSlots, currentConfig.getMaxCompactionTaskSlots()),
-        currentConfig.getCompactionPolicy(),
-        currentConfig.isUseSupervisors(),
-        currentConfig.getEngine()
-    );
-
     final AuditInfo auditInfo = AuthorizationUtils.buildAuditInfo(req);
     return ServletResourceUtils.buildUpdateResponse(
-        () -> configManager.updateClusterCompactionConfig(updatedClusterConfig, auditInfo)
+        () -> configManager.updateCompactionTaskSlots(compactionTaskSlotRatio, maxCompactionTaskSlots, auditInfo)
     );
   }
 


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