Let cachingCost balancer strategy only consider segment replicatable nodes (#6879)

This commit is contained in:
Mingming Qiu 2019-01-18 01:26:33 +08:00 committed by Gian Merlino
parent f6dcd63084
commit b704ebfa37

View File

@ -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;
}
);