Class UnionExecutorBase<T>
java.lang.Object
org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration<E>
org.eclipse.rdf4j.common.iteration.LookAheadIteration<T>
org.eclipse.rdf4j.federated.evaluation.concurrent.ParallelExecutorBase<T>
org.eclipse.rdf4j.federated.evaluation.union.UnionExecutorBase<T>
- All Implemented Interfaces:
AutoCloseable,Runnable,Iterator<T>,CloseableIteration<T>,ParallelExecutor<T>
- Direct Known Subclasses:
WorkerUnionBase
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
-
Field Summary
Fields inherited from class org.eclipse.rdf4j.federated.evaluation.concurrent.ParallelExecutorBase
evaluationThread, executorId, finished, log, NEXT_EXECUTOR_ID, queryInfo, rightIter, rightQueue, strategy -
Constructor Summary
Constructors -
Method Summary
Methods inherited from class org.eclipse.rdf4j.federated.evaluation.concurrent.ParallelExecutorBase
addResult, checkTimeout, done, getDisplayId, getId, getNextElement, getQueryInfo, handleClose, isFinished, run, toss, toStringMethods inherited from class org.eclipse.rdf4j.common.iteration.LookAheadIteration
hasNext, next, removeMethods inherited from class org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration
close, isClosedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.rdf4j.common.iteration.CloseableIteration
streamMethods inherited from interface java.util.Iterator
forEachRemaining
-
Constructor Details
-
UnionExecutorBase
-
-
Method Details
-
performExecution
Description copied from class:ParallelExecutorBasePerform the parallel execution.Note that this method must block until the execution is completed.
- Specified by:
performExecutionin classParallelExecutorBase<T>- Throws:
Exception
-
union
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
- Overrides:
getExecutorTypein classParallelExecutorBase<T>- Returns:
- the executor type, e.g. "Join". Default "Executor"
-