...
JobInfo: Hold all job related information, such as job name, execution mode.
TaskInfo: Hold all task related information, such as parallelism.
State Manager: Manage context related to state, such as accessing a specific state.
Watermark Manager: Manage context related to generalized watermark, such as triggering a watermark.
ProcessingTime Manager: Manage context related to processing timer, such as the current processing time.
- MetricManager: Manage context related to metrics, such as get the metric group of this processing.
Their definitions are as follows:
...
The logic of processing watermark is omitted, but we will introduce it in detail in other sub-FLIPs later.
...
MetricManager
Code Block | ||||
---|---|---|---|---|
| ||||
/** This *is Aresponsibility RuntimeContextfor containsmanaging informationmetrics aboutof the process function. */ public interface MetricManager { /** * Returns the metric group for this function. * * @return The metric group for this function. */ OperatorMetricGroup getMetricGroup(); } |
RuntimeContext
Code Block | ||||
---|---|---|---|---|
| ||||
/** * A RuntimeContext contains information about the context in which process functions are executed. * Each parallel instance of context in which process functions are executed. * Each parallel instance of the function will have a context through which it can access contextual * information, such as the current key and execution mode. Through this context, we can also * interact with the execution layer, such as getting state, emitting watermark, registering timer, etc. */ public interface RuntimeContext { /** Get the {@link JobInfo} of this process function. */ JobInfo getJobInfo(); /** Get the {@link TaskInfo} of this process function. */ TaskInfo getTaskInfo(); /** Get the {@link ProcessingTimeManager} of this process function. */ ProcessingTimeManager getProcessingTimeManager(); /** Get the {@link StateManager} of this process function. */ StateManager getStateManager(); /** Get the {@link WatermarkManager} of this process function. */ WatermarkManager getWatermarkManager(); /** Get the {@link MetricManager} of this process function. */ MetricManager getMetricManager(); } |
ProcessFunction
At the same time, we should expand the implementation of Process Function. In more detail, we will introduce a new method called onProcessingTimer to all type of process functions. It is the callback for the timer registered through RuntimeContext#ProcessingTimeManager.
Note: The logic for processing watermark is omitted, but we will elaborate on it later in the future sub-FLIPs.
...