From ac5034e2414ab038984fc0cdb24999a2f9babd5d Mon Sep 17 00:00:00 2001 From: Niketh Sabbineni Date: Fri, 23 Feb 2018 13:17:31 -0800 Subject: [PATCH] Improve cache cost to handle heterogenous historicals (#5416) --- .../server/coordinator/CachingCostBalancerStrategy.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/io/druid/server/coordinator/CachingCostBalancerStrategy.java b/server/src/main/java/io/druid/server/coordinator/CachingCostBalancerStrategy.java index b9b9adb5d38..3050566ca2e 100644 --- a/server/src/main/java/io/druid/server/coordinator/CachingCostBalancerStrategy.java +++ b/server/src/main/java/io/druid/server/coordinator/CachingCostBalancerStrategy.java @@ -61,7 +61,11 @@ public class CachingCostBalancerStrategy extends CostBalancerStrategy // add segments that will be loaded to the cost cost += costCacheForLoadingSegments(server).computeCost(serverName, proposalSegment); - return cost; + if (server.getAvailableSize() <= 0) { + return Double.POSITIVE_INFINITY; + } + + return cost * (server.getMaxSize() / server.getAvailableSize()); } private ClusterCostCache costCacheForLoadingSegments(ServerHolder server)