You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »


Document the state by adding a label to the FLIP page with one of "discussion", "accepted", "released", "rejected".

Discussion thread
Vote thread
JIRA

Unable to render Jira issues macro, execution error.

Release

Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).

Motivation

Apache Curator is used in order to perform interactions with ZooKeeper in HA mode for Flink. Current set up misses several configurations options, which could be useful in certain Flink deployments.

We want to check all available options in Apache Curator and enable Flink users to configure the way Flink interacts with ZooKeeper.

Public Interfaces

There are some new configurations should be exposed for high-availability.zookeeper configuration.

Proposed option

Confgiration type

Motivation

high-availability.zookeeper.client.authorization


Map<String, String>

Ability to fully utilise given set up of ZooKeeper for environment.

For example: In certain cases ZooKeeper requires additional Authentication information. For example list of valid names for ensemble in order to prevent the accidental connecting to a wrong ensemble.

high-availability.zookeeper.client.maxCloseWaitMs


Integer

Ability that would enable the user to adjust to different network speeds.

high-availability.zookeeper.client.simulatedSessionExpirationPercent

Integer

Additional checking for Session expiration above what is provided by ZooKeeper.

The rest of the options provided by Curator framework are considered as non-useful:

Proposed Changes

We should incorporate the aforementioned options and translate configuration values into the corresponding Curator builder calls.

An issue arises due to a type mismatch between the Flink configuration parameter high-availability.zookeeper.client.authorization and the corresponding Curator method call. The Curator method anticipates an array of AuthInfo (see method javadoc) while the Flink configuration provides a different type. To address this, we can handle the conversion between String and byte[] by executing the getBytes() method.

Compatibility, Deprecation, and Migration Plan

N/A

Test Plan

Simple manual tests will do that given options are well applied.

For high-availability.zookeeper.client.authorization we can add a unit test which validates the conversion between the Map<String, String> and AuthInfo[].

Rejected Alternatives

Generic configuration for all Apache Curator options via namespaces

We could think about utilising the namespaces. The FLIP could propose adding namespace support for Apache Curator . E.g. metric high-availability.zookeeper.client.<config_option> could be translated into the appropriate <config_option> of the Curator configuration. That would allow to load any parameter supported by these systems.

Unfortunately Curator connection is configured via Builder pattern, when single configuration is translated into the proper call of the Builder object.

  • No labels