Don't convert DruidServer to ImmutableDruidServers multiple times in CoordinatorHistoricalManagerRunnable (#6385)

This commit is contained in:
Roman Leventov 2018-09-26 19:14:14 +03:00 committed by Slim Bouguerra
parent a92a20e037
commit 8978d3751b

View File

@ -29,6 +29,10 @@ import com.google.common.collect.Sets;
import com.google.common.util.concurrent.ListeningExecutorService; import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.common.util.concurrent.MoreExecutors; import com.google.common.util.concurrent.MoreExecutors;
import com.google.inject.Inject; import com.google.inject.Inject;
import it.unimi.dsi.fastutil.objects.Object2LongMap;
import it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.utils.ZKPaths;
import org.apache.druid.client.DruidDataSource; import org.apache.druid.client.DruidDataSource;
import org.apache.druid.client.DruidServer; import org.apache.druid.client.DruidServer;
import org.apache.druid.client.ImmutableDruidDataSource; import org.apache.druid.client.ImmutableDruidDataSource;
@ -50,7 +54,6 @@ import org.apache.druid.java.util.common.concurrent.Execs;
import org.apache.druid.java.util.common.concurrent.ScheduledExecutorFactory; import org.apache.druid.java.util.common.concurrent.ScheduledExecutorFactory;
import org.apache.druid.java.util.common.concurrent.ScheduledExecutors; import org.apache.druid.java.util.common.concurrent.ScheduledExecutors;
import org.apache.druid.java.util.common.guava.Comparators; import org.apache.druid.java.util.common.guava.Comparators;
import org.apache.druid.java.util.common.guava.FunctionalIterable;
import org.apache.druid.java.util.common.lifecycle.LifecycleStart; import org.apache.druid.java.util.common.lifecycle.LifecycleStart;
import org.apache.druid.java.util.common.lifecycle.LifecycleStop; import org.apache.druid.java.util.common.lifecycle.LifecycleStop;
import org.apache.druid.java.util.emitter.EmittingLogger; import org.apache.druid.java.util.emitter.EmittingLogger;
@ -71,10 +74,6 @@ import org.apache.druid.server.coordinator.rules.Rule;
import org.apache.druid.server.initialization.ZkPathsConfig; import org.apache.druid.server.initialization.ZkPathsConfig;
import org.apache.druid.server.lookup.cache.LookupCoordinatorManager; import org.apache.druid.server.lookup.cache.LookupCoordinatorManager;
import org.apache.druid.timeline.DataSegment; import org.apache.druid.timeline.DataSegment;
import it.unimi.dsi.fastutil.objects.Object2LongMap;
import it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.utils.ZKPaths;
import org.joda.time.DateTime; import org.joda.time.DateTime;
import org.joda.time.Duration; import org.joda.time.Duration;
import org.joda.time.Interval; import org.joda.time.Interval;
@ -697,13 +696,15 @@ public class DruidCoordinator
ImmutableList.of( ImmutableList.of(
new DruidCoordinatorSegmentInfoLoader(DruidCoordinator.this), new DruidCoordinatorSegmentInfoLoader(DruidCoordinator.this),
params -> { params -> {
// Display info about all historical servers List<ImmutableDruidServer> servers = serverInventoryView
Iterable<ImmutableDruidServer> servers = FunctionalIterable .getInventory()
.create(serverInventoryView.getInventory()) .stream()
.filter(DruidServer::segmentReplicatable) .filter(DruidServer::segmentReplicatable)
.transform(DruidServer::toImmutableDruidServer); .map(DruidServer::toImmutableDruidServer)
.collect(Collectors.toList());
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
// Display info about all historical servers
log.debug("Servers"); log.debug("Servers");
for (ImmutableDruidServer druidServer : servers) { for (ImmutableDruidServer druidServer : servers) {
log.debug(" %s", druidServer); log.debug(" %s", druidServer);