Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 

Configuring the config.ini File

 

The config.ini file contains information about each node involved in the SSR cluster. This includes configuration parameters for data nodes and connections between them. Use the config.ini file to distribute this information to all processes participating in the cluster. The config.ini file is stored in the /opt/JNPRhadm directory.

For more information about the recommended settings of the config.ini file, consult the database vendor documentation.

[tcp default] Section

[tcp default] Section

The [tcp default] section (Table 131) of config.ini specifies the buffer size required to send and receive data between data nodes.

Table 131: config.ini [tcp default] Fields

Parameter

Function

ReceiveBufferMemory

Specifies the size of the buffer used when receiving data from the TCP/IP socket.

You can set a value from 64 KB through 4 GB.

Default value is 2 MB.

SendBufferMemory

Specifies the size of the buffer used when sending data to the TCP/IP socket.

You can set a value from 64 KB through 4 GB.

Default value is 2 MB.

[ndbd default] Section

[ndbd default] Section

The [ndbd default] section (Table 132) of config.ini specifies parameters required to configure the behavior of data nodes.

Table 132: config.ini [ndbd default] Fields

Parameter

Function

ConnectCheckIntervalDelay

Specifies the interval for checking the connection between data nodes.

A data node that fails to respond within an interval of ConnectCheckIntervalDelay seconds is considered suspect, and is considered dead after two such intervals.

You can set a value from 0 through 4,000,000,000 milliseconds.

Default value is 1500 milliseconds.

Note: The ConnectCheckIntervalDelay parameter helps protect against intermittent spikes of latency, which could cause nodes to fail due to heartbeat timeouts. This feature checks all nodes immediately after the first heartbeat timeout occurs and provides more efficient behavior in detecting the failed nodes.

DataMemory

Defines the amount of space, in bytes, available for storing database records. The entire amount specified by this value is allocated in memory, so it is extremely important that the machine have sufficient physical memory to accommodate it.

The minimum space is 1 MB and there is no maximum size. However, the maximum size has to be adapted so that the process does not start swapping when the limit is reached. This limit is determined by the amount of physical RAM available on the machine and by the amount of memory that the operating system may commit to any one process.

Default value is 80 MB.

Diskless

Enables or disables the diskless feature. When enabled, the tables are not check pointed to disk and no logging occurs. The cluster online backup is disabled. In addition, a partial start of the cluster is not possible.

The diskless feature is disabled by default.

HeartbeatIntervalDbApi

Specifies the interval between the heartbeat signals sent to the MySQL server.

Each data node sends heartbeat signals to each MySQL server to ensure that they remain in contact. If a MySQL server fails to send a heartbeat signal within this interval, it is declared dead. In this case, all ongoing transactions are completed and all resources are released.

You can set a value from 100 through 4,000,000,000 milliseconds.

Default value is 1500 milliseconds.

HeartbeatIntervalDbDb

Specifies how often heartbeat signals are sent and how often to expect to receive them.

You can set a value from 10 through 4,000,000,000 milliseconds.

Default value is 1500 milliseconds.

LockExecuteThreadToCPU

Specifies the ID of the CPU assigned to handle the NDBCLUSTER execution thread.

You can set a value from 0 through 65,535.

Default value is 65,535.

LockPagesInMainMemory

Specifies whether to lock a process into memory and avoid any swapping to disk. This can be used to guarantee real-time characteristics of the cluster.

  • If set to 0, disables locking

  • If set to 1, performs locking after allocating memory for the process

  • If set to 2, performs locking before allocating memory for the process

Default value is 0.

MaxNoOfConcurrentOperations

Specifies the number of records that can be in an update phase or locked simultaneously.

You can set a value from 32 through 4,000,000,000.

Default value is 32,768.

MaxNoOfConcurrentTransactions

Specifies the number of parallel transactions possible in a node.

You can set a value from 32 through 4,000,000,000.

Default value is 4096.

MaxNoOfExecutionThreads

Specifies the number of local query handler (LQH) threads spawned by a multithreaded version of ndbd.

You can set a value from 2 through 8.

Default value is 2.

MaxNoOfLocalOperations

Specifies the number of records that can be in an update phase.

You can set a value from 32 through 4,000,000,000.

By default, this parameter is calculated as follows: 1.1 x MaxNoOfConcurrentOperations.

MaxStartFailRetries

Specifies the limit to the number of restart attempts by the data node in the event of a failure on startup.

You can set a value from 0 through 4,000,000,000.

Default value is 3.

NoOfFragmentLogFiles

Specifies the number of REDO log files for the node and the amount of space allocated to REDO logging.

You can set a value from 3 through 4,000,000,000.

Default value is 16.

Note: NoOfFragmentLogFiles must be set to 300 or higher to provide sufficient space for REDO logs.

NoOfReplicas

Defines the number of replicas for each table stored in the cluster, and specifies the size of node groups.

A node group is a set of nodes storing the same information.

You can set a value from 1 through 4.

Default value is 2.

RealTimeScheduler

Enables or disables real-time scheduling of NDBCLUSTER threads.

The RealTimeScheduler feature is disabled by default.

RedoBuffer

Sets the size of the buffer in which the REDO log is written.

You can set a value from 1 MB through 4 GB.

Default value is 32 MB.

StartFailRetryDelay

Specifies the number of seconds between restart attempts by the data node in the event of a failure on startup.

Default value is 0 (no delay).

Note: This parameter is ignored if StopOnError is disabled.

StartPartialTimeout

Specifies how long the cluster waits for all data nodes to come up before the cluster is initialized. This parameter is used to avoid a partial cluster startup, whenever possible.

You can set a value from 0 through 4,000,000,000 milliseconds.

Default value is 30,000 milliseconds.

Note: If StartPartialTimeout is set to 0, the cluster starts only if all the nodes are available.

This parameter is overridden during an initial start or restart of the cluster.

StartPartitionedTimeout

Specifies the wait time, in seconds, for the cluster to start after waiting for StartPartialTimeout milliseconds and the cluster is still in a partitioned state.

You can set a value from 0 through 4,000,000,000 milliseconds.

Default value is 60,000 milliseconds.

Note: If StartPartitionedTimeout is set to 0, the cluster waits indefinitely.

This parameter is overridden during an initial start or restart of the cluster.

StopOnError

Specifies whether an ndbd process should exit or perform an automatic restart when an error condition is encountered.

  • If set to 0, the ndbd process tries to start the data node after an exit due to an error condition.

  • If set to 1, the ndbd process exits when there is an error condition and must be restarted manually.

Default value is 0.

TimeBetweenGlobalCheckpoints

Specifies the interval between global checkpoints.

All transactions taking place within a given interval are put into a global checkpoint, which can be assumed as a set of committed transactions that has been flushed to disk.

You can set a value from 10 through 32,000 milliseconds.

Default value is 2000 milliseconds.

TimeBetweenLocalCheckpoints

Specifies the interval between local checkpoints.

Ensures that local checkpoints are not performed in a cluster where relatively few updates are taking place. In most clusters with high update rates, it is likely that a new local checkpoint is started immediately after the previous one is completed.

This parameter is specified as the base-2 logarithm of the number of 4-byte words.

You can set a value from 0 through 31.

Default value is 20.

TimeBetweenWatchDogCheck

Specifies the number of milliseconds between watchdog checks.

To prevent the main thread from getting stuck in an endless loop at some point, a watchdog thread checks the main thread. If the process remains in the same state after three checks, the watchdog thread terminates it.

You can set a value from 70 through 4,000,000,000 milliseconds.

Default value is 6000 milliseconds.

TotalSendBufferMemory

Specifies the total amount of memory to allocate to each node for which it is set for use among all configured transporters.

To be backward-compatible with existing configurations, this parameter takes as its default value the sum of the maximum send buffer sizes of all configured transporters, plus an additional 32 KB (one page) per transporter.

You can set a value from 256 KB through 429 MB.

TransactionDeadlockDetectionTimeout

Specifies the time that the transaction coordinator waits for another node to execute a query before the coordinator terminates the transaction. This parameter is important for handling node failures and detecting deadlocks.

You can set a value from 50 through 4,000,000,000 milliseconds.

Default value is 1200 milliseconds.

[ndbd] Section

[ndbd] Section

ndbd is the process that is used to handle all data in the tables by using the NDB Cluster storage engine. The [ndbd] section (Table 133) of config.ini specifies information that empowers a data node to handle the distribution of transactions, recover lost nodes, checkpoint committed transactions to disk, perform an online backup of transactions in real time, and perform other related tasks.

The preceding fields in the config.ini file are generated by the configure script.

Table 133: config.ini [ndbd] Fields

Parameter

Function

Hostname

Specifies the name of the host on which the data node is to reside.

NodeId

Specifies a unique node ID that is used as the address of the node to which or from which all internal messages of the cluster are sent or received. For data nodes, each data node in the cluster must have a unique identifier.

You can set a value from 1 through 48.

HeartBeatOrder

Specifies the order of heartbeat transmissions between data nodes.

Note: In a four-way cluster containing two pairs of mirrored NDB nodes in different data centers, HeartBeatOrder must be set appropriate to the installation, as described in the config.ini file, and the M nodes and D nodes must be restarted in succession.

A new setting for HeartBeatOrder may alleviate certain issues. This is not set by default; it must be configured manually.