[ 
https://issues.apache.org/jira/browse/FLINK-31816?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17741054#comment-17741054
 ] 

Matthias Pohl commented on FLINK-31816:
---------------------------------------

I'm wondering whether a structure like this would make sense:
 * {{{}HighAvailabilityServices{}}}: Collects the job state-related artifacts 
and the {{LeaderElectionServices}}
 ** Methods
 *** getJobGraphStore()
 *** getJobResultStore()
 *** getBlobStore()
 *** getCheckpointRecoveryFactory()
 *** getLeaderElectionServices() // returns LeaderElectionServices

 * {{{}LeaderElectionServices{}}}: Interface for all the different components 
that rely on leader election. It abstracts away the {{componentId}}
 ** Methods:
 *** {{getDispatcherLeaderElection()}}
 *** {{getDispatcherLeaderRetrieval()}}
 *** {{getResourceManagerLeaderElection()}}
 *** {{getResourceManagerLeaderRetrieval()}}
 *** {{getJobMasterLeaderElection(jobId)}}
 *** {{getJobMasterLeaderRetrieval(jobId)}}
 *** {{getRestEndpointLeaderElection()}}
 *** {{getRestEndpointLeaderRetrieval()}}
 ** Implementations
 *** {{DefaultLeaderElectionServices}}
 *** {{EmbeddedLeaderElectionServices}}
 *** {{StandaloneLeaderElectionServices}}

 * {{LeaderElectionService}} (singular): Provides actual leader election for a 
set of {{LeaderElection}} instances. Implementations:
 ** methods
 *** {{createLeaderElection(componentId)}}
 *** {{close()}}
 ** Implementations
 *** {{{}DefaultLeaderElectionService{}}}: Single driver wrapper (can be also 
used for one driver per contender)
 *** {{{}EmbeddedLeaderElectionService{}}}: Embedded implementation for a list 
of {{LeaderElection}} instances competing with each other (i.e. current 
{{{}EmbeddedLeaderService{}}})

> Refactor EmbeddedLeaderElectionService
> --------------------------------------
>
>                 Key: FLINK-31816
>                 URL: https://issues.apache.org/jira/browse/FLINK-31816
>             Project: Flink
>          Issue Type: Sub-task
>          Components: Runtime / Coordination
>            Reporter: Matthias Pohl
>            Priority: Major
>
> {{DefaultLeaderElectionService}} can be used as a generic implementation. The 
> embedded functionality can be provided through a {{LeaderElectionDriver}} 
> implementation.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to