Class ExternalSourceSettings

java.lang.Object
org.elasticsearch.xpack.esql.datasources.ExternalSourceSettings

public final class ExternalSourceSettings extends Object
Cluster settings for controlling ESQL external source cloud API rate limiting. All settings are dynamic (can be changed without restart) and node-scoped.

Only two operational knobs are exposed: a concurrency cap to prevent throttling in the first place, and a total retry duration budget to bound the damage when throttling is persistent. Internal details (throttle retry count = 10, adaptive backoff = always enabled, exponential delays) use hardcoded defaults that match industry practice.

  • Field Details

    • MAX_CONCURRENT_REQUESTS

      public static final Setting<Integer> MAX_CONCURRENT_REQUESTS
      Maximum number of concurrent cloud API requests per storage scheme per node. Set to 0 to disable concurrency limiting entirely. Default: 50. Cloud APIs typically handle 50 concurrent requests per IP easily; increase for high-throughput clusters, decrease if experiencing throttling.
    • THROTTLE_MAX_RETRY_DURATION

      public static final Setting<Integer> THROTTLE_MAX_RETRY_DURATION
      Maximum total time (in seconds) to spend retrying throttled cloud API requests before giving up. Bounds the cumulative retry duration regardless of the retry count, ensuring queries fail cleanly when throttling is persistent rather than blocking until the HTTP request timeout fires. Default: 30 seconds. Set to 0 to disable the duration budget (retry count only).
  • Method Details