Package org.apache.wayang.core.optimizer
Class DefaultOptimizationContext
java.lang.Object
org.apache.wayang.core.optimizer.OptimizationContext
org.apache.wayang.core.optimizer.DefaultOptimizationContext
This implementation of
OptimizationContext represents a direct mapping from OptimizationContext.OperatorContext
to executions of the respective Operators.-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.wayang.core.optimizer.OptimizationContext
OptimizationContext.LoopContext, OptimizationContext.OperatorContext -
Field Summary
Fields inherited from class org.apache.wayang.core.optimizer.OptimizationContext
hostLoopContext, job, logger -
Constructor Summary
ConstructorsConstructorDescriptionCreate a new instance.DefaultOptimizationContext(Job job, Operator operator) Creates a new instance.Forks anDefaultOptimizationContextby providing a write-layer on top of thebase. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddOneTimeLoop(OptimizationContext.OperatorContext operatorContext) AddDefaultOptimizationContexts for theloopthat is executed once within this instance.addOneTimeOperator(Operator operator) AddOptimizationContext.OperatorContexts for theoperatorthat is executed once within this instance.voidCallsOptimizationContext.OperatorContext.clearMarks()for all nestedOptimizationContext.OperatorContexts.copy()Create a shallow copy of this instance.static DefaultOptimizationContextcreateFrom(Job job) Create a new instance and adds allOperators in theWayangPlan.getBase()Get theDefaultOptimizationContexts represented by this instance.getNestedLoopContext(LoopSubplan loopSubplan) Retrieve theOptimizationContext.LoopContextfor theloopSubplan.getOperatorContext(Operator operator) Return theOptimizationContext.OperatorContextof theoperator.booleanvoidMethods inherited from class org.apache.wayang.core.optimizer.OptimizationContext
addOneTimeOperators, getChannelConversionGraph, getConfiguration, getIterationNumber, getJob, getLoopContext, getNextIterationContext, getParent, getPruningStrategies, getRootParent, isFinalIteration, isInitialIteration, putIntoJobCache, queryJobCache, queryJobCache
-
Constructor Details
-
DefaultOptimizationContext
Create a new instance.- Parameters:
job- the optimization task; loops should already be isolated
-
DefaultOptimizationContext
Forks anDefaultOptimizationContextby providing a write-layer on top of thebase. -
DefaultOptimizationContext
Creates a new instance. Useful for testing.- Parameters:
job- whose optimization thew new instance backsoperator- the singleOperatorof this instance
-
-
Method Details
-
createFrom
Create a new instance and adds allOperators in theWayangPlan.- Parameters:
job- the optimization task; loops should already be isolated
-
addOneTimeOperator
Description copied from class:OptimizationContextAddOptimizationContext.OperatorContexts for theoperatorthat is executed once within this instance. Also add its encasedOperators. Potentially invokeOptimizationContext.addOneTimeLoop(OperatorContext)as well.- Specified by:
addOneTimeOperatorin classOptimizationContext
-
addOneTimeLoop
AddDefaultOptimizationContexts for theloopthat is executed once within this instance.- Specified by:
addOneTimeLoopin classOptimizationContext
-
getOperatorContext
Return theOptimizationContext.OperatorContextof theoperator.- Specified by:
getOperatorContextin classOptimizationContext- Parameters:
operator- a one-timeOperator(i.e., not in a nested loop)- Returns:
- the
OptimizationContext.OperatorContextfor theOperatorornullif none
-
getNestedLoopContext
Retrieve theOptimizationContext.LoopContextfor theloopSubplan.- Specified by:
getNestedLoopContextin classOptimizationContext
-
clearMarks
public void clearMarks()CallsOptimizationContext.OperatorContext.clearMarks()for all nestedOptimizationContext.OperatorContexts.- Specified by:
clearMarksin classOptimizationContext
-
getLocalOperatorContexts
- Specified by:
getLocalOperatorContextsin classOptimizationContext- Returns:
- the
OptimizationContext.OperatorContexts of this instance (exclusive of any base instance)
-
isTimeEstimatesComplete
public boolean isTimeEstimatesComplete()- Specified by:
isTimeEstimatesCompletein classOptimizationContext- Returns:
- whether there is a
TimeEstimatefor eachExecutionOperator
-
getBase
- Overrides:
getBasein classOptimizationContext
-
mergeToBase
public void mergeToBase()- Specified by:
mergeToBasein classOptimizationContext
-
getDefaultOptimizationContexts
Description copied from class:OptimizationContextGet theDefaultOptimizationContexts represented by this instance.- Specified by:
getDefaultOptimizationContextsin classOptimizationContext- Returns:
- a
Collectionof saidDefaultOptimizationContexts
-
copy
Create a shallow copy of this instance.- Returns:
- the shallow copy
-