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

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


The following commit(s) were added to refs/heads/master by this push:
     new 11c2ad1bac2 Fix flakiness in compaction ITs (#17877)
11c2ad1bac2 is described below

commit 11c2ad1bac211b28c4f91ef68befd906d517e3bb
Author: Kashif Faraz <[email protected]>
AuthorDate: Fri Apr 4 20:10:44 2025 +0530

    Fix flakiness in compaction ITs (#17877)
---
 .../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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to