Class BaseForExecOpIndexNestedLoopsJoinWithRequests<QueryType extends Query,MemberType extends FederationMember,ReqType extends DataRetrievalRequest,RespType extends DataRetrievalResponse<?>>
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.BaseForExecOpIndexNestedLoopsJoinWithRequests<QueryType,MemberType,ReqType,RespType>
- All Implemented Interfaces:
StatsProvider,ExecutableOperator,UnaryExecutableOp
- Direct Known Subclasses:
BaseForExecOpIndexNestedLoopsJoinWithSolMapsRequests
public abstract class BaseForExecOpIndexNestedLoopsJoinWithRequests<QueryType extends Query,MemberType extends FederationMember,ReqType extends DataRetrievalRequest,RespType extends DataRetrievalResponse<?>>
extends BaseForUnaryExecOpWithCollectedInput
Abstract base class to implement index nested loops joins by issuing
requests directly and, then, using response processors.
An alternative option to this base class is the abstract base class
BaseForExecOpIndexNestedLoopsJoinWithRequestOps which relies
on executable request operators rather than issuing requests directly.
This option may come handy in cases in which a single request per
input solution mapping is not enough because of paging.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected class -
Field Summary
FieldsFields 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
ConstructorsConstructorDescriptionBaseForExecOpIndexNestedLoopsJoinWithRequests(QueryType query, MemberType fm, int minimumInputBlockSize, boolean collectExceptions, QueryPlanningInfo qpInfo) -
Method Summary
Modifier and TypeMethodDescriptionprotected void_concludeExecution(List<SolutionMapping> input, 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 abstract ReqTypeprotected abstract BaseForExecOpIndexNestedLoopsJoinWithRequests<QueryType,MemberType, ReqType, RespType>.MyResponseProcessor createResponseProcessor(SolutionMapping sm, IntermediateResultElementSink sink, ExecutableOperator op) protected ExecutableOperatorStatsImplprotected abstract CompletableFuture<RespType> issueRequest(ReqType req, FederationAccessManager fedAccessMgr) voidMethods inherited from class se.liu.ida.hefquin.engine.queryplan.executable.impl.ops.BaseForUnaryExecOpWithCollectedInput
_concludeExecution, _process, _processMethods 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
-
query
-
fm
-
-
Constructor Details
-
BaseForExecOpIndexNestedLoopsJoinWithRequests
public BaseForExecOpIndexNestedLoopsJoinWithRequests(QueryType query, MemberType fm, int minimumInputBlockSize, boolean collectExceptions, QueryPlanningInfo qpInfo)
-
-
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
-
createRequest
protected abstract ReqType createRequest(SolutionMapping sm) throws VariableByBlankNodeSubstitutionException -
createResponseProcessor
protected abstract BaseForExecOpIndexNestedLoopsJoinWithRequests<QueryType,MemberType, createResponseProcessorReqType, RespType>.MyResponseProcessor (SolutionMapping sm, IntermediateResultElementSink sink, ExecutableOperator op) -
issueRequest
protected abstract CompletableFuture<RespType> issueRequest(ReqType req, FederationAccessManager fedAccessMgr) throws FederationAccessException - Throws:
FederationAccessException
-
_concludeExecution
protected void _concludeExecution(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 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
-
resetStats
public void resetStats()- Specified by:
resetStatsin interfaceStatsProvider- Overrides:
resetStatsin classBaseForUnaryExecOpWithCollectedInput
-
createStats
- Overrides:
createStatsin classBaseForUnaryExecOpWithCollectedInput
-