[ https://issues.apache.org/jira/browse/FLINK-13750?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16911290#comment-16911290 ]
TisonKun commented on FLINK-13750: ---------------------------------- The original issue FLINK-13500 caused by this issue requires initialize services on demand. Specifically, BlobStoreService doesn't initialized in client-side. Let {{HighAvailabilityServices}} extend both {{ClientHighAvailabilityServices}} and {{ClusterHighAvailabilityServices}} and pass it as the respective interface doesn't fix this issue. It limits the access but would not change the initialization. With our context {{ClientHighAvailabilityServices}} has the only method {{getWebMonitorLeaderRetrievalService}} while {{ClusterHighAvailabilityServices}} doesn't need it. We can rename {{HighAvailabilityService}} as {{ClusterHighAvailabilityServices}} and deprecate the method and drop it when break changes allowed. For MiniCluster scenario, it is a special case where the client can directly access dispatcher gate and thus need not a {{ClientHighAvailabilityServices}}. We can handle it specially regard its speciality natural. An inheritance graph would be {noformat} ClientHighAvailabilityServices { only getWebMonitorLeaderRetrievalService } ↓ ZK.../Standalone.../Custom... {noformat} {noformat} ClusterHighAvailabilityServices { ... deprecated getWebMonitorLeaderRetrievalService} ↓ ZK.../Standalone.../Embedded.../Custom... {noformat} Another problem is how we treat the custom one? A quick solution is as {{HighAvailabilityServicesFactory#createClientHAServices}} described above and the default is create a ClusterHighAvailabilityServices(current HighAvailabilityServices) and wrapped it access only the deprecated {{getWebMonitorLeaderRetrievalService}}. We can drop the fallback when break changes allowed. Fair enough, a survey to build our mind on how users actually custom their HAService would be helpful. > Separate HA services between client-/ and server-side > ----------------------------------------------------- > > Key: FLINK-13750 > URL: https://issues.apache.org/jira/browse/FLINK-13750 > Project: Flink > Issue Type: Improvement > Components: Command Line Client, Runtime / Coordination > Reporter: Chesnay Schepler > Assignee: TisonKun > Priority: Major > > Currently, we use the same {{HighAvailabilityServices}} on the client and > server. However, the client does not need several of the features that the > services currently provide (access to the blobstore or checkpoint metadata). > Additionally, due to how these services are setup they also require the > client to have access to the blob storage, despite it never actually being > used, which can cause issues, like FLINK-13500. > [~Tison] Would be be interested in this issue? -- This message was sent by Atlassian Jira (v8.3.2#803003)