public class PipelineJoin<E> extends PipelineOp implements IShardwisePipelineOp<E>
IPredicate
annotation to produce an "asBound"
predicate, and then executes a nested indexed subquery against that asBound
predicate, writing out a new binding set for each element returned by the
asBound predicate which satisfies the join constraint.
Note: In order to support pipelining, query plans need to be arranged in a "left-deep" manner.
Note: In scale-out, the PipelineJoin
is generally annotated as a
BOpEvaluationContext.SHARDED
or BOpEvaluationContext.HASHED
operator and the IPredicate
is annotated for local access paths. If
you need to use remote access paths, then the PipelineJoin
should be
annotated as a BOpEvaluationContext.ANY
operator since it will be
issuing a remote read from each node on which it has source solutions to be
joined.
Modifier and Type | Class and Description |
---|---|
static interface |
PipelineJoin.Annotations |
DEFAULT_INITIAL_CAPACITY
Constructor and Description |
---|
PipelineJoin(BOp[] args,
Map<String,Object> annotations)
Shallow copy constructor.
|
PipelineJoin(BOp[] args,
NV... annotations)
Shallow copy vararg constructor.
|
PipelineJoin(PipelineJoin<E> op)
Deep copy constructor.
|
Modifier and Type | Method and Description |
---|---|
IConstraint[] |
constraints() |
FutureTask<Void> |
eval(BOpContext<IBindingSet> context)
Return a
FutureTask which computes the operator against the
evaluation context. |
int |
getMaxParallelChunks() |
IPredicate<E> |
getPredicate()
The predicate which reads or writes on the shard.
|
PipelineJoinStats |
newStats()
Return a new object which can be used to collect statistics on the
operator evaluation.
|
IVariable<?>[] |
variablesToKeep() |
assertAtOnceJavaHeapOp, assertMaxParallelOne, getChunkCapacity, getChunkOfChunksCapacity, getChunkTimeout, getMaxMemory, getMaxParallel, isAtOnceEvaluation, isBlockedEvaluation, isLastPassRequested, isPipelinedEvaluation, isReorderSolutions, isSharedState
__replaceArg, _clearProperty, _set, _setProperty, annotations, annotationsCopy, annotationsEqual, annotationsRef, argIterator, args, argsCopy, arity, clearAnnotations, clearProperty, deepCopy, deepCopy, get, getProperty, setArg, setProperty, setUnboundProperty, toArray, toArray
annotationsEqual, annotationsToString, annotationsToString, annotationValueToString, checkArgs, clone, equals, getEvaluationContext, getId, getProperty, getRequiredProperty, hashCode, indent, isController, mutation, shortenName, toShortString, toString, toString
public PipelineJoin(PipelineJoin<E> op)
op
- public PipelineJoin(BOp[] args, NV... annotations)
args
- annotations
- public IPredicate<E> getPredicate()
getPredicate
in interface IShardwisePipelineOp<E>
AccessPathJoinAnnotations.PREDICATE
public IConstraint[] constraints()
JoinAnnotations.CONSTRAINTS
public int getMaxParallelChunks()
public IVariable<?>[] variablesToKeep()
JoinAnnotations.SELECT
public PipelineJoinStats newStats()
PipelineOp
newStats
in class PipelineOp
public FutureTask<Void> eval(BOpContext<IBindingSet> context)
PipelineOp
FutureTask
which computes the operator against the
evaluation context. The caller is responsible for executing the
FutureTask
(this gives them the ability to hook the completion of
the computation).eval
in class PipelineOp
context
- The evaluation context.FutureTask
which will compute the operator's
evaluation.Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.