Configuration Server client properties

This page documents Java system properties that control how Deephaven processes connect to the Configuration Server. These properties tune connection behavior, load balancing, timeouts, and retry logic.

Note

These are Java system properties, not Deephaven properties file settings. Set them using the -D flag when starting a Java process (e.g., -Dconfiguration.server.load.balancer.policy=round_robin).

Connection properties

PropertyDefaultDescription
configuration.server.load.balancer.policypick_firstgRPC load balancing policy for connecting to configuration servers. See Load balancer policies.
configuration.server.rearrange.hoststrueWhether to randomly shuffle the order of configuration servers before connecting.
configuration.server.connection.timeout.millis.single30000Connection timeout in milliseconds when only one configuration server is configured.
configuration.server.connection.timeout.millis.multi6000Connection timeout in milliseconds when multiple configuration servers are configured. The shorter default allows faster failover.

Retry properties

PropertyDefaultDescription
configuration.server.max.retries.limit60Maximum number of retry attempts for gRPC calls. Set to 0 to disable retries.
configuration.server.connectTimeoutMs60000Overall timeout in milliseconds for loading configuration from the server.
configuration.server.retryPauseMs1000Pause in milliseconds between retry attempts when connecting to the configuration server.

Service configuration

PropertyDefaultDescription
configuration.server.service.config.jsonconfiguration_service_config.jsonName of the gRPC service configuration JSON file.

Load balancer policies

The configuration.server.load.balancer.policy property accepts gRPC load balancing policy names:

  • pick_first (default) — Tries configuration servers in order. Connects to the first available server and stays connected. If the connection fails, it moves to the next server. Best for most deployments.
  • round_robin — Maintains connections to all configuration servers and distributes requests across them. Useful for high-availability deployments where you want active connections to all servers.

When configuration.server.rearrange.hosts is true (the default), the order of servers is randomized before applying the load balancing policy. This helps distribute load across servers even with pick_first.

Examples

High-availability configuration

To use round-robin load balancing with active connections to all configuration servers:

Troubleshooting connectivity issues

If clients are timing out before reaching the Configuration Server, increase the timeout values:

Disabling retries for debugging

To disable automatic retries and see failures immediately:

Kubernetes configuration

In Kubernetes deployments, set these properties via Helm values in your override file. For example, to set the connection timeout in milliseconds when multiple Configuration Servers are configured:

Apply the configuration with helm upgrade. For more Helm configuration options, see Kubernetes configuration settings.