Class 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.
  • 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 operator
      inputVars - - the variables to be expected in the solution mappings that will be pushed as input to this operator
      useOuterJoinSemantics - - true if the 'query' is to be evaluated under outer-join semantics; false for inner-join semantics
      batchSize - - the number of solution mappings to be included in each bind-join request; this value must not be smaller than BaseForExecOpSequentialBindJoin.minimumRequestBlockSize
      collectExceptions - - true if this operator has to collect exceptions (which is handled entirely by one of the super classes); false if the operator should immediately throw every ExecOpExecutionException
      qpInfo - - the QueryPlanningInfo object 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: BaseForExecOpSequentialBindJoin
      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. 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:
      createExecutableReqOp in class BaseForExecOpSequentialBindJoin<TriplePattern,BRTPFServer>
    • createExecutableReqOpForAll

      protected NullaryExecutableOp createExecutableReqOpForAll()
      Description copied from class: BaseForExecOpSequentialBindJoin
      Implementations 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:
      createExecutableReqOpForAll in class BaseForExecOpSequentialBindJoin<TriplePattern,BRTPFServer>