Class SynchronousWorkerUnion<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>
org.eclipse.rdf4j.federated.evaluation.union.WorkerUnionBase<T>
org.eclipse.rdf4j.federated.evaluation.union.SynchronousWorkerUnion<T>
- All Implemented Interfaces:
AutoCloseable, Runnable, Iterator<T>, CloseableIteration<T>, ParallelExecutor<T>
Synchronous execution of union tasks, i.e. one after the other. The union result is contained in this iteration. Note
that the union operation is to be executed with the
ParallelExecutorBase.run() method- Author:
- Andreas Schwarte
-
Field Summary
Fields inherited from class WorkerUnionBase
tasksFields inherited from class ParallelExecutorBase
evaluationThread, executorId, finished, log, NEXT_EXECUTOR_ID, queryInfo, rightIter, rightQueue, strategyModifier and TypeFieldDescriptionprotected Threadprotected final longprotected booleanprotected static final org.slf4j.Loggerprotected static final AtomicLongprotected final QueryInfoprotected CloseableIteration<T> protected FedXQueueCursor<T> protected final FederationEvalStrategyFields inherited from interface CloseableIteration
EMPTY_STATEMENT_ITERATION -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidunion()Note: this method must block until the union is executed completely.Methods inherited from class WorkerUnionBase
addTask, handleCloseModifier and TypeMethodDescriptionvoidaddTask(ParallelTask<T> task) Add a generic parallel task.voidCalled byAbstractCloseableIteration.close()when it is called for the first time.Methods inherited from class UnionExecutorBase
getExecutorType, performExecutionModifier and TypeMethodDescriptionprotected Stringprotected final voidPerform the parallel execution.Methods inherited from class ParallelExecutorBase
addResult, checkTimeout, done, getDisplayId, getId, getNextElement, getQueryInfo, isFinished, run, toss, toStringModifier and TypeMethodDescriptionvoidaddResult(CloseableIteration<T> res) Handle the result appropriately, e.g. add it to the result iteration.protected voidChecks whether the query execution has run into a timeout.voiddone()Inform the controlling instance that some job is done from a different thread.protected StringgetId()Gets the next element.Return the query info of the associated querybooleanReturn true if this executor is finished or abortedfinal voidrun()voidToss some exception to the controlling instancetoString()Methods inherited from class LookAheadIteration
hasNext, next, removeModifier and TypeMethodDescriptionfinal booleanhasNext()final Tnext()voidremove()Throws anUnsupportedOperationException.Methods inherited from class AbstractCloseableIteration
close, isClosedModifier and TypeMethodDescriptionfinal voidclose()CallsAbstractCloseableIteration.handleClose()upon first call and makes sure the resource closures are only executed once.final booleanisClosed()Checks whether this CloseableIteration has been closed.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface CloseableIteration
streamMethods inherited from interface Iterator
forEachRemaining
-
Constructor Details
-
SynchronousWorkerUnion
-
-
Method Details
-
union
Description copied from class:UnionExecutorBaseNote: 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.- Specified by:
unionin classUnionExecutorBase<T>- Throws:
Exception
-