Package | Description |
---|---|
org.apache.flink.optimizer.costs | |
org.apache.flink.optimizer.dag | |
org.apache.flink.optimizer.plan | |
org.apache.flink.optimizer.plandump | |
org.apache.flink.optimizer.plantranslate | |
org.apache.flink.optimizer.postpass | |
org.apache.flink.optimizer.traversals |
This package contains the various traversals over the program plan and the optimizer DAG
(directed acyclic graph) that are made in the course of the optimization.
|
Modifier and Type | Method and Description |
---|---|
void |
CostEstimator.costOperator(PlanNode n)
This method computes the cost of an operator.
|
Modifier and Type | Field and Description |
---|---|
protected List<PlanNode> |
OptimizerNode.cachedPlans |
Modifier and Type | Method and Description |
---|---|
PlanNode |
OptimizerNode.getPlanNode() |
Modifier and Type | Method and Description |
---|---|
abstract List<PlanNode> |
OptimizerNode.getAlternativePlans(CostEstimator estimator)
Computes the plan alternatives for this node, an implicitly for all nodes that are children
of this node.
|
List<PlanNode> |
SingleInputNode.getAlternativePlans(CostEstimator estimator) |
List<PlanNode> |
AbstractPartialSolutionNode.getAlternativePlans(CostEstimator estimator) |
List<PlanNode> |
DataSourceNode.getAlternativePlans(CostEstimator estimator) |
List<PlanNode> |
BinaryUnionNode.getAlternativePlans(CostEstimator estimator) |
List<PlanNode> |
DataSinkNode.getAlternativePlans(CostEstimator estimator) |
List<PlanNode> |
TwoInputNode.getAlternativePlans(CostEstimator estimator) |
Modifier and Type | Method and Description |
---|---|
protected boolean |
OptimizerNode.areBranchCompatible(PlanNode plan1,
PlanNode plan2)
Checks whether to candidate plans for the sub-plan of this node are comparable.
|
Modifier and Type | Method and Description |
---|---|
protected void |
TwoInputNode.addLocalCandidates(Channel template1,
Channel template2,
List<Set<? extends NamedChannel>> broadcastPlanChannels,
RequestedGlobalProperties rgps1,
RequestedGlobalProperties rgps2,
List<PlanNode> target,
OperatorDescriptorDual.LocalPropertiesPair[] validLocalCombinations,
CostEstimator estimator) |
protected void |
SingleInputNode.addLocalCandidates(Channel template,
List<Set<? extends NamedChannel>> broadcastPlanChannels,
RequestedGlobalProperties rgps,
List<PlanNode> target,
CostEstimator estimator) |
protected void |
WorksetIterationNode.instantiate(OperatorDescriptorDual operator,
Channel solutionSetIn,
Channel worksetIn,
List<Set<? extends NamedChannel>> broadcastPlanChannels,
List<PlanNode> target,
CostEstimator estimator,
RequestedGlobalProperties globPropsReqSolutionSet,
RequestedGlobalProperties globPropsReqWorkset,
RequestedLocalProperties locPropsReqSolutionSet,
RequestedLocalProperties locPropsReqWorkset) |
protected void |
TwoInputNode.instantiate(OperatorDescriptorDual operator,
Channel in1,
Channel in2,
List<Set<? extends NamedChannel>> broadcastPlanChannels,
List<PlanNode> target,
CostEstimator estimator,
RequestedGlobalProperties globPropsReq1,
RequestedGlobalProperties globPropsReq2,
RequestedLocalProperties locPropsReq1,
RequestedLocalProperties locPropsReq2) |
protected void |
SingleInputNode.instantiateCandidate(OperatorDescriptorSingle dps,
Channel in,
List<Set<? extends NamedChannel>> broadcastPlanChannels,
List<PlanNode> target,
CostEstimator estimator,
RequestedGlobalProperties globPropsReq,
RequestedLocalProperties locPropsReq) |
protected void |
BulkIterationNode.instantiateCandidate(OperatorDescriptorSingle dps,
Channel in,
List<Set<? extends NamedChannel>> broadcastPlanChannels,
List<PlanNode> target,
CostEstimator estimator,
RequestedGlobalProperties globPropsReq,
RequestedLocalProperties locPropsReq) |
protected void |
OptimizerNode.prunePlanAlternatives(List<PlanNode> plans) |
protected void |
OptimizerNode.prunePlanAlternativesWithCommonBranching(List<PlanNode> plans) |
Modifier and Type | Class and Description |
---|---|
class |
BinaryUnionPlanNode
A special subclass for the union to make it identifiable.
|
class |
BulkIterationPlanNode |
class |
BulkPartialSolutionPlanNode
Plan candidate node for partial solution of a bulk iteration.
|
class |
DualInputPlanNode |
class |
NAryUnionPlanNode
A union operation over multiple inputs (2 or more).
|
class |
SingleInputPlanNode |
class |
SinkJoinerPlanNode |
class |
SinkPlanNode
Plan candidate node for data flow sinks.
|
class |
SolutionSetPlanNode
Plan candidate node for partial solution of a bulk iteration.
|
class |
SourcePlanNode
Plan candidate node for data flow sources that have no input and no special strategies.
|
class |
WorksetIterationPlanNode
A node in the execution, representing a workset iteration (delta iteration).
|
class |
WorksetPlanNode
Plan candidate node for partial solution of a bulk iteration.
|
Modifier and Type | Field and Description |
---|---|
protected Map<OptimizerNode,PlanNode> |
PlanNode.branchPlan |
Modifier and Type | Method and Description |
---|---|
PlanNode |
PlanNode.getCandidateAtBranchPoint(OptimizerNode branchPoint) |
PlanNode |
WorksetIterationPlanNode.getNextWorkSetPlanNode() |
PlanNode |
PlanNode.getPlanNode() |
PlanNode |
SingleInputPlanNode.getPredecessor()
Gets the predecessor of this node, i.e. the source of the input channel.
|
PlanNode |
BulkIterationPlanNode.getRootOfStepFunction() |
PlanNode |
BulkIterationPlanNode.getRootOfTerminationCriterion() |
PlanNode |
WorksetIterationPlanNode.getSolutionSetDeltaPlanNode() |
PlanNode |
Channel.getSource()
Gets the source of this Channel.
|
PlanNode |
Channel.getTarget()
Gets the target of this Channel.
|
Modifier and Type | Method and Description |
---|---|
Collection<PlanNode> |
OptimizedPlan.getAllNodes()
Gets all the nodes from this OptimizedPlan.
|
Map<OptimizerNode,PlanNode> |
PlanNode.getBranchPlan() |
Iterable<DumpableConnection<PlanNode>> |
PlanNode.getDumpableInputs() |
Iterable<PlanNode> |
SolutionSetPlanNode.getPredecessors() |
Iterable<PlanNode> |
BulkPartialSolutionPlanNode.getPredecessors() |
Iterable<PlanNode> |
SourcePlanNode.getPredecessors() |
Iterable<PlanNode> |
WorksetPlanNode.getPredecessors() |
Iterable<PlanNode> |
DualInputPlanNode.getPredecessors() |
Iterable<PlanNode> |
SingleInputPlanNode.getPredecessors() |
abstract Iterable<PlanNode> |
PlanNode.getPredecessors() |
Iterable<PlanNode> |
NAryUnionPlanNode.getPredecessors() |
Modifier and Type | Method and Description |
---|---|
void |
SolutionSetPlanNode.accept(Visitor<PlanNode> visitor) |
void |
OptimizedPlan.accept(Visitor<PlanNode> visitor)
Applies the given visitor top down to all nodes, starting at the sinks.
|
void |
BulkPartialSolutionPlanNode.accept(Visitor<PlanNode> visitor) |
void |
SourcePlanNode.accept(Visitor<PlanNode> visitor) |
void |
WorksetPlanNode.accept(Visitor<PlanNode> visitor) |
void |
DualInputPlanNode.accept(Visitor<PlanNode> visitor) |
void |
SingleInputPlanNode.accept(Visitor<PlanNode> visitor) |
void |
NAryUnionPlanNode.accept(Visitor<PlanNode> visitor) |
void |
BulkIterationPlanNode.acceptForStepFunction(Visitor<PlanNode> visitor) |
void |
WorksetIterationPlanNode.acceptForStepFunction(Visitor<PlanNode> visitor) |
void |
IterationPlanNode.acceptForStepFunction(Visitor<PlanNode> visitor) |
protected void |
WorksetIterationPlanNode.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.
|
protected void |
WorksetIterationPlanNode.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.
|
protected void |
PlanNode.mergeBranchPlanMaps(Map<OptimizerNode,PlanNode> branchPlan1,
Map<OptimizerNode,PlanNode> branchPlan2) |
protected void |
PlanNode.mergeBranchPlanMaps(Map<OptimizerNode,PlanNode> branchPlan1,
Map<OptimizerNode,PlanNode> branchPlan2) |
Constructor and Description |
---|
BulkIterationPlanNode(BulkIterationNode template,
String nodeName,
Channel input,
BulkPartialSolutionPlanNode pspn,
PlanNode rootOfStepFunction) |
BulkIterationPlanNode(BulkIterationNode template,
String nodeName,
Channel input,
BulkPartialSolutionPlanNode pspn,
PlanNode rootOfStepFunction,
PlanNode rootOfTerminationCriterion) |
Channel(PlanNode sourceNode) |
Channel(PlanNode sourceNode,
TempMode tempMode) |
NamedChannel(String name,
PlanNode sourceNode)
Initializes NamedChannel.
|
NamedChannel(String name,
PlanNode sourceNode,
TempMode tempMode) |
WorksetIterationPlanNode(WorksetIterationNode template,
String nodeName,
Channel initialSolutionSet,
Channel initialWorkset,
SolutionSetPlanNode solutionSetPlanNode,
WorksetPlanNode worksetPlanNode,
PlanNode nextWorkSetPlanNode,
PlanNode solutionSetDeltaPlanNode) |
Constructor and Description |
---|
OptimizedPlan(Collection<SourcePlanNode> sources,
Collection<SinkPlanNode> sinks,
Collection<PlanNode> allNodes,
String jobName,
Plan programPlan)
Creates a new instance of this optimizer plan container.
|
Modifier and Type | Method and Description |
---|---|
PlanNode |
DumpableNode.getPlanNode() |
Modifier and Type | Method and Description |
---|---|
static String |
JsonMapper.getOptimizerPropertiesJson(org.apache.flink.shaded.jackson2.com.fasterxml.jackson.core.JsonFactory jsonFactory,
PlanNode node) |
void |
JobGraphGenerator.postVisit(PlanNode node)
This method implements the post-visit during the depth-first traversal.
|
boolean |
JobGraphGenerator.preVisit(PlanNode node)
This methods implements the pre-visiting during a depth-first traversal.
|
Modifier and Type | Method and Description |
---|---|
protected void |
JavaApiPostPass.traverse(PlanNode node) |
Modifier and Type | Method and Description |
---|---|
void |
RangePartitionRewriter.postVisit(PlanNode node) |
void |
PlanFinalizer.postVisit(PlanNode visitable) |
void |
BinaryUnionReplacer.postVisit(PlanNode visitable) |
boolean |
RangePartitionRewriter.preVisit(PlanNode visitable) |
boolean |
PlanFinalizer.preVisit(PlanNode visitable) |
boolean |
BinaryUnionReplacer.preVisit(PlanNode visitable) |
Copyright © 2014–2024 The Apache Software Foundation. All rights reserved.