Skip to content

System Configuration

Lauritz Thamsen edited this page Jul 30, 2014 · 4 revisions

Implementation

AURA uses Typesafe's Config library and the HOCON syntax for configuration.

Configuration Hierarchy

Immutable configuration objects are created at start up time and passed to the various system components. A configuration object is assembled through a hierarchical merge and subsequent resolve of the following configuration layers (higher number in the list means higher priority):

N Name What Description
1 reference.${type}.conf CP resource Default values.
2 runtime values dynamic Current Runtime values.
3 profile.${aura.profile}.conf CP resource A config profile for testing (optional).
4 ${aura.path.config}/aura.${type}.conf File User-defined values.
5 system properties Dynamic Current System properties.

Configuration Types

The ${type} parameter referred in the name column above identifies the type of configuration to be loaded. Possible type options are:

Type Value Used By
tm TaskManager instances.
wm WorkloadManager instances.
client AuraClient instances.
simulator LocalClusterSimulator instances.

The configuration options for a particular configuration type can be found in the corresponding reference.${type}.conf classpath resource. By default, all reference resources include a common configuration resource located named reference.conf and assign the entries under the default.* namespace to a configuration key coinciding with the current type (e.g. wm.io will inherit the default.io configuration).

Configuration Structure

The following table describes the main configuration namespaces used in the system. Paths starting with ${type} exist for the tm, wm, and client configuration types.

Key Description
${type}.io.local Local buffer and channel configuration.
${type}.io.tcp TCP packats configuration.
${type}.io.netty Netty manager configuration.
${type}.io.rpc RPC servers configuration.
${type}.io.event Kryo events.
${type}.io.connection Channel connection configuration.
${type}.machine Machine descriptor for the current instance.
zookeeper Zookeper server configuration.
simulator Configuration for the cluster simulator.

Configuration Profiles

While reference.${type}.conf files can be used to override configuration parameters on a particular development or production environment, configuration profiles can be used to additionally load a resource named profile.${aura.profile}.conf from the aura-core module.

This can be useful when running integration tests on a CI server with limited resources. To use a configuration profile, set the aura.profile System property when you run the tests:

mvn -Daura.profile=travis test

Additionally, profile.user.conf is ignored by git, so you can use e.g. the profile.default.conf as a starting point for your own configuration by copying it to the same location.

Clone this wiki locally