public abstract class HashJoinOp<E> extends PipelineOp implements IShardwisePipelineOp<E>
IAccessPath
. The source solutions from the pipeline are buffered on a
hash index. Depending on the implementation, the hash index may have a
threshold that will trigger an evaluation pass of the hash join. If not, then
the hash join will run exactly once. When the hash join runs, the access path
is scanned and the hash index (of intermediate solutions from the pipeline)
is probed for each solution read from the IAccessPath
. Solutions
which join are output.Modifier and Type | Class and Description |
---|---|
static interface |
HashJoinOp.Annotations |
DEFAULT_INITIAL_CAPACITY
Constructor and Description |
---|
HashJoinOp(BOp[] args,
Map<String,Object> annotations) |
HashJoinOp(BOp[] args,
NV... annotations) |
HashJoinOp(HashJoinOp<E> op) |
Modifier and Type | Method and Description |
---|---|
FutureTask<Void> |
eval(BOpContext<IBindingSet> context)
Return a
FutureTask which computes the operator against the
evaluation context. |
IPredicate<E> |
getPredicate()
The predicate which reads or writes on the shard.
|
protected boolean |
isOptional()
Return
true iff the predicate associated with the join is
optional. |
protected abstract IHashJoinUtility |
newState(BOpContext<IBindingSet> context,
INamedSolutionSetRef namedSetRef,
JoinTypeEnum joinType)
Return the instance of the
IHashJoinUtility to be used by this
operator. |
BaseJoinStats |
newStats()
Return a new object which can be used to collect statistics on the
operator evaluation.
|
protected abstract boolean |
runHashJoin(BOpContext<?> context,
IHashJoinUtility state)
Return
true if ChunkTask#doHashJoin() should be
executed in a given operator ChunkTask invocation. |
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 HashJoinOp(HashJoinOp<E> op)
op
- public IPredicate<E> getPredicate()
getPredicate
in interface IShardwisePipelineOp<E>
AccessPathJoinAnnotations.PREDICATE
protected boolean isOptional()
true
iff the predicate associated with the join is
optional.IPredicate.Annotations#OPTIONAL
public BaseJoinStats newStats()
PipelineOp
newStats
in class PipelineOp
protected abstract IHashJoinUtility newState(BOpContext<IBindingSet> context, INamedSolutionSetRef namedSetRef, JoinTypeEnum joinType)
IHashJoinUtility
to be used by this
operator. This method is invoked once, the first time this operator is
evaluated. The returned IHashJoinUtility
reference is attached to
the IQueryAttributes
and accessed there on subsequent evaluation
passes for this operator.context
- The BOpEvaluationContext
namedSetRef
- Metadata to identify the named solution set.joinType
- The type of join.protected abstract boolean runHashJoin(BOpContext<?> context, IHashJoinUtility state)
true
if ChunkTask#doHashJoin()
should be
executed in a given operator ChunkTask
invocation.context
- The operator evaluation context.state
- The IHashJoinUtility
instance.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.