Skip to main content
Version: 3.0.0

Cluster Configuration Parameters

Ignite 3 cluster configuration is shared across the whole cluster. Regardless of which node you apply the configuration on, it will be propagated to all nodes in the cluster.

In Ignite 3, you can create and maintain configuration in either HOCON or JSON. The configuration file has a single root "node," called ignite. All configuration sections are children, grandchildren, etc., of that node.

Checking Cluster Configuration

To get cluster configuration, use the CLI tool.

  • Start the CLI tool and connect to any node in the cluster.
  • Run the cluster config show command.

The CLI tool will print the full cluster configuration. If you only need a part of the configuration, you can narrow down the search by providing the properties you need as the command argument, for example:

cluster config show ignite.transaction

Changing Cluster Configuration

Cluster configuration is changed from the CLI tool. You can update it both in the interactive (REPL) and non-interactive mode by passing a configuration file with the --file parameter.

note

Values set directly via the CLI take precedence over values set in the configuration file.

Update via REPL

Start the CLI tool and connect to any node in the cluster.

  • Run the cluster config update command and provide the updated configuration as the command argument, for example:
cluster config update ignite.system.idleSafeTimeSyncIntervalMillis=600
  • To update one or more parameters, pass the configuration file to the cluster config update command:
cluster config update --file ../ignite-config.conf
  • You also can update the configuration combining both approaches:
cluster config update --file ../ignite-config.conf ignite.system.idleSafeTimeSyncIntervalMillis=600

The updated configuration will automatically be applied across the cluster.

Update via Non-Interactive Mode

You can also modify cluster configuration via non-interactive CLI mode without starting the CLI tool first.

  • Pass the configuration file with the --file parameter:
bin/ignite3 cluster config update --file ../ignite-config.conf

The updated configuration will automatically be applied across the cluster.

Exporting Cluster Configuration

If you need to export cluster configuration to file, use the following command:

bin/ignite3 cluster config show > cluster-config.txt

Configuration Parameters

Event Log Configuration

{
"ignite" : {
"eventlog" : {
"channels" : [ ],
"sinks" : [ ]
}
}
}
PropertyDefaultDescriptionChangeableRequires RestartAcceptable Values
channelsA named list of event log channels.YesNoValid channels
sinksA named list of event log sinks.YesNoValid sinks

Garbage Collection Configuration

{
"ignite" : {
"gc" : {
"batchSize" : 5,
"lowWatermark" : {
"dataAvailabilityTimeMillis" : 600000,
"updateIntervalMillis" : 300000
},
"threads" : 16
}
}
}
PropertyDefaultDescriptionChangeableRequires RestartAcceptable Values
batchSize5The number of entries to be removed by the garbage collection batch for each partitionYesNo0 - inf
lowWatermark.dataAvailabilityTimeMillis600000The duration the outdated versions are available for, in milliseconds.YesNo1000 - inf
lowWatermark.updateIntervalMillis300000The interval of the low watermark updates.YesNo0 - inf
threadsRuntime.getRuntime().availableProcessors()The number of threads used by the garbage collector.YesYes1 - inf

System Configuration

{
"ignite" : {
"system" : {
"idleSafeTimeSyncIntervalMillis" : 500
}
}
}
PropertyDefaultDescriptionChangeableRequires RestartAcceptable Values
idleSafeTimeSyncIntervalMillis500Period (in milliseconds) used to determine how often to issue time sync commands when Metastorage is idle (no Writes are issued). Should not exceed schemaSync.delayDurationMillis. The optimal value is schemaSync.delayDurationMillis / 2.YesNo (becomes effective on Metastorage leader reelection)1 - inf

Metrics Configuration

{
"ignite" : {
"metrics" : {
"exporters" : [ ]
}
}
}
PropertyDefaultDescriptionChangeableRequires RestartAcceptable Values
exportersThe list of metric exporters currently used.YesNoValid exporters

Replication Configuration

{
"ignite" : {
"replication" : {
"idleSafeTimePropagationDurationMillis" : 1000,
"leaseAgreementAcceptanceTimeLimitMillis" : 120000,
"leaseExpirationIntervalMillis" : 5000,
"rpcTimeoutMillis" : 60000,
"batchSizeBytes" : 8192
}
}
}
PropertyDefaultDescriptionChangeableRequires RestartAcceptable Values
idleSafeTimePropagationDurationMillis1000Interval between Partition Safe Time updates.NoN/A1 - inf
leaseAgreementAcceptanceTimeLimitMillis120000The maximum duration of an election for a new partition leaseholder, in milliseconds.YesN/A5000 - inf
leaseExpirationIntervalMillis5000The duration of a single lease.YesN/A2000 - 120000
rpcTimeoutMillis60000Replication request processing timeout.YesNo0 - inf
batchSizeBytes8192Batch length (in bytes) to be written into physical storage. Used to limit the size of an atomical Write.YesNo1 - Integer.MAX_VALUE

Schema Sync Configuration

{
"ignite" : {
"schemaSync" : {
"delayDurationMillis" : 100,
"maxClockSkewMillis" : 500
}
}
}
PropertyDefaultDescriptionChangeableRequires RestartAcceptable Values
delayDurationMillis100The delay after which a schema update becomes active. Should exceed the typical time to deliver a schema update to all cluster nodes, otherwise delays in handling operations are possible. Should not be less than system.idleSafeTimeSyncIntervalMillis. The optimal value is system.idleSafeTimeSyncIntervalMillis * 2.NoN/A1 - inf
maxClockSkewMillis500Maximum physical clock skew (ms) tolerated by the cluster. If the difference between physical clocks of two nodes in the cluster exceeds this value, the cluster might demonstrate abnormal behavior.NoN/A0 - inf

Security Configuration

{
"ignite" : {
"security" : {
"authentication" : {
"providers" : [ {
"name" : "default",
"type" : "basic",
"users" : [ {
"password" : "********",
"username" : "ignite",
"displayName" : "ignite"
}]
} ]
}
}
}
PropertyDefaultDescriptionChangeableRequires RestartAcceptable Values
Authentication parameters
providers.namedefaultThe name of the authentication provider.YesNoA valid string
providers.typebasicThe authentication provider type.YesNobasic, ldap
providers.usersThe list of users registered with the specific provider.
providers.users.displayNameigniteCase sensitive user name.NoN/AA valid username
providers.users.password********User password.YesNoA valid password
providers.users.usernameigniteCase-insensitive user name.YesNoA valid user name
Authorization parameters

SQL Configuration

{
"ignite" : {
"sql" : {
"planner" : {
"estimatedNumberOfQueries" : 1024,
"maxPlanningTimeMillis" : 15000
}
}
}
}
PropertyDefaultDescriptionChangeableRequires RestartAcceptable Values
planner.estimatedNumberOfQueries1024The estimated number of unique queries that are planned to be executed in the cluster in a certain period of time. Used to optimize internal caches and processes. Optional.YesYes0 - Integer.MAX_VALUE
planner.maxPlanningTimeMillis15000Query planning timeout in milliseconds. Plan optimization process stops when the timeout is reached. "0" means no timeout.YesYes0 - Long.MAX_VALUE

Transactions Configuration

{
"ignite" : {
"transaction" : {
"readOnlyTimeoutMillis" : 600000,
"readWriteTimeoutMillis" : 30000
}
}
}
PropertyDefaultDescriptionChangeableRequires RestartAcceptable Values
readOnlyTimeoutMillis600000Timeout for read-only transactions. It defines how long the transaction holds acquired resources on participating nodes. If no timeout is specified, or it is set to 0, a default value of 10 minutes is applied. The transaction is guaranteed to remain active until the timeout expires. Once the timeout is reached, the transaction is aborted but may persist briefly beyond the timeout while corresponding resources are cleaned up. Use instead of deprecated readOnlyTimeout.YesNo1 - inf
readWriteTimeoutMillis30000Timeout for read-write transactions. It defines how long the transaction holds acquired resources on participating nodes. If no timeout is specified, or it is set to 0, a default value of 30 seconds is applied. The transaction is guaranteed to remain active until the timeout expires. Once the timeout is reached, the transaction is aborted but may persist briefly beyond the timeout while corresponding resources are cleaned up. Use instead of deprecated readWriteTimeout.YesNo1 - inf

System Configuration

This section describes internal properties, which are used by a number of Ignite components. Although you can edit these properties in the same way you edit all others by using the node config update CLI command, we suggest that you discuss the proposed changes with the Ignite support team. The properties can apply to the cluster as a whole or to a specific node.

note

Note that the property names are in camelCase.

{
"ignite" : {
"system" : {
"cmgPath" : "",
"metastoragePath" : "",
"partitionsBasePath" : "",
"partitionsLogPath" : "",
"properties":[]
}
}
}
PropertyDefaultDescriptionChangeableRequires RestartAcceptable Values
system.cmgPathThe path the cluster management group information is stored to. By default, data is stored in {IGNITE_HOME}/work/cmg.YesYesValid absolute path.
system.metastoragePathThe path the cluster meta information is stored to. By default, data is stored in {IGNITE_HOME}/work/metastorage.YesYesValid absolute path.
system.partitionsBasePathThe path data partitions are saved to. By default, partitions are stored in {IGNITE_HOME}/work/partitions.YesYesValid absolute path.
system.partitionsLogPathThe path RAFT log the partitions are stored at. By default, this log is stored in {system.partitionsBasePath}/log.YesYesValid absolute path.
system.propertiesSystem properties used by the Ignite components.YesYesAn array of properties.