Package org.apache.flink.optimizer.dag
Class SolutionSetNode
- java.lang.Object
-
- org.apache.flink.optimizer.dag.OptimizerNode
-
- org.apache.flink.optimizer.dag.AbstractPartialSolutionNode
-
- org.apache.flink.optimizer.dag.SolutionSetNode
-
- All Implemented Interfaces:
EstimateProvider,DumpableNode<OptimizerNode>,org.apache.flink.util.Visitable<OptimizerNode>
public class SolutionSetNode extends AbstractPartialSolutionNode
The optimizer's internal representation of the solution set of a workset iteration.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.flink.optimizer.dag.OptimizerNode
OptimizerNode.UnclosedBranchDescriptor
-
-
Field Summary
-
Fields inherited from class org.apache.flink.optimizer.dag.OptimizerNode
cachedPlans, closedBranchingNodes, costWeight, estimatedNumRecords, estimatedOutputSize, hereJoinedBranches, id, MAX_DYNAMIC_PATH_COST_WEIGHT, onDynamicPath, openBranches, uniqueFields
-
-
Constructor Summary
Constructors Constructor Description SolutionSetNode(org.apache.flink.api.common.operators.base.DeltaIterationBase.SolutionSetPlaceHolder<?> psph, WorksetIterationNode iterationNode)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcomputeOutputEstimates(DataStatistics statistics)Causes this node to compute its output estimates (such as number of rows, size in bytes) based on the inputs and the compiler hints.voidcomputeUnclosedBranchStack()This method causes the node to compute the description of open branches in its sub-plan.SolutionSetPlanNodegetCurrentSolutionSetPlanNode()WorksetIterationNodegetIterationNode()org.apache.flink.api.common.operators.base.DeltaIterationBase.SolutionSetPlaceHolder<?>getOperator()Gets the contract object for this data source node.StringgetOperatorName()Gets the name of this node, which is the name of the function/operator, or data source / data sink.voidsetCandidateProperties(GlobalProperties gProps, LocalProperties lProps, Channel initialInput)-
Methods inherited from class org.apache.flink.optimizer.dag.AbstractPartialSolutionNode
accept, computeInterestingPropertiesForInputs, computeOperatorSpecificDefaultEstimates, copyEstimates, getAlternativePlans, getIncomingConnections, getSemanticProperties, identifyDynamicPath, isOnDynamicPath, readStubAnnotations, setInput
-
Methods inherited from class org.apache.flink.optimizer.dag.OptimizerNode
addBroadcastConnection, addClosedBranch, addClosedBranches, addOutgoingConnection, areBranchCompatible, clearInterestingProperties, computeUnclosedBranchStackForBroadcastInputs, computeUnionOfInterestingPropertiesFromSuccessors, getBranchesForParent, getBroadcastConnectionNames, getBroadcastConnections, getClosedBranchingNodes, getCostWeight, getDumpableInputs, getEstimatedAvgWidthPerOutputRecord, getEstimatedNumRecords, getEstimatedOutputSize, getId, getInterestingProperties, getMaxDepth, getMinimalMemoryAcrossAllSubTasks, getOpenBranches, getOptimizerNode, getOutgoingConnections, getParallelism, getPlanNode, getPredecessors, getUniqueFields, hasUnclosedBranches, haveAllOutputConnectionInterestingProperties, initId, isBranching, markAllOutgoingConnectionsAsPipelineBreaking, mergeLists, prunePlanAlternatives, prunePlanAlternativesWithCommonBranching, readUniqueFieldsAnnotation, removeClosedBranches, setBroadcastInputs, setEstimatedNumRecords, setEstimatedOutputSize, setParallelism, toString
-
-
-
-
Constructor Detail
-
SolutionSetNode
public SolutionSetNode(org.apache.flink.api.common.operators.base.DeltaIterationBase.SolutionSetPlaceHolder<?> psph, WorksetIterationNode iterationNode)
-
-
Method Detail
-
setCandidateProperties
public void setCandidateProperties(GlobalProperties gProps, LocalProperties lProps, Channel initialInput)
-
getCurrentSolutionSetPlanNode
public SolutionSetPlanNode getCurrentSolutionSetPlanNode()
-
getIterationNode
public WorksetIterationNode getIterationNode()
- Specified by:
getIterationNodein classAbstractPartialSolutionNode
-
computeOutputEstimates
public void computeOutputEstimates(DataStatistics statistics)
Description copied from class:OptimizerNodeCauses this node to compute its output estimates (such as number of rows, size in bytes) based on the inputs and the compiler hints. The compiler hints are instantiated with conservative default values which are used if no other values are provided. Nodes may access the statistics to determine relevant information.- Overrides:
computeOutputEstimatesin classOptimizerNode- Parameters:
statistics- The statistics object which may be accessed to get statistical information. The parameter may be null, if no statistics are available.
-
getOperator
public org.apache.flink.api.common.operators.base.DeltaIterationBase.SolutionSetPlaceHolder<?> getOperator()
Gets the contract object for this data source node.- Overrides:
getOperatorin classOptimizerNode- Returns:
- The contract.
-
getOperatorName
public String getOperatorName()
Description copied from class:OptimizerNodeGets the name of this node, which is the name of the function/operator, or data source / data sink.- Specified by:
getOperatorNamein classOptimizerNode- Returns:
- The node name.
-
computeUnclosedBranchStack
public void computeUnclosedBranchStack()
Description copied from class:OptimizerNodeThis method causes the node to compute the description of open branches in its sub-plan. An open branch describes, that a (transitive) child node had multiple outputs, which have not all been re-joined in the sub-plan. This method needs to set theopenBranchesfield to a stack of unclosed branches, the latest one top. A branch is considered closed, if some later node sees all of the branching node's outputs, no matter if there have been more branches to different paths in the meantime.- Specified by:
computeUnclosedBranchStackin classOptimizerNode
-
-