Class ExecOpBindJoinBRTPF
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.UnaryExecutableOpBaseWithBatching
se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOpBindJoinWithRequestOps<TriplePattern,BRTPFServer>
se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.ExecOpBindJoinBRTPF
- All Implemented Interfaces:
StatsProvider
,ExecutableOperator
,UnaryExecutableOp
public class ExecOpBindJoinBRTPF
extends BaseForExecOpBindJoinWithRequestOps<TriplePattern,BRTPFServer>
Implementation of (a batching version of) the 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.
-
Nested Class Summary
Nested classes/interfaces inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOpBindJoinWithRequestOps
BaseForExecOpBindJoinWithRequestOps.MyIntermediateResultElementSink, BaseForExecOpBindJoinWithRequestOps.MyIntermediateResultElementSinkOuterJoin
-
Field Summary
FieldsFields inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOpBindJoinWithRequestOps
fm, minimumRequestBlockSize, numberOfRequestOpsUsed, query, requestBlockSize, requestBlockSizeWasReduced, statsOfFirstReqOp, statsOfLastReqOp, useOuterJoinSemantics, varsInPatternForFM
Fields inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.UnaryExecutableOpBaseWithBatching
batchSize, collectedInputSolMaps
Fields inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOps
collectExceptions
-
Constructor Summary
ConstructorsConstructorDescriptionExecOpBindJoinBRTPF
(TriplePattern tp, BRTPFServer fm, boolean useOuterJoinSemantics, boolean collectExceptions) ExecOpBindJoinBRTPF
(TriplePattern tp, BRTPFServer fm, boolean useOuterJoinSemantics, int batchSize, boolean collectExceptions) -
Method Summary
Modifier and TypeMethodDescriptionprotected NullaryExecutableOp
createExecutableReqOp
(Iterable<SolutionMapping> inputSolMaps) 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.static Set
<SolutionMapping> restrictSolMaps
(Iterable<SolutionMapping> inputSolMaps, Set<org.apache.jena.sparql.core.Var> joinVars) Returns null if at least one of the solution mappings that would otherwise be added to the returned set of solution mappings is the empty solution mapping (in which case this operator better uses a TPF request rather than a brTPF request).Methods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOpBindJoinWithRequestOps
_concludeExecution, _processBatch, _processJoinableInput, _processWithoutSplittingInputFirst, createStats, extractUnjoinableInputSMs, reduceRequestBlockSize, resetStats
Methods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.UnaryExecutableOpBaseWithBatching
_concludeExecution, _process
Methods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.UnaryExecutableOpBase
_process, concludeExecution, getStats, process, process
Methods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOps
getExceptionsCaughtDuringExecution, recordExceptionCaughtDuringExecution
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface se.liu.ida.hefquin.engine.queryplan.executable.ExecutableOperator
getExceptionsCaughtDuringExecution
-
Field Details
-
DEFAULT_BATCH_SIZE
public static final int DEFAULT_BATCH_SIZE- See Also:
-
-
Constructor Details
-
ExecOpBindJoinBRTPF
public ExecOpBindJoinBRTPF(TriplePattern tp, BRTPFServer fm, boolean useOuterJoinSemantics, int batchSize, boolean collectExceptions) -
ExecOpBindJoinBRTPF
public ExecOpBindJoinBRTPF(TriplePattern tp, BRTPFServer fm, boolean useOuterJoinSemantics, boolean collectExceptions)
-
-
Method Details
-
createExecutableReqOp
Description copied from class:BaseForExecOpBindJoinWithRequestOps
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. The operator created by this function should throws exceptions instead of collecting them.- Specified by:
createExecutableReqOp
in classBaseForExecOpBindJoinWithRequestOps<TriplePattern,
BRTPFServer>
-
restrictSolMaps
public static Set<SolutionMapping> restrictSolMaps(Iterable<SolutionMapping> inputSolMaps, Set<org.apache.jena.sparql.core.Var> joinVars) Returns null if at least one of the solution mappings that would otherwise be added to the returned set of solution mappings is the empty solution mapping (in which case this operator better uses a TPF request rather than a brTPF request).
-