Class ParallelMergeCombiningSequence<T>

  • All Implemented Interfaces:
    Sequence<T>

    public class ParallelMergeCombiningSequence<T>
    extends YieldingSequenceBase<T>
    Artisanal, locally-sourced, hand-crafted, gluten and GMO free, bespoke, free-range, organic, small-batch parallel merge combining sequence. See proposal: https://github.com/apache/druid/issues/8577 Functionally equivalent to wrapping CombiningSequence around a MergeSequence, but done in parallel on a ForkJoinPool running in 'async' mode.
    • Field Detail

      • DEFAULT_TASK_TARGET_RUN_TIME_MILLIS

        public static final int DEFAULT_TASK_TARGET_RUN_TIME_MILLIS
        See Also:
        Constant Field Values
      • DEFAULT_TASK_INITIAL_YIELD_NUM_ROWS

        public static final int DEFAULT_TASK_INITIAL_YIELD_NUM_ROWS
        See Also:
        Constant Field Values
      • DEFAULT_TASK_SMALL_BATCH_NUM_ROWS

        public static final int DEFAULT_TASK_SMALL_BATCH_NUM_ROWS
        See Also:
        Constant Field Values
    • Method Detail

      • toYielder

        public <OutType> Yielder<OutType> toYielder​(OutType initValue,
                                                    YieldingAccumulator<OutType,​T> accumulator)
        Description copied from interface: Sequence
        Return a Yielder for accumulated sequence.
        Type Parameters:
        OutType - the type of accumulated value.
        Parameters:
        initValue - the initial value to pass along to start the accumulation.
        accumulator - the accumulator which is responsible for accumulating input values.
        Returns:
        a Yielder for accumulated sequence.
        See Also:
        Yielder
      • getCancellationGizmo

        public org.apache.druid.java.util.common.guava.ParallelMergeCombiningSequence.CancellationGizmo getCancellationGizmo()