Class UnionExecutorBase<T>
- java.lang.Object
-
- org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration<E,X>
-
- org.eclipse.rdf4j.common.iteration.LookAheadIteration<T,QueryEvaluationException>
-
- org.eclipse.rdf4j.federated.evaluation.concurrent.ParallelExecutorBase<T>
-
- org.eclipse.rdf4j.federated.evaluation.union.UnionExecutorBase<T>
-
- All Implemented Interfaces:
AutoCloseable,Runnable,CloseableIteration<T,QueryEvaluationException>,Iteration<T,QueryEvaluationException>,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 extendsLookAheadIterationand 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 Constructor Description UnionExecutorBase(QueryInfo queryInfo)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected StringgetExecutorType()protected voidperformExecution()Perform the parallel execution.protected abstract voidunion()Note: this method must block until the union is executed completely.-
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
-
-
-
-
Constructor Detail
-
UnionExecutorBase
public UnionExecutorBase(QueryInfo queryInfo)
-
-
Method Detail
-
performExecution
protected final void performExecution() throws ExceptionDescription 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
protected abstract void union() throws ExceptionNote: 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:
getExecutorTypein classParallelExecutorBase<T>- Returns:
- the executor type, e.g. "Join". Default "Executor"
-
-