GridGain Developers Hub

Node Configuration Parameters

Node configuration is individual for each node and is not shared across the whole cluster.

In GridGain 9, 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.

Setting Initial Node Configuration

GridGain node configuration is separated between two sections.

  • When node starts, it reads the contents of the {GRIDGAIN_HOME}/etc/vars.env file to set baseline node properties. Based on the contents of this file, node name is set, folders to store data are designated and JVM is configured. This configuration can only be changed by modifying the vars.env file and restarting the node.

  • Once node is started, it reads the contents of the {GRIDGAIN_HOME}/etc/gridgain-config.conf file to set node properties. This configuration can be modified via CLI tool as described below.

Checking Node Configuration

To get node configuration, use the CLI tool.

  • Start the CLI tool and connect to the node.

  • Run the node config show command.

The CLI tool will print the full node 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:

node config show ignite.clientConnector

Changing Node Configuration

Node 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.

Update via REPL:

  • Start the CLI tool and connect to the node. This becomes the "default" node for subsequent CL commands.

  • To update the default node’s configuration, run the node config update command and provide the update as the command argument, for example:

    node config update ignite.clientConnector.connectTimeoutMillis=10000
  • To update the configuration of a node other than the default one, run the node config update command with the target node explicitly specified. For example, for node named node1:

    node config update -n node1 ignite.nodeAttributes.nodeAttributes.clientConnector="10900"
  • To update one or more parameters, pass the configuration file to the node config update command:

    node config update --file ../gridgain-config.conf
  • You also can update the configuration combining both approaches:

    node config update --file ../gridgain-config.conf ignite.system.idleSafeTimeSyncIntervalMillis=600
  • Restart the node to apply the configuration changes.

Update via Non-Interactive Mode

You also can update the configuration without starting the CLI.

  • Pass the configuration file with the --file parameter:

    bin/gridgain9 node config update --file ../gridgain-config.conf
  • Restart the node to apply the configuration changes.

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

Exporting Node Configuration

If you need to export node configuration to a HOCON-formatted file, use the following command:

bin/gridgain9 node config show > node-config.conf

Configuration Parameters

Client Connector Configuration

{
  "ignite": {
    "clientConnector": {
      "connectTimeoutMillis": 10000,
      "idleTimeoutMillis": 0,
      "listenAddresses": [],
      "metricsEnabled": true,
      "port": 10800,
      "sendServerExceptionStackTraceToClient": false,
      "ssl": {
        "ciphers": "",
        "clientAuth": "none",
        "enabled": false,
        "keyStore": {
          "password": "********",
          "path": "",
          "type": "PKCS12"
        },
        "trustStore": {
          "password": "********",
          "path": "",
          "type": "PKCS12"
        }
      }
    }
  }
}

See the Clients section for more information on configuring the client connector.

Compute Configuration

{
  "ignite" : {
    "compute" : {
      "queueMaxSize" : 2147483647,
      "statesLifetimeMillis" : 60000,
      "threadPoolSize" : 10
    }
  }
}
Property Default Description Changeable Requires Restart Acceptable Values

queueMaxSize

2147483647

Maximum number of compute tasks in queue.

Yes

Yes

1 - Integer.MAX_VALUE

statesLifetimeMillis

60000

The lifetime of job states after the job finishes, in milliseconds.

Yes

Yes

0 - inf

threadPoolSize

10

The number of threads available to compute jobs.

Yes

Yes

1 - Integer.MAX_VALUE

Code Deployment Configuration

{
  "ignite" : {
    "deployment" : {
      "location" : "deployment"
    }
  }
}
Property Default Description Changeable Requires Restart Acceptable Values

location

deployment

Relative path to folder in the working directory. All deployment units content will be stored there.

Yes

No

A valid path

Failure Handler Configuration

{
  "ignite" : {
    "failureHandler": {
      "dumpThreadsOnFailure" : true,
      "dumpThreadsThrottlingTimeoutMillis" : 10000,
      "handler" : {
        "ignoredFailureTypes" : [
          "systemWorkerBlocked", "systemCriticalOperationTimeout"
        ],
        "type" : "noop"
      },
      "oomBufferSizeBytes" : 16384
    }
  }
}
Property Default Description Changeable Requires Restart Acceptable Values

dumpThreadsOnFailure

true

The number of items that can be expired at once.

Yes

Yes

true, false

dumpThreadsThrottlingTimeoutMillis

10000

Throttling timeout for thread dump generation during failure handling, in milliseconds.

Yes

Yes

1 - inf

handler.ignoredFailureTypes

[systemWorkerBlocked, systemCriticalOperationTimeout]

Types of failures that will be ignored. Possible values:

  • systemWorkerTermination - system worker thread was unexpectedly terminated;

  • systemWorkerBlocked - system worker thread has not updated its heartbeat for longer than the configured threshold;

  • criticalError - an unrecoverable error that renders the system inoperable;

  • systemCriticalOperationTimeout - system-critical operation has exceeded its allowed execution time.

Yes

Yes

systemWorkerTermination, systemWorkerBlocked, criticalError, systemCriticalOperationTimeout

handler.type

noop

Failure handler configuration type. Possible values:

  • noop - this mode ignores all failures and is useful for tests and debugging, when you don’t want any automated shutdown or halt behavior;

  • stop - handler will stop node in case of critical error using provided NodeStopper;

  • - stopOrHalt - first attempts to stop the node if tryStop set to true within the configured timeout. If the node cannot be stopped in time or tryStop is false, it forcibly terminates the JVM process via Runtime.getRuntime().halt().

Yes

Yes

noop, stop, stopOrHalt

oomBufferSizeBytes

16384

Amount of memory reserved in the heap at node start, in bytes.

Yes

Yes

1 - inf

Network Configuration

In GridGain 9, you can choose between two node discovery types. With STATIC type, you manually specify the node addresses, while MULTICAST type automatically detects nodes on your network, making setup simpler.

  • Example configuration with a STATIC node finder:

    {
      "ignite": {
        "network": {
          "fileTransfer": {
            "chunkSizeBytes": 1048576,
            "maxConcurrentRequests": 4,
            "responseTimeoutMillis": 10000,
            "threadPoolSize": 8
          },
          "inbound": {
            "soBacklog": 128,
            "soKeepAlive": true,
            "soLinger": 0,
            "soReuseAddr": true,
            "tcpNoDelay": true
          },
          "listenAddresses": [],
          "membership": {
            "failurePingIntervalMillis": 1000,
            "membershipSyncIntervalMillis": 30000,
            "scaleCube": {
              "failurePingRequestMembers": 3,
              "gossipIntervalMillis": 200,
              "gossipRepeatMult": 3,
              "membershipSuspicionMultiplier": 5,
              "metadataTimeoutMillis": 3000
            }
          },
          "nodeFinder": {
            "netClusterNodes": [
              "localhost:3344"
            ],
            "type": "STATIC"
          },
          "outbound": {
            "soKeepAlive": true,
            "soLinger": 0,
            "tcpNoDelay": true
          },
          "port": 3344,
          "shutdownQuietPeriodMillis": 0,
          "shutdownTimeoutMillis": 15000,
          "ssl": {
            "ciphers": "",
            "clientAuth": "none",
            "enabled": false,
            "keyStore": {
              "password": "********",
              "path": "",
              "type": "PKCS12"
            },
            "trustStore": {
              "password": "********",
              "path": "",
              "type": "PKCS12"
            }
          }
        }
      }
    }
  • To switch to a MULTICAST node finder, update the nodeFinder section in your configuration file to the following:

    {
      "ignite" : {
        "network": {
          "nodeFinder": {
            "type": "MULTICAST",
            "group": "239.192.0.0",
            "port": 47401,
            "resultWaitTimeMillis": 1000,
            "ttl": -1
          }
        }
      }
    }
Property Default Description Changeable Requires Restart Acceptable Values

fileTransfer

File transfer configuration.

fileTransfer.chunkSizeBytes

1048576

Chunk size in bytes.

Yes

Yes

1 - Integer.MAX_VALUE

fileTransfer.maxConcurrentRequests

4

Maximum number of concurrent requests.

Yes

Yes

1 - Integer.MAX_VALUE

fileTransfer.responseTimeoutMillis

10000

Node response timeout during file transfer.

Yes

Yes

0 - inf

fileTransfer.threadPoolSize

8

File sender thread pool size.

Yes

Yes

1 - Integer.MAX_VALUE

inbound

Server socket configuration. See TCP documentation and socket documentation for more information.

inbound.soBacklog

128

The size of the backlog.

Yes

Yes

0 - Integer.MAX_VALUE

inbound.soKeepAlive

true

Defines if the keep-alive packets are allowed.

Yes

Yes

true, false

inbound.soLinger

0

Defines how long the closed socket should linger.

Yes

Yes

0 - 65535

inbound.soReuseAddr

true

Defines if the address can be reused.

Yes

Yes

true, false

inbound.tcpNoDelay

true

Defines if the TCP no delay option is used.

Yes

Yes

true, false

listenAddresses

List of addresses (IPs or hostnames) to listen on. If empty, listens on all interfaces. Currently, only a single address is supported. This limitation will be lifted in a future update.

Yes

Yes

A list of valid addresses separated by comma

membership

Node membership configuration.

membership.failurePingIntervalMillis

1000

Failure detector ping interval.

Yes

Yes

0 - inf

membership.membershipSyncIntervalMillis

30000

Periodic membership data synchronization interval.

Yes

Yes

0 - inf

membership.scaleCube

ScaleCube-specific configuration.

scaleCube.failurePingRequestMembers

3

Number of members that are randomly selected by a cluster node for an indirect ping request.

Yes

Yes

1 - inf

scaleCube.gossipIntervalMillis

200

Gossip spreading interval.

Yes

Yes

1 - inf

scaleCube.gossipRepeatMult

3

Gossip repeat multiplier.

Yes

Yes

1 - inf

scaleCube.membershipSuspicionMultiplier

5

The multiplier that is used to calculate the timeout after which the node is considered dead.

Yes

Yes

1 - inf

scaleCube.metadataTimeoutMillis

3000

The timeout on metadata update operation, in milliseconds.

Yes

Yes

1 - inf

nodeFinder

Configuration for how the node finds other nodes in the cluster.

nodeFinder.netClusterNodes

Addresses of all nodes in the cluster in the host:port format. Applicable when STATIC node finder type is used.

Yes

Yes

Addresses in a valid format

nodeFinder.type

STATIC

Node finder type. Use STATIC to manually configure node addresses. Use MULTICAST to automatically detect nodes on your network. When using this type, you must also specify a multicast group address.

Yes

Yes

STATIC

nodeFinder.group

239.192.0.0

The multicast group address for node discovery.

Yes

Yes

Multicast address in a valid format

nodeFinder.port

47401

The port used for multicast.

Yes

Yes

0 - 65535

nodeFinder.resultWaitTimeMillis

1000

The time in milliseconds a node waits for responses after a discovery request.

Yes

Yes

1 - inf

nodeFinder.ttl

-1

Sets the maximum number of network hops for multicast packets. By default is set to -1 and uses the default system TTL.

Yes

Yes

-1 - 255

outbound

Outbound request configuration.

outbound.soKeepAlive

true

Defines if the keep-alive packets are allowed.

Yes

Yes

true, false

outbound.soLinger

0

Defines how long the closed socket should linger.

Yes

Yes

0 - 65535

outbound.tcpNoDelay

true

Defines if the TCP no delay option is used.

Yes

Yes

true, false

port

3344

TCP port used by cluster nodes to communicate with each other.

Yes

Yes

A valid port number

shutdownQuietPeriodMillis

0

The period during node shutdown when GridGain ensures that no tasks are submitted for the before the node shuts itself down. If a task is submitted during this period, it is guaranteed to be accepted.

Yes

No

0 - inf

shutdownTimeoutMillis

15000

The maximum amount of time until the node is shut down regardless of if new network messages were submitted during shutdownQuietPeriodMillis.

Yes

No

0 - inf

ssl.ciphers

""

List of ciphers to enable, comma-separated. Empty for automatic cipher selection.

Yes

Yes

TLS_AES_256_GCM_SHA384, etc. (standard cipher ids)

ssl.clientAuth

Whether the SSL client authentication is enabled and whether it is mandatory.

Yes

Yes

non, optional, require

ssl.enabled

false

Defines if SSL is enabled for the node.

Yes

Yes

true, false

ssl.keyStore

SSL keystore configuration.

keyStore.password

**

Keystore password.

Yes

Yes

A valid password

keyStore.path

Path to the keystore.

Yes

Yes

A valid path

keyStore.type

PKCS12

Keystore type.

Yes

Yes

PKCS12, JKS

ssl.trustStore

SSL trustsore configuration.

trustStore.password

**

Truststore password.

Yes

Yes

A valid password

trustStore.path

Path to the truststore.

Yes

Yes

A valid path

trustStore.type

PKCS12

Truststore type.

Yes

Yes

PKCS12, JKS

Node Attributes

{
  "ignite" : {
    "nodeAttributes" : {
      "nodeAttributes" : { }
    }
  }
}
Property Default Description Changeable Requires Restart Acceptable Values

nodeAttributes

A collection of node attributes used for dynamically distributing data only to those nodes that have the specified attribute values.

Yes

Yes

A JSON-formatted object

Point-in-Time Recovery

{
  "ignite" : {
    "pitr" : {
      "threadPoolSize" : 20
    }
  }
}
Property Default Description Changeable Requires Restart Acceptable Values

threadPoolSize

20

The number of threads dedicated to point-in-time recovery during data restoration.

Yes

Yes

0 - inf

RAFT Configuration

{
  "ignite" : {
    "raft" : {
        "disruptor": {
            "logManagerStripes" : 4,
            "queueSize" : 16384,
            "stripes" : 10
        },
        "fsync" : false,
        "installSnapshotTimeoutMillis" : 2147483647,
        "logYieldStrategy" : false,
        "maxInflightOverflowRate" : 1.3,
        "responseTimeoutMillis" : 3000,
        "retryDelayMillis" : 200,
        "retryTimeoutMillis" : 10000,
        "volatileRaft" : {
            "logStorageBudget" : {
                "name" : "unlimited"
            }
        }
    }
  }
}
Property Default Description Changeable Requires Restart Acceptable Values

disruptor.logManagerStripes

4

The number of disruptors for RAFT log manager.

Yes

Yes

1 - Integer.MAX_VALUE

disruptor.queueSize

16384

The maximum size of a queue for disruptors.

Yes

Yes

1 - Integer.MAX_VALUE

disruptor.stripes

10

The number of disruptor that handle the RAFT server.

Yes

Yes

1 - Integer.MAX_VALUE

fsync

false

Specifies whether fsync is used to safely write Raft log entries to disk on table partition groups before confirming replication. If set to false, user data may be lost in the event of an OS crash. However, a GridGain application crash will not cause data loss.

Yes

Yes

true, false

installSnapshotTimeoutMillis

2147483647

The maximum period allowed for transferring a RAFT snapshot to a recipient and installing it.

Yes

Yes

1 - inf

logYieldStrategy

false

If true, the non-blocking strategy is used in the Disruptor of log manager.

Yes

Yes

true, false

maxInflightOverflowRate

1.3

Maximum percent of inflights overflow rate. Used for partitions throttling. Default value 1.3 allows 30% overflow.

Yes

Yes

1.0 - 2.0

responseTimeoutMillis

3000

Period for which the RAFT client will try to receive a response from a remote peer.

Yes

No

0 - inf

retryDelayMillis

200

Delay between re-sends of a failed request by the RAFT client.

Yes

No

0 - inf

retryTimeoutMillis

10000

Period for which the RAFT client will try to receive a successful response from a remote peer.

Yes

No

0 - inf

volatileRaft.logStorageBudget.name

unlimited

The name of the log storage budget used by the node.

Yes

No, but the new values are only applied to new partitions

unlimited, entry-count

REST Configuration

{
  "ignite" : {
    "rest" : {
      "dualProtocol" : false,
      "httpToHttpsRedirection" : false,
      "port" : 10300,
      "ssl" : {
        "ciphers" : "",
        "clientAuth" : "none",
        "enabled" : false,
        "keyStore" : {
          "password" : "********",
          "path" : "",
          "type" : "PKCS12"
        },
        "port" : 10400,
        "trustStore" : {
          "password" : "********",
          "path" : "",
          "type" : "PKCS12"
        }
      }
    }
  }
}
Property Default Description Changeable Requires Restart Acceptable Values

dualProtocol

false

Defines if both HTTP and HTTPS protocols are used by the endpoint.

Yes

Yes

true, false

httpToHttpsRedirection

false

Defines if requests to HTTP endpoint will be redirected to HTTPS.

Yes

Yes

true, false

port

10300

The port of the node’s REST endpoint.

Yes

Yes

A valid port

ssl.ciphers

Explicitly set node SSL cipher.

Yes

Yes

See acceptable values

ssl.clientAuth

Client authorization used by the node, if any.

Yes

Yes

non, optional, require

ssl.enabled

false

Defines if SSL is enabled for the node.

Yes

Yes

true, false

ssl.keyStore

SSL keystore configuration.

keyStore.password

**

Keystore password.

Yes

Yes

A valid password

keyStore.path

Path to the keystore.

Yes

Yes

A valid path

keyStore.type

PKCS12

Keystore type.

Yes

Yes

PKCS12, JKS

ssl.port

10400

Port used for SSL connections.

Yes

Yes

A valid port

ssl.trustStore

SSL trustsore configuration.

trustStore.password

**

Truststore password.

Yes

Yes

A valid password

trustStore.path

Path to the truststore.

Yes

Yes

A valid path

trustStore.type

PKCS12

Truststore type.

Yes

Yes

PKCS12, JKS

Snapshots Configuration

{
  "ignite": {
    "snapshot": {
      "diskBuffersCapacityBytes" : 67108864,
      "encryptionBuffersCapacityBytes" : 67108864,
      "snapshotChunkSizeBytes": 65536,
      "snapshotDiskBufferSizeBytes": 65536,
      "threadPoolSize": 20
    }
  }
}
Property Default Description Changeable Requires Restart Acceptable Values

diskBuffersCapacityBytes

67108864

The amount of off-heap space allocated to snapshotting process, in bytes.

Yes

Yes

1 - Integer.MAX_VALUE (Must be a multiple of 16.)

encryptionBuffersCapacityBytes

67108864

The amount of off-heap space allocated to snapshot compression process, in bytes.

Yes

Yes

1 - Integer.MAX_VALUE (Must be a multiple of 16.)

snapshotChunkSizeBytes

65536

The size of the chunk in bytes which will be used to process the snapshot content. Note, that when reading the snapshot, this property will not be used, since the size of the chunk with which it was written is saved in the snapshot metadata.

Yes

Yes

1 - Integer.MAX_VALUE (Must be a multiple of 16.)

snapshotDiskBufferSizeBytes

65536

The size of the buffer in bytes which will be used to write the snapshot content to disk. Use instead of snapshotFlushBufferSize

Yes

Yes

1 - Integer.MAX_VALUE (Must be a multiple of 16.)

threadPoolSize

20

Number of threads used by GridGain for IO operations when creating or restoring snapshots.

Yes

Yes

1 - Integer.MAX_VALUE

snapshotFlushBufferSize

65536

Deprecated Use snapshotDiskBufferSizeBytes instead. This property is obsolete and should not be used as it will not be supported in the future releases.

Yes

Yes

1 - Integer.MAX_VALUE (Must be a multiple of 16.)

SQL Configuration

{
  "ignite" : {
    "sql" : {
      "execution" : {
        "threadCount" : 4
      },
      "nodeMemoryQuota" : "60%",
      "offloadingDataDir" : "sql_offloading",
      "offloadingDataLimit" : "0g",
      "planner" : {
        "threadCount" : 4
      }
    }
  }
}
Property Default Description Changeable Requires Restart Acceptable Values

execution.threadCount

4

Number of threads for query execution.

Yes

Yes

1 - Integer.MAX_VALUE

nodeMemoryQuota

60%

Node-wide limit for memory to be used for SQL queries. A number with a dimension identifier:

  • % - percentage of the node’s heap memory

  • k - Kb

  • m - Mb

  • g - Gb

0 with any of the dimension identifiers turns the memory tracking off.

Yes

No

  • 0 -100%

  • 0 - 9223372036854775807k/m/g

offloadingDataDir

sql_offloading

Absolute or relative path to the directory SQL data will be offloaded to.

Yes

Yes

1 - Integer.MAX_VALUE

offloadingDataLimit

0g

Node-wide limit for the amount of data that can be offloaded to disk. A number with a dimension identifier:

  • % - percentage of the node’s heap memory

  • k - Kb

  • m - Mb

  • g - Gb

0 with any of the dimension identifiers removes the data limit for data offloaded to disk. Exceeding this limit will cause the SQL query ran out of memory: Offloading data limit was exceeded. error.

Yes

Yes

1 - Integer.MAX_VALUE

planner.threadCount

4

Number of threads for query planning.

Yes

Yes

1 - Integer.MAX_VALUE

Storage Configuration

GridGain Persistence is designed to provide a quick and responsive persistent storage. When using the persistent storage, GridGain stores all the data on disk, and loads as much data as it can into RAM for processing. When persistence is enabled, GrigGain stores each partition in a separate file on disk. In addition to data partitions, GridGain stores indexes and metadata.

Each GridGain storage engine can have several storage profiles.

{
  "ignite": {
    "storage": {
      "engines": {
        "aimem": {
          "pageSizeBytes": 16384
        },
        "aipersist": {
          "checkpoint": {
            "checkpointDelayMillis": 200,
            "checkpointThreads": 4,
            "compactionThreads": 4,
            "intervalDeviationPercent": 40,
            "intervalMillis": 180000,
            "logReadLockThresholdTimeoutMillis": 0,
            "readLockTimeoutMillis": 10000,
            "useAsyncFileIoFactory": true
          },
          "pageSizeBytes": 16384
        },
        "columnar": {
          "compressingConfiguration" : {
            "enableLz4Compression": true
          },
          "memtableConfiguration" : {
            "dataRegionSize": 2147483648,
            "memtableMaxSize": 67108864
          },
          "mergeTreeConfiguration": {
            "mergeTreeFanout": 4,
            "mergeTreeFirstLevelSize": 262144
          },
          "threadPoolConfiguration": {
            "threadPoolThreadCount": 16
          }
        },
        "rocksdb": {
          "flushDelayMillis": 100
        },
        "profiles": [
          {
            "engine": "aipersist",
            "name": "default",
            "replacementMode": "CLOCK",
            "sizeBytes": -1
          },
          {
            "engine": "aimem",
            "name": "default_aimem",
            "emptyPagesPoolSize": 100,
            "eviction": {
              "batchSize": 200,
              "interval": 60000,
              "lwmThreshold": 1000,
              "lwmUpdateInterval": 60000,
              "mode": "DISABLED",
              "threshold": "90%"
            },
            "initSizeBytes": -1,
            "maxSizeBytes": -1
          },
          {
            "engine": "rocksdb",
            "name": "default_rocksdb",
            "sizeBytes": -1,
            "writeBufferSizeBytes": 67108864
          },
          {
            "engine" : "columnar",
            "name" : "default_columnar"
          }
        ]
      }
    }
  }
}
Property Default Description Changeable Requires Restart Acceptable Values

engines.aimem

Aimem configuration.

aimem.pageSizeBytes

16384

The size of pages in the storage, in bytes.

Yes

Yes

1024-16384

engines.aipersist

Aipersist configuration.

aipersist.checkpoint.checkpointDelayMillis

200

Delay before staring a checkpoint after receiving the command.

Yes

No

0 - inf

aipersist.checkpoint.checkpointThreads

4

Number of CPU threads dedicated to checkpointing.

Yes

Yes

1 - inf

aipersist.checkpoint.compactionThreads

4

Number of CPU threads dedicated to data compaction.

Yes

Yes

1 - inf

aipersist.checkpoint.intervalMillis

180000

Interval between checkpoints in milliseconds.

Yes

No

0 - inf

aipersist.checkpoint.intervalDeviationPercent

40

Jitter that will be added or subtracted from time period till next scheduled checkpoint (percentage).

Yes

No

0-100

aipersist.checkpoint.logReadLockThresholdTimeoutMillis

0

Threshold for logging long read locks, in milliseconds.

Yes

Yes

0 - inf

aipersist.checkpoint.readLockTimeoutMillis

10000

Timeout for checkpoint read lock acquisition, in milliseconds.

Yes

Yes

0 - inf

aipersist.checkpoint.useAsyncFileIoFactory

true

Define if GridGain uses asynchronous file I/O operations provider.

Yes

Yes

true, false

aipersist.pageSizeBytes

16384

The size of pages in the storage, in bytes.

No

N/A

1024-16384

engines.columnar

Columnar storage engine configuration.

columnar.compressingConfiguration.enableLz4Compression

true

Defines if Lz4 compression will be used on columnar storage.

Yes

Yes

true, false

columnar.memtableConfiguration.dataRegionSize

2147483648

Maximum size of all memory table buffers combined.

Yes

Yes

columnar.memtableConfiguration.memtableMaxSize

67108864

Maximum size of a single memory table.

Yes

Yes

columnar.mergeTreeConfiguration.mergeTreeFanout

4

The number of times by which the tree grows with each level.

Yes

Yes

columnar.mergeTreeConfiguration.mergeTreeFirstLevelSize

262144

The size of entries of the first level of merge tree.

Yes

Yes

columnar.threadPoolConfiguration.threadPoolThreadCount

10

Columnar thread-pool size.

Yes

Yes

engines.rocksdb

Rocksdb configuration.

rocksdb.flushDelayMillis

100

Delay before executing a flush triggered by RAFT.

Yes

Refreshed on engine registration

0 - inf

profiles

The list of available storage profiles.

engine

The storage engine.

No

N/A

aimem, aipersist, rocksdb

name

User-defined profile name.

No

N/A

A valid name

profiles.aipersist.replacementMode

CLOCK

Sets the page replacement algorithm.

Yes

Yes

CLOCK, RANDOM_LRU, SEGMENTED_LRU

profiles.aipersist.sizeBytes

-1

Memory (RAM) region size in bytes. When set to -1 will be computed automatically equal to 20% of the available memory.

Yes

Yes

Min 256Mb, max defined by the addressable memory limit of the OS, or -1.

profiles.aimem.initSizeBytes

-1

Initial memory region size in bytes, when the used memory size exceeds this value, new chunks of memory will be allocated. When set to -1 aimem.maxSizeBytes value will be used instead.

Yes

Yes

Min 256Mb, max defined by the addressable memory limit of the OS, or -1.

profiles.aimem.maxSizeBytes

-1

Maximum memory region size in bytes. When set to -1 will be computed automatically equal to 20% of the available memory.

Yes

Yes

Min 256Mb, max defined by the addressable memory limit of the OS, or -1.

profiles.aimem.eviction.mode

DISABLED

Eviction mode.

Yes

No

  • DISABLED - Eviction is disabled.

  • HISTORY_ONLY - Only historical versions of rows are evicted.

  • RANDOM - Historical versions of rows are evicted first, followed by the eviction of the most recent row versions, which are chosen randomly.

profiles.aimem.eviction.threshold

90%

Threshold for eviction initiation. A number with a dimension identifier:

  • % - percentage of aimem.maxSize

  • k - Kb

  • m - Mb

  • g - Gb

For instance, "90%" means that the page memory starts eviction only after 90% of the data region is occupied.

Yes

No

  • 0-100%

  • 0-9223372036854775807k/m/g

profiles.aimem.eviction.lwmUpdateInterval

60000

Frequency of the low watermark update in milliseconds.

Yes

No

1 - inf

profiles.aimem.eviction.interval

60000

Interval between the data eviction iterations.

Yes

No

1 - inf

profiles.aimem.eviction.lwmThreshold

1000

If the low watermark is less than evictionLwmThreshold from the current timestamp, the row eviction is triggered.

Yes

No

0 - inf

profiles.aimem.eviction.batchSize

60000

Eviction batch size in rows.

Yes

No

1 - inf

profiles.rocksdb.writeBufferSizeBytes

67108864

Size of rocksdb write buffer in bytes.

Yes

Yes

Min 1, max defined by the addressable memory limit of the OS.

profiles.rocksdb.sizeBytes

-1

Size of the rocksdb offheap cache in bytes. When set to -1, will be computed automatically equal to 20% of the available memory.

Yes

Yes

Min 1, max defined by the addressable memory limit of the OS, or -1.

System Configuration

This section describes internal properties, which are used by a number of GridGain components.

Although you can edit these properties in the same way you edit all others - using the node config update CLI command - we suggest that you discuss the proposed changes with the GridGain support team. The properties can apply to a specific node - see below - or to the cluster as a whole.

{
  "ignite" : {
    "system" : {
      "cmgPath" : "",
      "criticalWorkers" : {
        "livenessCheckIntervalMillis" : 2000,
        "maxAllowedLagMillis" : 5000,
        "nettyThreadsHeartbeatIntervalMillis" : 1000
      },
      "metastoragePath" : "",
      "partitionsBasePath" : "",
      "partitionsLogPath" : "",
      "properties":{}
    }
  }
}
Property Description Default Changeable Requires Restart Acceptable Values

system.cmgPath

The path the cluster management group information is stored to. Only applicable if the node is part of CMG. By default, data is stored in {GRIDGAIN_HOME}/work/cmg. It is recommended to only change this path on an empty node.

Yes

Yes

Valid absolute path.

system.criticalWorkers.livenessCheckIntervalMillis

Interval between liveness checks (ms) performed by the critical worker infrastructure.

2000

Yes

Yes

1 - inf (not greater than half of maxAllowedLagMillis)

system.criticalWorkers.maxAllowedLagMillis

Maximum allowed delay from the last heartbeat to the current time (ms). If exceeded, the critical worker is considered to be blocked.

5000

Yes

No

1 - inf (should be at least twice livenessCheckIntervalMillis)

system.criticalWorkers.nettyThreadsHeartbeatIntervalMillis

Interval between heartbeats used to update the Netty threads' heartbeat timestamps (ms).

1000

Yes

Yes

1 - inf

system.metastoragePath

The path the cluster meta information is stored to. Only applicable if the node is part of the metastorage group. By default, data is stored in {GRIDGAIN_HOME}/work/metastorage. It is recommended to only change this path on an empty node.

Yes

Yes

Valid absolute path.

system.partitionsBasePath

The path data partitions are saved to on the node. By default, partitions are stored in {GRIDGAIN_HOME}/work/partitions. It is recommended to only change this path on an empty node.

Yes

Yes

Valid absolute path.

system.partitionsLogPath

The path RAFT log the partitions are stored at. By default, this log is stored in {system.partitionsBasePath}/log. It is recommended to only change this path on an empty node.

Yes

Yes

Valid absolute path.

system.properties

System properties used by the GridGain components.

Yes

Yes

A map of properties.

system.cmgPath

The path the cluster management group information is stored to. Only applicable if the node is part of CMG. By default, data is stored in {GRIDGAIN_HOME}/work/cmg. It is recommended to only change this path on an empty node.

Yes

Yes

Valid absolute path.

system.metastoragePath

The path the cluster meta information is stored to. Only applicable if the node is part of the metastorage group. By default, data is stored in {GRIDGAIN_HOME}/work/metastorage. It is recommended to only change this path on an empty node.

Yes

Yes

Valid absolute path.

system.partitionsBasePath

The path data partitions are saved to on the node. By default, partitions are stored in {GRIDGAIN_HOME}/work/partitions. It is recommended to only change this path on an empty node.

Yes

Yes

Valid absolute path.

system.partitionsLogPath

The path RAFT log the partitions are stored at. By default, this log is stored in {system.partitionsBasePath}/log. It is recommended to only change this path on an empty node.

Yes

Yes

Valid absolute path.

system.properties

System properties used by the Ignite components.

Yes

Yes

An named list of properties.

Table Configuration

{
  "ignite" : {
    "table": {
      "eviction" : {
        "checkInterval" : 60000
      },
      "expiration" : {
        "batchSize" : 1000,
        "checkInterval" : 30000,
        "parallelismLevel" : 1
      }
    }
  }
}
Property Default Description Changeable Requires Restart Acceptable Values

eviction.checkInterval

60000

How often the data is checked for eviction threshold, in milliseconds.

Yes

Yes

1 - inf

expiration.batchSize

1000

The number of items that can be expired at once.

Yes

Yes

1 - inf

expiration.checkInterval

30000

How often the data is checked for expiration, in milliseconds.

Yes

Yes

1 - inf

expiration.parallelismLevel

1

The number of threads used for data expiry.

Yes

Yes

1 - Integer.MAX_VALUE