GraphExecution¶
GraphExecution is an abstraction of graph executors that can...FIXME
Contract (Subset)¶
awaitCompletion¶
awaitCompletion(): Unit
See:
Used when:
PipelineExecutionis requested to await completion
streamTrigger¶
streamTrigger(
flow: Flow): Trigger
See:
Used when:
GraphExecutionis created (to create the FlowPlanner)
Implementations¶
Creating Instance¶
GraphExecution takes the following to be created:
Abstract Class
GraphExecution is an abstract class and cannot be created directly. It is created indirectly for the concrete graph executors.
FlowPlanner¶
GraphExecution creates a FlowPlanner when created.
This FlowPlanner is created for this DataflowGraph and this PipelineUpdateContext, with a Trigger (that is supposed to be defined by the implementations).
This FlowPlanner is used when GraphExecution is requested to plan and start a flow.
Start¶
start(): Unit
start requests the session-bound ExecutionListenerManager to remove all QueryExecutionListeners.
In the end, start registers this StreamListener with the session-bound StreamingQueryManager.
start is used when:
PipelineExecutionis requested to start the pipeline
planAndStartFlow¶
planAndStartFlow(
flow: ResolvedFlow): Option[FlowExecution]
planAndStartFlow...FIXME
planAndStartFlow is used when:
TriggeredGraphExecutionis requested to topologicalExecution
StreamListener¶
GraphExecution creates a new StreamListener when created.
The StreamListener is created for this PipelineUpdateContext and DataflowGraph.
The StreamListener is registered (added) to the session-bound StreamingQueryManager when started, and deregistered (removed) when stopped.
Stop¶
stop(): Unit
stop requests this session-bound StreamingQueryManager to remove this StreamListener.
stop is used when:
PipelineExecutionis requested to stop the pipelineTriggeredGraphExecutionis requested to create the Topological Execution thread and stopInternal