Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Option Name

Default Value

Description

execution.interactive-client

false

Enabling this means the Flink client will be used in an interactive scenario. It should reuse all the necessary resources to improve interactive performance.

Notice: This option will only take effect when Flink is deployed in session-mode.

CollectOptions

Option Name

Default Value

Description

collect-strategy.type

fixed-delay

Config options for RetryStrategy in CollectResultFetcher.
The default RetryStrategy is FixedDelayCollectStrategy, which means CollectResultFetcher will keep fetch results from sinkoperator at fixed intervals.

collect-strategy.fixed-delay.attempts

Integer.MAX_VALUE

Config options for FixedRetryStrategy, the strategy will retries at a fixed delay.

collect-strategy.fixed-delay.delay

100 ms

collect-strategy.exponential-delay.initial-backoff

100 ms

Config options for ExponentialBackoffRetryStrategy, the strategy will increase the delay exponentially with a cap.

collect-strategy.exponential-delay.max-backoff

1 s

collect-strategy.exponential-delay.attempts

Integer.MAX_VALUE

collect-strategy.incremental-delay.initial-delay

100 ms

Config options for IncrementalDelayRetryStrategy, the strategy will increase the delay with a fixed increment.

collect-strategy.incremental-delay.increment

100 ms

collect-strategy.incremental-delay.max-delay

1 s

collect-strategy.incremental-delay.attempts

Integer.MAX_VALUE


Proposed Change

Overview

  • Reuse ClusterDescriptor when interacting with a dedicated session cluster
  • Reuse ClientHighAvailabilityServices for leader retrieval with the same session cluster
  • Reuse RestClusterClient when sending requests to the same session cluster
  • Reuse the HTTP connections between JDBC Driver to SQL Gateway and Flink Client to Flink Cluster with the same target address
  • Use ThreadLocal<ObjectMapper> instead of a global ObjectMapper instance
  • Use a configurable retry strategy in CollectResultFetcher to reduce unnecessary workload

...

Currently, ClientHighAvailabilityServices will only return a LeaderRetrievalService and the LeaderRetrievalService that  that can only be started once with a LeaderRetrievalListener. This leads to that if multiple ClusterClient instances need to listen to the high availability change, they would have to start their own ClientHighAvailabilityServices.

...