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