tillrohrmann opened a new pull request #14431:
URL: https://github.com/apache/flink/pull/14431
## What is the purpose of the change
This PR changes how the `JobMaster` is used by the `JobManagerRunnerImpl`.
Instead of reusing the `JobMaster` across different leader sessions, the
`JobManagerRunnerImpl` will create a new instance for every leader session.
This makes the state management in the `JobMaster` easier because we don't have
to make sure that the components are always in a cleaned up state when starting
a new leader session. Moreover, it simplifies the state management because
there are fewer mutable components in the `JobMaster`.
This PR is based on #14430.
## Brief change log
- 8faba3b: This commit changes how the JobManagerRunnerImpl uses
JobMasterServices.
Now we use a JobMasterService per leader session.
- 436aa53: This commit changes the JobMaster to have a permanent fencing
token.
- 1ab27e0: Since the JobMaster is now a PermanentlyFencedRpcEndpoint we no
longer
need to make the scheduler resettable.
- 7b74054: Since we are no longer reusing the JobMaster across different
leader sessions,
we can make the heartbeat managers final.
- aec1ac9: Make starting and stopping of JobMaster services symmetric
## Verifying this change
I adjusted several test to the new model. The test class `JobMasterTest` was
mainly affected.
## Does this pull request potentially affect one of the following parts:
- Dependencies (does it add or upgrade a dependency): (yes / **no**)
- The public API, i.e., is any changed class annotated with
`@Public(Evolving)`: (yes / **no**)
- The serializers: (yes / **no** / don't know)
- The runtime per-record code paths (performance sensitive): (yes / **no**
/ don't know)
- Anything that affects deployment or recovery: JobManager (and its
components), Checkpointing, Kubernetes/Yarn/Mesos, ZooKeeper: (**yes** / no /
don't know)
- The S3 file system connector: (yes / **no** / don't know)
## Documentation
- Does this pull request introduce a new feature? (yes / **no**)
- If yes, how is the feature documented? (**not applicable** / docs /
JavaDocs / not documented)
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]