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]


Reply via email to