Deephaven properties overview

Which file to use, how files relate, and where to put your settings.

Properties files are text files, usually named with a .prop extension, that store key-value pairs. They configure most variable operations and the behavior of a Java process.

There are four main properties files in a typical Deephaven installation:

  • iris-common.prop — the "root" properties file, which includes other property files.
  • iris-environment.prop — contains the majority of installation-specific settings.
  • iris-endpoints.prop — defines server names, addresses, and ports for Deephaven services. This is generated by the installer and should not be manually updated.
  • iris-defaults.prop — defines common settings needed for all Deephaven installations. This file is replaced on upgrade; override settings in iris-environment.prop instead.

Which prop file to use

Deephaven uses multiple properties files that work together in a hierarchy. The following table shows which file to use for different types of settings:

Setting TypeFileNotes
Customer-specific settingsiris-environment.propYour customizations go here. Persists through upgrades.
Core+ worker settingscoreplus-environment.propSettings specific to Core+ workers.
Service endpointsiris-endpoints.propDO NOT EDIT — auto-generated by installer.
Deephaven defaultsiris-defaults.propDO NOT EDIT — replaced on upgrade.
Core+ defaultscoreplus-defaults.propDO NOT EDIT — replaced on upgrade.

Important

Only edit iris-environment.prop (for Enterprise settings) or coreplus-environment.prop (for Core+ worker settings). Other files are either auto-generated or replaced during upgrades.

Common scenarios

Where do I set heap sizes?

For system processes (DIS, controller, dispatcher): Set in hostconfig using the EXTRA_ARGS variable.

For worker heap limits: Set RemoteQueryDispatcher.maxTotalQueryProcessorHeapMB and related properties in iris-environment.prop. See Worker heap size configuration.

Where do I configure LDAP?

Set LDAP properties in iris-environment.prop within the [service.name=authentication_server] stanza:

See Configuring users with LDAP for complete details.

Where do I configure CORS?

Set CORS properties in iris-environment.prop:

See CORS configuration for details.

Where do I change ports?

Don't. Service ports are defined in iris-endpoints.prop, which is auto-generated by the installer. Manual changes will be overwritten during the next upgrade. If you need to change ports, re-run the installer with the appropriate configuration.

Where do I set Core+ worker properties?

Set Core+ worker properties in coreplus-environment.prop. See Core+ properties below.

Prop file precedence

Properties files include other files and override settings in a specific order. Later files override earlier ones.

Enterprise processes

Settings in iris-environment.prop override those in iris-defaults.prop.

Core+ workers

Core+ workers use a separate property file chain:

Settings in coreplus-environment.prop override those in coreplus-defaults.prop, which override iris-defaults.prop.

Core+ properties

Core+ workers run using Deephaven Community Core embedded in Enterprise. They have their own property files with settings specific to Core+ behavior.

Core+ property files

FilePurpose
coreplus-common.propRoot file for Core+ workers. Includes other files.
coreplus-defaults.propDefault settings for Core+ workers. Replaced on upgrade.
coreplus-environment.propYour Core+ customizations. Persists through upgrades.

Key Core+ properties

The following properties are specific to Core+ workers or have different defaults than Enterprise:

PropertyDefaultDescription
SessionMonitor.noSessionsTimeoutMillis3000Terminate worker after losing all sessions (ms).
http.session.durationMs75000Session token duration (75s, vs 5min in Enterprise).
AuthHandlersio.deephaven.enterprise.dnd.authentication.DheAuthenticationHandlerAuthentication handler class.
http.add.header.*.enabledvariesSecurity headers (X-Frame-Options, CSP, etc.).

Scoping by worker type

You can scope properties by worker type using the worker.type property:

Main properties files

iris-common.prop

The root properties file. It includes the other property files in a specific order:

iris-environment.prop

Contains customer-specific settings. This is the primary file for your customizations. Settings here override those in iris-defaults.prop.

Use scoped stanzas to apply settings to specific services:

iris-endpoints.prop

Defines server names, addresses, and ports for Deephaven services. This file is generated by the installer and should not be manually edited — changes are overwritten during upgrades.

iris-defaults.prop

Contains default settings for all Deephaven installations. This file is replaced during upgrades. Do not edit it directly; instead, override specific properties in iris-environment.prop.

Properties file locations

Properties files are stored in etcd and accessed via the Configuration Server. On a Deephaven server, any properties files on disk are just for reference and are not authoritative.

The set of files synchronized to clients using the Deephaven Updater includes a current snapshot of the properties files stored in etcd.

Deephaven properties file format

Deephaven properties files have several important extensions: the ability to include other properties files, scoped blocks, and finalization. See Deephaven properties files for complete details.

Changing a properties file

To change a properties file stored in etcd and managed by the Configuration Server, you must edit it directly with dhconfig properties edit or import the file after changing it with dhconfig properties import.

System properties

Properties can be passed to a Java process on the command line. These properties are set before any properties files are loaded. Some properties, such as those governing the actual start-up process, must be set this way:

  • the name of the properties file to load
  • scope defining properties — service.name, process.name
  • properties used to connect to the Configuration Server

Deephaven processes use a global Configuration object for properties. This Configuration includes all system properties, but system properties do not include the Configuration properties (e.g., System.getProperty("prop.name")).

See Java process launch for details about how Deephaven processes are started, including system properties, JVM arguments, and environment variables.