Github user mxm commented on the pull request:
https://github.com/apache/flink/pull/858#issuecomment-138848287
Of course! The following classes have been refactored in the course of
integrating them with the session management:
**Client**
- Establish connection to JobManager on creation
- Refactor run method into `runBlocking` and `runDetached`
- Extract helper classes to generate the Plan
- Make Optimizer and JobGraph generation methods `static`
- Pass `ClassLoader` correctly (do not keep one per Client but rather let
it be passed before submission)
**CliFrontend**
- `runBlocking` and `runDetached` methods by analogy with the Client class
**ExecutionEnvironment**, **LocalEnvironment**, **RemoteEnvironment**
- modified abstract class to support sessions (timeout and jobID generation)
- handle session management via Reapers and ShutdownHooks
**PlanExecutor**, **LocalExecutor**, **RemoteExecutor**
- modified interface
- support session termination
- set JobID on Plan
**JobManager**
- keep ExecutionGraph as long as session has not expired
Future issues:
- Support for sessions in streaming. Currently streaming jobs are agnostic
of sessions.
- Representation of sessions in the JobManager web frontend. How do we
represent updates to the ExecutionGraph in sessions?
- Build features on top of session management (e.g. intermediate results)
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---