Class ReservoirSegmentSampler

java.lang.Object
org.apache.druid.server.coordinator.balancer.ReservoirSegmentSampler

public final class ReservoirSegmentSampler extends Object
  • Method Details

    • pickMovableSegmentsFrom

      public static List<BalancerSegmentHolder> pickMovableSegmentsFrom(List<ServerHolder> serverHolders, int maxSegmentsToPick, Function<ServerHolder,Collection<DataSegment>> segmentProvider, Set<String> broadcastDatasources)
      Picks segments from the given set of servers that can be moved to other servers for balancing.
      Parameters:
      serverHolders - Set of historicals to consider for picking segments
      maxSegmentsToPick - Maximum number of segments to pick
      segmentProvider - Function to extract all movable segments from a ServerHolder.
      broadcastDatasources - Segments belonging to these datasources will not be picked for balancing, since they should be loaded on all servers anyway.
      Returns:
      Iterator over BalancerSegmentHolders, each of which contains a segment picked for moving and the server from which it was picked.