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 <[email protected]> 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: [email protected] For additional commands, e-mail: [email protected]
