GraphExecution¶
GraphExecution
is an abstraction of graph executors that can...FIXME
Contract (Subset)¶
awaitCompletion¶
awaitCompletion(): Unit
See:
Used when:
PipelineExecution
is requested to await completion
streamTrigger¶
streamTrigger(
flow: Flow): Trigger
See:
Used when:
GraphExecution
is 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).
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:
PipelineExecution
is requested to start the pipeline
planAndStartFlow¶
planAndStartFlow(
flow: ResolvedFlow): Option[FlowExecution]
planAndStartFlow
...FIXME
planAndStartFlow
is used when:
TriggeredGraphExecution
is 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:
PipelineExecution
is requested to stop the pipelineTriggeredGraphExecution
is requested to create the Topological Execution thread and stopInternal