Class ParallelMergeCombiningSequence<T>

java.lang.Object
org.apache.druid.java.util.common.guava.YieldingSequenceBase<T>
org.apache.druid.java.util.common.guava.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 Details

    • DEFAULT_TASK_TARGET_RUN_TIME_MILLIS

      public static final int DEFAULT_TASK_TARGET_RUN_TIME_MILLIS
      See Also:
    • DEFAULT_TASK_INITIAL_YIELD_NUM_ROWS

      public static final int DEFAULT_TASK_INITIAL_YIELD_NUM_ROWS
      See Also:
    • DEFAULT_TASK_SMALL_BATCH_NUM_ROWS

      public static final int DEFAULT_TASK_SMALL_BATCH_NUM_ROWS
      See Also:
  • Constructor Details

  • Method Details

    • 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:
    • getCancellationFuture

      public ParallelMergeCombiningSequence.CancellationFuture getCancellationFuture()