From b704ebfa37b05af2da7485da1fda4d0c4ee43bf2 Mon Sep 17 00:00:00 2001 From: Mingming Qiu Date: Fri, 18 Jan 2019 01:26:33 +0800 Subject: [PATCH] Let cachingCost balancer strategy only consider segment replicatable nodes (#6879) --- .../CachingCostBalancerStrategyFactory.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/org/apache/druid/server/coordinator/CachingCostBalancerStrategyFactory.java b/server/src/main/java/org/apache/druid/server/coordinator/CachingCostBalancerStrategyFactory.java index a6261db080b..410a24d99e8 100644 --- a/server/src/main/java/org/apache/druid/server/coordinator/CachingCostBalancerStrategyFactory.java +++ b/server/src/main/java/org/apache/druid/server/coordinator/CachingCostBalancerStrategyFactory.java @@ -71,14 +71,18 @@ public class CachingCostBalancerStrategyFactory implements BalancerStrategyFacto @Override public ServerView.CallbackAction segmentAdded(DruidServerMetadata server, DataSegment segment) { - clusterCostCacheBuilder.addSegment(server.getName(), segment); + if (server.segmentReplicatable()) { + clusterCostCacheBuilder.addSegment(server.getName(), segment); + } return ServerView.CallbackAction.CONTINUE; } @Override public ServerView.CallbackAction segmentRemoved(DruidServerMetadata server, DataSegment segment) { - clusterCostCacheBuilder.removeSegment(server.getName(), segment); + if (server.segmentReplicatable()) { + clusterCostCacheBuilder.removeSegment(server.getName(), segment); + } return ServerView.CallbackAction.CONTINUE; } @@ -94,7 +98,9 @@ public class CachingCostBalancerStrategyFactory implements BalancerStrategyFacto serverInventoryView.registerServerRemovedCallback( executor, server -> { - clusterCostCacheBuilder.removeServer(server.getName()); + if (server.segmentReplicatable()) { + clusterCostCacheBuilder.removeServer(server.getName()); + } return ServerView.CallbackAction.CONTINUE; } );