Class UnionExecutorBase<T>
java.lang.Object
org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration<T>
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
-
Method Summary
Methods inherited from class org.eclipse.rdf4j.federated.evaluation.concurrent.ParallelExecutorBase
addResult, checkTimeout, done, getDisplayId, getId, getNextElement, getQueryInfo, handleClose, isFinished, run, toss, toString
Methods inherited from class org.eclipse.rdf4j.common.iteration.LookAheadIteration
hasNext, next, remove
Methods inherited from class org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration
close, isClosed
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.eclipse.rdf4j.common.iteration.CloseableIteration
stream
Methods inherited from interface java.util.Iterator
forEachRemaining
-
Constructor Details
-
UnionExecutorBase
-
-
Method Details
-
performExecution
Description copied from class:ParallelExecutorBase
Perform the parallel execution.Note that this method must block until the execution is completed.
- Specified by:
performExecution
in 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:
getExecutorType
in classParallelExecutorBase<T>
- Returns:
- the executor type, e.g. "Join". Default "Executor"
-