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.UnaryExecutableOpBaseWithBatching
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 int
protected final List
<SolutionMappingsIndex> protected final ExpectedVariables
protected 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.UnaryExecutableOpBaseWithBatching
batchSize, collectedInputSolMaps
Fields inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOps
collectExceptions
-
Constructor Summary
ConstructorsConstructorDescriptionExecOpParallelMultiwayLeftJoin
(boolean collectExceptions, ExpectedVariables inputVarsFromNonOptionalPart, List<LogicalOpRequest<?, ?>> optionalParts) ExecOpParallelMultiwayLeftJoin
(boolean collectExceptions, 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 batch of 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
_processBatch
(List<SolutionMapping> input, IntermediateResultElementSink sink, ExecutionContext execCxt) Implementations of this function need to process the given batch of 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 void
mergePhase
(Iterable<SolutionMapping> inputSolMaps, IntermediateResultElementSink sink) protected void
parallelPhase
(List<SolutionMapping> inputForParallelProcess, ExecutionContext execCxt) Methods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.UnaryExecutableOpBaseWithBatching
_concludeExecution, _process, createStats, resetStats
Methods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.UnaryExecutableOpBase
_process, concludeExecution, getStats, process, process
Methods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForExecOps
getExceptionsCaughtDuringExecution, recordExceptionCaughtDuringExecution
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface se.liu.ida.hefquin.engine.queryplan.executable.ExecutableOperator
getExceptionsCaughtDuringExecution
-
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, ExpectedVariables inputVarsFromNonOptionalPart, LogicalOpRequest<?, ?>... optionalParts) -
ExecOpParallelMultiwayLeftJoin
public ExecOpParallelMultiwayLeftJoin(boolean collectExceptions, ExpectedVariables inputVarsFromNonOptionalPart, List<LogicalOpRequest<?, ?>> optionalParts)
-
-
Method Details
-
_processBatch
protected void _processBatch(List<SolutionMapping> input, IntermediateResultElementSink sink, ExecutionContext execCxt) throws ExecOpExecutionException Description copied from class:UnaryExecutableOpBaseWithBatching
Implementations of this function need to process the given batch of solution mappings as input and send the produced result elements (if any) to the given sink. If an exception occurs while processing the batch, then this exception needs to be thrown.- Specified by:
_processBatch
in classUnaryExecutableOpBaseWithBatching
- 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:UnaryExecutableOpBaseWithBatching
Implementations of this function need to process the given batch of 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 given batch of solution mappings may be empty! If an exception occurs during this process, then this exception needs to be thrown.- Specified by:
_concludeExecution
in classUnaryExecutableOpBaseWithBatching
- Throws:
ExecOpExecutionException
-