Package org.apache.flink.optimizer.plan
Class WorksetIterationPlanNode
- java.lang.Object
-
- org.apache.flink.optimizer.plan.PlanNode
-
- org.apache.flink.optimizer.plan.DualInputPlanNode
-
- org.apache.flink.optimizer.plan.WorksetIterationPlanNode
-
- All Implemented Interfaces:
IterationPlanNode,DumpableNode<PlanNode>,org.apache.flink.util.Visitable<PlanNode>
public class WorksetIterationPlanNode extends DualInputPlanNode implements IterationPlanNode
A node in the execution, representing a workset iteration (delta iteration).
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.flink.optimizer.plan.PlanNode
PlanNode.FeedbackPropertiesMeetRequirementsReport, PlanNode.SourceAndDamReport
-
-
Field Summary
Fields Modifier and Type Field Description ObjectpostPassHelper-
Fields inherited from class org.apache.flink.optimizer.plan.DualInputPlanNode
input1, input2, keys1, keys2, postPassHelper1, postPassHelper2, sortOrders
-
Fields inherited from class org.apache.flink.optimizer.plan.PlanNode
branchPlan, cumulativeCosts, globalProps, localProps, nodeCosts, outChannels, template
-
-
Constructor Summary
Constructors Constructor Description WorksetIterationPlanNode(WorksetIterationNode template, String nodeName, Channel initialSolutionSet, Channel initialWorkset, SolutionSetPlanNode solutionSetPlanNode, WorksetPlanNode worksetPlanNode, PlanNode nextWorkSetPlanNode, PlanNode solutionSetDeltaPlanNode)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidacceptForStepFunction(org.apache.flink.util.Visitor<PlanNode> visitor)ChannelgetInitialSolutionSetInput()ChannelgetInitialWorksetInput()WorksetIterationNodegetIterationNode()intgetMemoryConsumerWeight()PlanNodegetNextWorkSetPlanNode()org.apache.flink.api.common.typeutils.TypeSerializerFactory<?>getSerializerForIterationChannel()org.apache.flink.api.common.typeutils.TypeComparatorFactory<?>getSolutionSetComparator()PlanNodegetSolutionSetDeltaPlanNode()org.apache.flink.api.common.operators.util.FieldListgetSolutionSetKeyFields()SolutionSetPlanNodegetSolutionSetPlanNode()org.apache.flink.api.common.typeutils.TypeSerializerFactory<?>getSolutionSetSerializer()WorksetPlanNodegetWorksetPlanNode()org.apache.flink.api.common.typeutils.TypeSerializerFactory<?>getWorksetSerializer()PlanNode.SourceAndDamReporthasDamOnPathDownTo(PlanNode source)Checks whether this node has a dam on the way down to the given source node.booleanisImmediateSolutionSetUpdate()protected voidmergeBranchPlanMaps()protected voidmergeBranchPlanMaps(Map<OptimizerNode,PlanNode> branchPlan1, Map<OptimizerNode,PlanNode> branchPlan2)Merging can only take place after the solutionSetDelta and nextWorkset PlanNode has been set, because they can contain also some of the branching nodes.voidsetCosts(Costs nodeCosts)Sets the basic cost for this node to the given value, and sets the cumulative costs to those costs plus the cost shares of all inputs (regular and broadcast).voidsetImmediateSolutionSetUpdate(boolean immediateUpdate)voidsetSerializerForIterationChannel(org.apache.flink.api.common.typeutils.TypeSerializerFactory<?> serializerForIterationChannel)voidsetSolutionSetComparator(org.apache.flink.api.common.typeutils.TypeComparatorFactory<?> solutionSetComparator)voidsetSolutionSetSerializer(org.apache.flink.api.common.typeutils.TypeSerializerFactory<?> solutionSetSerializer)voidsetWorksetSerializer(org.apache.flink.api.common.typeutils.TypeSerializerFactory<?> worksetSerializer)-
Methods inherited from class org.apache.flink.optimizer.plan.DualInputPlanNode
accept, getComparator1, getComparator2, getInput1, getInput2, getInputs, getKeysForInput1, getKeysForInput2, getPairComparator, getPredecessors, getSortOrders, getTwoInputNode, setComparator1, setComparator2, setPairComparator
-
Methods inherited from class org.apache.flink.optimizer.plan.PlanNode
addOutgoingChannel, checkPartialSolutionPropertiesMet, getBranchPlan, getBroadcastInputs, getCandidateAtBranchPoint, getCostWeight, getCumulativeCosts, getCumulativeCostsShare, getDriverStrategy, getDumpableInputs, getGlobalProperties, getGuaranteedAvailableMemory, getLocalProperties, getMinResources, getNodeCosts, getNodeName, getOptimizerNode, getOriginalOptimizerNode, getOutgoingChannels, getParallelism, getPlanNode, getPreferredResources, getProgramOperator, getRelativeMemoryPerSubTask, initProperties, isOnDynamicPath, isPruneMarkerSet, mergeBranchPlanMaps, setBroadcastInputs, setDriverStrategy, setParallelism, setPruningMarker, setRelativeMemoryPerSubtask, toString, updatePropertiesWithUniqueSets
-
-
-
-
Field Detail
-
postPassHelper
public Object postPassHelper
-
-
Constructor Detail
-
WorksetIterationPlanNode
public WorksetIterationPlanNode(WorksetIterationNode template, String nodeName, Channel initialSolutionSet, Channel initialWorkset, SolutionSetPlanNode solutionSetPlanNode, WorksetPlanNode worksetPlanNode, PlanNode nextWorkSetPlanNode, PlanNode solutionSetDeltaPlanNode)
-
-
Method Detail
-
getIterationNode
public WorksetIterationNode getIterationNode()
- Specified by:
getIterationNodein interfaceIterationPlanNode
-
getSolutionSetPlanNode
public SolutionSetPlanNode getSolutionSetPlanNode()
-
getWorksetPlanNode
public WorksetPlanNode getWorksetPlanNode()
-
getSolutionSetDeltaPlanNode
public PlanNode getSolutionSetDeltaPlanNode()
-
getNextWorkSetPlanNode
public PlanNode getNextWorkSetPlanNode()
-
getInitialSolutionSetInput
public Channel getInitialSolutionSetInput()
-
getInitialWorksetInput
public Channel getInitialWorksetInput()
-
setImmediateSolutionSetUpdate
public void setImmediateSolutionSetUpdate(boolean immediateUpdate)
-
isImmediateSolutionSetUpdate
public boolean isImmediateSolutionSetUpdate()
-
getSolutionSetKeyFields
public org.apache.flink.api.common.operators.util.FieldList getSolutionSetKeyFields()
-
getWorksetSerializer
public org.apache.flink.api.common.typeutils.TypeSerializerFactory<?> getWorksetSerializer()
-
setWorksetSerializer
public void setWorksetSerializer(org.apache.flink.api.common.typeutils.TypeSerializerFactory<?> worksetSerializer)
-
getSolutionSetSerializer
public org.apache.flink.api.common.typeutils.TypeSerializerFactory<?> getSolutionSetSerializer()
-
setSolutionSetSerializer
public void setSolutionSetSerializer(org.apache.flink.api.common.typeutils.TypeSerializerFactory<?> solutionSetSerializer)
-
getSolutionSetComparator
public org.apache.flink.api.common.typeutils.TypeComparatorFactory<?> getSolutionSetComparator()
-
setSolutionSetComparator
public void setSolutionSetComparator(org.apache.flink.api.common.typeutils.TypeComparatorFactory<?> solutionSetComparator)
-
setCosts
public void setCosts(Costs nodeCosts)
Description copied from class:PlanNodeSets the basic cost for this node to the given value, and sets the cumulative costs to those costs plus the cost shares of all inputs (regular and broadcast).
-
getMemoryConsumerWeight
public int getMemoryConsumerWeight()
- Overrides:
getMemoryConsumerWeightin classPlanNode
-
hasDamOnPathDownTo
public PlanNode.SourceAndDamReport hasDamOnPathDownTo(PlanNode source)
Description copied from class:PlanNodeChecks whether this node has a dam on the way down to the given source node. This method returns either that (a) the source node is not found as a (transitive) child of this node, (b) the node is found, but no dam is on the path, or (c) the node is found and a dam is on the path.- Overrides:
hasDamOnPathDownToin classDualInputPlanNode- Parameters:
source- The node on the path to which the dam is sought.- Returns:
- The result whether the node is found and whether a dam is on the path.
-
acceptForStepFunction
public void acceptForStepFunction(org.apache.flink.util.Visitor<PlanNode> visitor)
- Specified by:
acceptForStepFunctionin interfaceIterationPlanNode
-
mergeBranchPlanMaps
protected void mergeBranchPlanMaps(Map<OptimizerNode,PlanNode> branchPlan1, Map<OptimizerNode,PlanNode> branchPlan2)
Merging can only take place after the solutionSetDelta and nextWorkset PlanNode has been set, because they can contain also some of the branching nodes.- Overrides:
mergeBranchPlanMapsin classPlanNode
-
mergeBranchPlanMaps
protected void mergeBranchPlanMaps()
-
getSerializerForIterationChannel
public org.apache.flink.api.common.typeutils.TypeSerializerFactory<?> getSerializerForIterationChannel()
-
setSerializerForIterationChannel
public void setSerializerForIterationChannel(org.apache.flink.api.common.typeutils.TypeSerializerFactory<?> serializerForIterationChannel)
-
-