public class JVMHashJoinOp<E> extends HashJoinOp<E> implements ISingleThreadedOp
IAccessPathbased on the Java collections classes. Source solutions are buffered on the Java collection on each evaluation pass. Once ALL source solutions have been buffered, the hash join will run a single pass over the
IAccessPathfor the target
IPredicate. For some queries, this can be more efficient than probing as-bound instances of the target
IPredicateusing a nested indexed join, such as
PipelineJoin. This can also be more efficient on a cluster where the key range scan of the target
IPredicatewill be performed using predominately sequential IO.
The source solutions presented to a hash join MUST have bindings for the
HashJoinAnnotations.JOIN_VARS in order to join (they can still
succeed as optionals if the join variables are not bound).
|Modifier and Type||Class and Description|
|Constructor and Description|
|Modifier and Type||Method and Description|
Return the instance of the
eval, getPredicate, isOptional, newStats
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
protected IHashJoinUtility newState(BOpContext<IBindingSet> context, INamedSolutionSetRef namedSetRef, JoinTypeEnum joinType)
IHashJoinUtilityto be used by this operator. This method is invoked once, the first time this operator is evaluated. The returned
IHashJoinUtilityreference is attached to the
IQueryAttributesand accessed there on subsequent evaluation passes for this operator.
protected boolean runHashJoin(BOpContext<?> context, IHashJoinUtility state)
ChunkTask#doHashJoin()should be executed in a given operator
JVMHashJoinOp executes the hash join for each chunk of
intermediate solutions (it is not an "at-once" operator).
Note: Because this is an at-once operator, the solutions are all buffered on the query engine and this operator is invoked exactly once.
HTreeHashJoinOp, the concept of a LAST PASS evaluation
does not enter in to the evaluation of this operator. However, by
publishing the [state] on the query attribute we do gain visibility into
the dynamics of the hash join while it is executing against the B+Tree
Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.