Class ControlledWorkerBoundJoin

All Implemented Interfaces:
AutoCloseable, Runnable, Iterator<BindingSet>, CloseableIteration<BindingSet>, ParallelExecutor<BindingSet>

@Deprecated(forRemoval=true) public class ControlledWorkerBoundJoin extends ControlledWorkerJoin
Deprecated, for removal: This API element is subject to removal in a future version.
Execute the nested loop join in an asynchronous fashion, using grouped requests, i.e. group bindings into one SPARQL request using a VALUES clause. The number of concurrent threads is controlled by a ControlledWorkerScheduler which works according to the FIFO principle and uses worker threads. This join cursor blocks until all scheduled tasks are finished, however the result iteration can be accessed from different threads to allow for pipelining.
Author:
Andreas Schwarte
  • Constructor Details Link icon

  • Method Details Link icon

    • setSubmitFirstResultImmediately Link icon

      protected void setSubmitFirstResultImmediately(boolean flag)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • handleBindings Link icon

      protected void handleBindings() throws Exception
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: JoinExecutorBase
      Implementations must implement this method to handle bindings. Use the following as a template while (!closed invalid input: '&'invalid input: '&' leftIter.hasNext()) { // your code } and add results to rightQueue. Note that addResult() is implemented synchronized and thus thread safe. In case you can guarantee sequential access, it is also possible to directly access rightQueue Note that the implementation must block until the entire join is executed.
      Overrides:
      handleBindings in class ControlledWorkerJoin
      Throws:
      Exception
    • handleClose Link icon

      public void handleClose() throws QueryEvaluationException
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from class: AbstractCloseableIteration
      Called by AbstractCloseableIteration.close() when it is called for the first time. This method is only called once on each iteration. By default, this method does nothing.
      Overrides:
      handleClose in class ControlledWorkerJoin
      Throws:
      QueryEvaluationException
    • determineTaskCreator Link icon

      protected ControlledWorkerBoundJoin.TaskCreator determineTaskCreator(TupleExpr expr, BindingSet bs)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • getNextBindJoinSize Link icon

      protected int getNextBindJoinSize(int configuredBindJoinSize, int totalBindings)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Return the size of the next bind join block.
      Parameters:
      configuredBindJoinSize - the configured bind join size
      totalBindings - the current process bindings from the intermediate result set
      Returns: