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