Class UnionExecutorBase<T>

All Implemented Interfaces:
AutoCloseable, Runnable, Iterator<T>, CloseableIteration<T>, ParallelExecutor<T>
Direct Known Subclasses:
WorkerUnionBase

public abstract class UnionExecutorBase<T> extends ParallelExecutorBase<T>
Base class for any parallel union executor. Note that this class extends LookAheadIteration and thus any implementation of this class is applicable for pipelining when used in a different thread (access to shared variables is synchronized).
Author:
Andreas Schwarte
  • Constructor Details

    • UnionExecutorBase

      public UnionExecutorBase(QueryInfo queryInfo)
  • Method Details

    • performExecution

      protected final void performExecution() throws Exception
      Description copied from class: ParallelExecutorBase
      Perform the parallel execution.

      Note that this method must block until the execution is completed.

      Specified by:
      performExecution in class ParallelExecutorBase<T>
      Throws:
      Exception
    • union

      protected abstract void union() throws Exception
      Note: this method must block until the union is executed completely. Otherwise the result queue is marked as committed while this isn't the case. The blocking behavior in general is no problem: If you need concurrent access to the result (i.e. pipelining) just run the union in a separate thread. Access to the result iteration is synchronized.
      Throws:
      Exception
    • getExecutorType

      protected String getExecutorType()
      Overrides:
      getExecutorType in class ParallelExecutorBase<T>
      Returns:
      the executor type, e.g. "Join". Default "Executor"