[
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)