Class ReservoirSegmentSampler


  • public final class ReservoirSegmentSampler
    extends Object
    • Method Detail

      • pickMovableSegmentsFrom

        public static List<BalancerSegmentHolder> pickMovableSegmentsFrom​(List<ServerHolder> serverHolders,
                                                                          int maxSegmentsToPick,
                                                                          Function<ServerHolder,​Collection<org.apache.druid.timeline.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.