Class ExecOpParallelMultiwayLeftJoin
java.lang.Object
se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOps
se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.UnaryExecutableOpBase
se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForUnaryExecOpWithCollectedInput
se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.ExecOpParallelMultiwayLeftJoin
- All Implemented Interfaces:
StatsProvider,ExecutableOperator,UnaryExecutableOp
TODO: Provide a description of the algorithm implemented by this class.
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intprotected final List<SolutionMappingsIndex> protected final ExpectedVariablesprotected final List<org.apache.jena.sparql.core.Var> protected final List<LogicalOpRequest<?, ?>> Fields inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForUnaryExecOpWithCollectedInput
collectedInputSolMaps, minimumCollectionSizeFields inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOps
collectExceptions, qpInfo -
Constructor Summary
ConstructorsConstructorDescriptionExecOpParallelMultiwayLeftJoin(boolean collectExceptions, QueryPlanningInfo qpInfo, ExpectedVariables inputVarsFromNonOptionalPart, List<LogicalOpRequest<?, ?>> optionalParts) ExecOpParallelMultiwayLeftJoin(boolean collectExceptions, QueryPlanningInfo qpInfo, ExpectedVariables inputVarsFromNonOptionalPart, LogicalOpRequest<?, ?>... optionalParts) -
Method Summary
Modifier and TypeMethodDescriptionprotected void_concludeExecution(List<SolutionMapping> batch, IntermediateResultElementSink sink, ExecutionContext execCxt) Implementations of this function need to process the given solution mappings as last input, conclude the execution of this operator, and send the remaining result elements (if any) to the given sink.protected void_processCollectedInput(List<SolutionMapping> input, IntermediateResultElementSink sink, ExecutionContext execCxt) Implementations of this function need to process the given solution mappings as input and send the produced result elements (if any) to the given sink.protected List<SolutionMapping> Preprocess the given list of solution mappings to identify the input solution mappings that do not need to be considered during the parallel phase of the algorithm (because they have bindings for the join variables such that there already was an earlier input solution mapping with the same bindings).protected Set<SolutionMapping> merge(SolutionMapping inputSol) protected voidmergePhase(Iterable<SolutionMapping> inputSolMaps, IntermediateResultElementSink sink) protected voidparallelPhase(List<SolutionMapping> inputForParallelProcess, ExecutionContext execCxt) Methods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForUnaryExecOpWithCollectedInput
_concludeExecution, _process, _process, createStats, resetStatsMethods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.UnaryExecutableOpBase
concludeExecution, getStats, process, processMethods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOps
getExceptionsCaughtDuringExecution, getQueryPlanningInfo, recordExceptionCaughtDuringExecutionMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface se.liu.ida.hefquin.engine.queryplan.executable.ExecutableOperator
getExceptionsCaughtDuringExecution, getQueryPlanningInfo
-
Field Details
-
DEFAULT_BATCH_SIZE
public static final int DEFAULT_BATCH_SIZE- See Also:
-
inputVarsFromNonOptionalPart
-
optionalParts
-
indexes
-
joinVars
-
bindingsForJoinVariable
-
-
Constructor Details
-
ExecOpParallelMultiwayLeftJoin
public ExecOpParallelMultiwayLeftJoin(boolean collectExceptions, QueryPlanningInfo qpInfo, ExpectedVariables inputVarsFromNonOptionalPart, LogicalOpRequest<?, ?>... optionalParts) -
ExecOpParallelMultiwayLeftJoin
public ExecOpParallelMultiwayLeftJoin(boolean collectExceptions, QueryPlanningInfo qpInfo, ExpectedVariables inputVarsFromNonOptionalPart, List<LogicalOpRequest<?, ?>> optionalParts)
-
-
Method Details
-
_processCollectedInput
protected void _processCollectedInput(List<SolutionMapping> input, IntermediateResultElementSink sink, ExecutionContext execCxt) throws ExecOpExecutionException Description copied from class:BaseForUnaryExecOpWithCollectedInputImplementations of this function need to process the given solution mappings as input and send the produced result elements (if any) to the given sink. If an exception occurs while processing the solution mappings, then this exception needs to be thrown.- Specified by:
_processCollectedInputin classBaseForUnaryExecOpWithCollectedInput- Throws:
ExecOpExecutionException
-
determineInputForParallelProcess
Preprocess the given list of solution mappings to identify the input solution mappings that do not need to be considered during the parallel phase of the algorithm (because they have bindings for the join variables such that there already was an earlier input solution mapping with the same bindings). The list returned by this function contains only the solution mappings from the given list that need to be considered. -
parallelPhase
protected void parallelPhase(List<SolutionMapping> inputForParallelProcess, ExecutionContext execCxt) throws ExecOpExecutionException - Throws:
ExecOpExecutionException
-
mergePhase
protected void mergePhase(Iterable<SolutionMapping> inputSolMaps, IntermediateResultElementSink sink) -
merge
-
_concludeExecution
protected void _concludeExecution(List<SolutionMapping> batch, IntermediateResultElementSink sink, ExecutionContext execCxt) throws ExecOpExecutionException Description copied from class:BaseForUnaryExecOpWithCollectedInputImplementations of this function need to process the given solution mappings as last input, conclude the execution of this operator, and send the remaining result elements (if any) to the given sink. Notice that the list of solution mappings given here may contain fewer solution mappings than the minimum collection size, and it may even be empty! If an exception occurs during this process, then this exception needs to be thrown.- Specified by:
_concludeExecutionin classBaseForUnaryExecOpWithCollectedInput- Throws:
ExecOpExecutionException
-