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.BaseForExecOpBindJoin<QueryType,MemberType>
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
Fields inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOpBindJoinWithRequestOps
minimumRequestBlockSize, numberOfRequestOpsUsed, requestBlockSize, requestBlockSizeWasReduced, statsOfFirstReqOp, statsOfLastReqOp, useOuterJoinSemantics, varsInPatternForFMFields inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOpBindJoin
defaultPreferredInputBlockSize, fm, queryFields inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.UnaryExecutableOpBase
timeAtCurrentProcStartFields 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) -
Method Summary
Modifier and TypeMethodDescriptionprotected NullaryExecutableOpcreateExecutableRequestOperator(Iterable<SolutionMapping> inputSolMaps) The returned operator should be created such that it throws exceptions instead of collecting them.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
_process, _process, _processWithoutSplittingInputFirst, createStats, extractUnjoinableInputSMs, reduceRequestBlockSize, resetStatsMethods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOpBindJoin
_concludeExecution, preferredInputBlockSizeMethods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.UnaryExecutableOpBase
concludeExecution, getStats, processMethods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOps
getExceptionsCaughtDuringExecution, 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
-
Constructor Details
-
ExecOpBindJoinBRTPF
public ExecOpBindJoinBRTPF(TriplePattern tp, BRTPFServer fm, boolean useOuterJoinSemantics, boolean collectExceptions)
-
-
Method Details
-
createExecutableRequestOperator
protected NullaryExecutableOp createExecutableRequestOperator(Iterable<SolutionMapping> inputSolMaps) Description copied from class:BaseForExecOpBindJoinWithRequestOpsThe returned operator should be created such that it throws exceptions instead of collecting them.- Specified by:
createExecutableRequestOperatorin 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).
-