Class ExecOpSequentialBindJoinBRTPF
java.lang.Object
se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOps
se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.UnaryExecutableOpBase
se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOpSequentialBindJoin<TriplePattern,BRTPFServer>
se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.ExecOpSequentialBindJoinBRTPF
- All Implemented Interfaces:
StatsProvider,ExecutableOperator,UnaryExecutableOp
public class ExecOpSequentialBindJoinBRTPF
extends BaseForExecOpSequentialBindJoin<TriplePattern,BRTPFServer>
Implementation of the sequential, batch-based bind-join algorithm
for cases in which the federation member accessed by the algorithm
supports the brTPF interface.
For every batch of solution mappings from the input, the algorithm of
this operator sends a brTPF request to the federation member; this request
consists of the given triple pattern and the solutions of the current
input batch (in fact, the algorithm may also decide to split the input
batch into smaller batches for multiple requests).
The response to such a request are all triples that i) match the triple
pattern and ii) are compatible with at least one of the solutions that
were attached to the request.
After receiving such a response, the algorithm creates solution mappings
from the received triples, joins these solution mappings locally with the
solutions in the batch used for making the request, and then outputs the
resulting joined solutions (if any).
Thereafter, the algorithm moves on to the next batch of solutions from
the input.
For more details about the actual implementation of the algorithm, and its
extra capabilities, refer to
BaseForExecOpSequentialBindJoin.-
Nested Class Summary
Nested classes/interfaces inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOpSequentialBindJoin
BaseForExecOpSequentialBindJoin.MyIntermediateResultElementSink, BaseForExecOpSequentialBindJoin.MyIntermediateResultElementSinkOuterJoin -
Field Summary
Fields inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOpSequentialBindJoin
allJoinVarsAreCertain, currentBatch, currentSolMapsForRequest, DEFAULT_BATCH_SIZE, fm, fullResult, minimumRequestBlockSize, numberOfRequestOpsUsed, numOfSolMapsRetrievedPerReqOp, query, requestBlockSize, requestBlockSizeWasReduced, statsOfFirstReqOp, statsOfLastReqOp, useOuterJoinSemantics, varsInQueryFields inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOps
collectExceptions, qpInfo -
Constructor Summary
ConstructorsConstructorDescriptionExecOpSequentialBindJoinBRTPF(TriplePattern tp, BRTPFServer fm, ExpectedVariables inputVars, boolean useOuterJoinSemantics, int batchSize, boolean collectExceptions, QueryPlanningInfo qpInfo) -
Method Summary
Modifier and TypeMethodDescriptionprotected NullaryExecutableOpcreateExecutableReqOp(Set<org.apache.jena.sparql.engine.binding.Binding> solMaps) Implementations of this function should create an executable operator that can perform a bind join request in which the query of this bind join operator is combined with the given solution mappings.protected NullaryExecutableOpImplementations of this function should create an executable operator that can perform a request to retrieve all solution mappings for the query of this operator (i.e., not a bind-join request).Methods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOpSequentialBindJoin
_concludeExecution, _process, _processJoinableInput, alreadyCovered, areAllJoinVarsAreCertain, consumeMySink, createMySink, createStats, joinInFullRetrievalMode, joinInFullRetrievalMode, performRequestAndHandleResponse, reduceRequestBlockSize, resetStats, switchToFullRetrievalModeMethods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.UnaryExecutableOpBase
_process, concludeExecution, getStats, process, processMethods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOps
getExceptionsCaughtDuringExecution, getQueryPlanningInfo, recordExceptionCaughtDuringExecutionMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface se.liu.ida.hefquin.engine.queryplan.executable.ExecutableOperator
getExceptionsCaughtDuringExecution, getQueryPlanningInfo
-
Constructor Details
-
ExecOpSequentialBindJoinBRTPF
public ExecOpSequentialBindJoinBRTPF(TriplePattern tp, BRTPFServer fm, ExpectedVariables inputVars, boolean useOuterJoinSemantics, int batchSize, boolean collectExceptions, QueryPlanningInfo qpInfo) - Parameters:
tp- - the triple pattern to be evaluated (in a bind-join manner) at the federation member given as 'fm'fm- - the federation member targeted by this operatorinputVars- - the variables to be expected in the solution mappings that will be pushed as input to this operatoruseOuterJoinSemantics- -trueif the 'query' is to be evaluated under outer-join semantics;falsefor inner-join semanticsbatchSize- - the number of solution mappings to be included in each bind-join request; this value must not be smaller thanBaseForExecOpSequentialBindJoin.minimumRequestBlockSizecollectExceptions- -trueif this operator has to collect exceptions (which is handled entirely by one of the super classes);falseif the operator should immediately throw everyExecOpExecutionExceptionqpInfo- - theQueryPlanningInfoobject that was populated for a physical plan whose root operator was the physical operator for which this executable operator was created
-
-
Method Details
-
createExecutableReqOp
protected NullaryExecutableOp createExecutableReqOp(Set<org.apache.jena.sparql.engine.binding.Binding> solMaps) Description copied from class:BaseForExecOpSequentialBindJoinImplementations of this function should create an executable operator that can perform a bind join request in which the query of this bind join operator is combined with the given solution mappings. Implementations can assume that the given solution mappings are already restricted to contain bindings only for the join variables, that none of the given solution mappings contains blank nodes, that none of the given solution mappings is the empty solution mapping, and that the given set of solution mappings is duplicate free and nonempty. The operator created by this function should throw exceptions instead of collecting them.- Specified by:
createExecutableReqOpin classBaseForExecOpSequentialBindJoin<TriplePattern,BRTPFServer>
-
createExecutableReqOpForAll
Description copied from class:BaseForExecOpSequentialBindJoinImplementations of this function should create an executable operator that can perform a request to retrieve all solution mappings for the query of this operator (i.e., not a bind-join request). The operator created by this function should throws exceptions instead of collecting them.- Specified by:
createExecutableReqOpForAllin classBaseForExecOpSequentialBindJoin<TriplePattern,BRTPFServer>
-