Cari di MySQL 
    MySQL Manual
Daftar Isi
(Sebelumnya) 17.3. MySQL Cluster Configuration17.4. MySQL Cluster Programs (Berikutnya)

17.3.3. Overview of MySQL Cluster Configuration Parameters

The next four sections provide summary tables of MySQL Cluster configuration parameters used in the config.ini file to govern the cluster's functioning. Each table lists the parameters for one of the Cluster node process types (ndbd, ndb_mgmd, and mysqld), and includes the parameter's type as well as its default, minimum, and maximum values as applicable.

These tables also indicate what type of restart is required (node restart or system restart)-and whether the restart must be done with --initial-to change the value of a given configuration parameter.

When performing a node restart or an initial node restart, all of the cluster's data nodes must be restarted in turn (also referred to as a rolling restart). It is possible to update cluster configuration parameters marked as node online-that is, without shutting down the cluster-in this fashion. An initial node restart requires restarting each ndbd process with the --initial option.

A system restart requires a complete shutdown and restart of the entire cluster. An initial system restart requires taking a backup of the cluster, wiping the cluster file system after shutdown, and then restoring from the backup following the restart.

In any cluster restart, all of the cluster's management servers must be restarted for them to read the updated configuration parameter values.

Important

Values for numeric cluster parameters can generally be increased without any problems, although it is advisable to do so progressively, making such adjustments in relatively small increments. Many of these can be increased online, using a rolling restart.

However, decreasing the values of such parameters-whether this is done using a node restart, node initial restart, or even a complete system restart of the cluster-is not to be undertaken lightly; it is recommended that you do so only after careful planning and testing. This is especially true with regard to those parameters that relate to memory usage and disk space, such as MaxNoOfTables, MaxNoOfOrderedIndexes, and MaxNoOfUniqueHashIndexes. In addition, it is the generally the case that configuration parameters relating to memory and disk usage can be raised using a simple node restart, but they require an initial node restart to be lowered.

Because some of these parameters can be used for configuring more than one type of cluster node, they may appear in more than one of the tables.

Note

4294967039 often appears as a maximum value in these tables. This value is defined in the NDBCLUSTER sources as MAX_INT_RNIL and is equal to 0xFFFFFEFF, or 232 � 28 � 1.

17.3.3.1. MySQL Cluster Data Node Configuration Parameters

The summary table in this section provides information about parameters used in the [ndbd] or [ndbd default] sections of a config.ini file for configuring MySQL Cluster data nodes. For detailed descriptions and other additional information about each of these parameters, see Section 17.3.2.6, "Defining MySQL Cluster Data Nodes".

These parameters also apply to ndbmtd, the multi-threaded version of ndbd. For more information, see Section 17.4.3, "ndbmtd - The MySQL Cluster Data Node Daemon (Multi-Threaded)".

Restart types. Changes in MySQL Cluster configuration parameters do not take effect until the cluster is restarted. The type of restart required to change a given parameter is indicated in the summary table as follows:

For more information about restart types, see Section 17.3.3, "Overview of MySQL Cluster Configuration Parameters".

MySQL Cluster NDB 7.2 supports the addition of new data node groups online, to a running cluster. For more information, see Section 17.5.13, "Adding MySQL Cluster Data Nodes Online".

Table 17.1. Data Node Configuration Parameters

Parameter NameType or UnitsRestart TypeAs of Version ... And Later
Default Value
Minimum/Maximum or Permitted Values

Arbitration

enumerationNNDB 7.2.0
Default
Default, Disabled, WaitExternal

ArbitrationTimeout

millisecondsNNDB 7.2.0
7500
10 / 4G

BackupDataBufferSize

bytesNNDB 7.2.0
16M
0 / 4G

BackupDataDir

pathINNDB 7.2.0
FileSystemPath
...

BackupLogBufferSize

bytesNNDB 7.2.0
16M
0 / 4G

BackupMaxWriteSize

bytesNNDB 7.2.1
1M
2K / 4G

BackupMemory

bytesNNDB 7.2.0
32M
0 / 4G

BackupReportFrequency

secondsNNDB 7.2.0
0
0 / 4G

BackupWriteSize

bytesNNDB 7.2.0
256K
2K / 4G

BatchSizePerLocalScan

integerNNDB 7.2.1
256
1 / 992

BuildIndexThreads

numericSNDB 7.2.0
0
0 / 128

CompressedBackup

booleanNNDB 7.2.0
false
true, false

CompressedLCP

booleanNNDB 7.2.0
false
true, false

ConnectCheckIntervalDelay

stringNNDB 7.2.1
0
0 / 4G

CrashOnCorruptedTuple

booleanSNDB 7.2.1
true
true, false

DataDir

pathINNDB 7.2.0
.
...

DataMemory

bytesNNDB 7.2.0
80M
1M / 1024G

DictTrace

bytesNNDB 7.2.0
undefined
0 / 100

DiskCheckpointSpeed

bytesNNDB 7.2.0
10M
1M / 4G

DiskCheckpointSpeedInRestart

bytesNNDB 7.2.0
100M
1M / 4G

DiskIOThreadPool

threadsNNDB 7.2.0
2
0 / 4G

Diskless

true|false (1|0)ISNDB 7.2.0
false
true, false

DiskPageBufferMemory

bytesNNDB 7.2.0
64M
4M / 1T

DiskSyncSize

bytesNNDB 7.2.0
4M
32K / 4G

ExecuteOnComputer

nameSNDB 7.2.0
[none]
...

ExtraSendBufferMemory

bytesNNDB 7.2.0
0
0 / 32G

FileSystemPath

pathINNDB 7.2.0
DataDir
...

FileSystemPathDataFiles

filenameINNDB 7.2.0
[see text]
...

FileSystemPathDD

filenameINNDB 7.2.0
FileSystemPath
...

FileSystemPathUndoFiles

filenameINNDB 7.2.0
[see text]
...

FragmentLogFileSize

bytesINNDB 7.2.0
16M
4M / 1G

HeartbeatIntervalDbApi

millisecondsNNDB 7.2.0
1500
100 / 4G

HeartbeatIntervalDbDb

millisecondsNNDB 7.2.0
5000
10 / 4G

HeartbeatOrder

numericSNDB 7.2.0
0
0 / 65535

HostName

name or IP addressSNDB 7.2.0
localhost
...

Id

unsignedNNDB 7.2.0
[none]
1 / 48

IndexMemory

bytesNNDB 7.2.0
18M
1M / 1T

InitFragmentLogFiles

[see values]INNDB 7.2.0
SPARSE
SPARSE, FULL

InitialLogFileGroup

stringSNDB 7.2.0
[see text]
...

InitialNoOfOpenFiles

filesNNDB 7.2.0
27
20 / 4G

InitialTablespace

stringSNDB 7.2.0
[see text]
...

IOThreadPool

threadsNNDB 7.2.0
8
0 / 4G

LockExecuteThreadToCPU

CPU IDNNDB 7.2.0
64K
0 / 64K

LockMaintThreadsToCPU

CPU IDNNDB 7.2.0
[none]
0 / 64K

LockPagesInMainMemory

numericNNDB 7.2.0
0
0 / 2

LogLevelCheckpoint

log levelNNDB 7.2.0
0
0 / 15

LogLevelCongestion

levelrNNDB 7.2.0
0
0 / 15

LogLevelConnection

integerNNDB 7.2.0
0
0 / 15

LogLevelError

integerNNDB 7.2.0
0
0 / 15

LogLevelInfo

integerNNDB 7.2.0
0
0 / 15

LogLevelNodeRestart

integerNNDB 7.2.0
0
0 / 15

LogLevelShutdown

integerNNDB 7.2.0
0
0 / 15

LogLevelStartup

integerNNDB 7.2.0
1
0 / 15

LogLevelStatistic

integerNNDB 7.2.0
0
0 / 15

LongMessageBuffer

bytesNNDB 7.2.0
4M
512K / 4G

MaxAllocate

unsignedNNDB 7.2.0
32M
1M / 1G

MaxBufferedEpochs

epochsNNDB 7.2.0
100
0 / 100000

MaxDMLOperationsPerTransaction

operations (DML)NNDB 7.2.0
4294967295
32 / 4294967295

MaxLCPStartDelay

secondsNNDB 7.2.0
0
0 / 600

MaxNoOfAttributes

integerNNDB 7.2.0
1000
32 / 4G

MaxNoOfConcurrentIndexOperations

integerNNDB 7.2.0
8K
0 / 4G

MaxNoOfConcurrentOperations

integerNNDB 7.2.0
32K
32 / 4G

MaxNoOfConcurrentScans

integerNNDB 7.2.0
256
2 / 500

MaxNoOfConcurrentSubOperations

unsignedNNDB 7.2.0
256
0 / 4G

MaxNoOfConcurrentTransactions

integerSNDB 7.2.0
4096
32 / 4G

MaxNoOfFiredTriggers

integerNNDB 7.2.0
4000
0 / 4G

MaxNoOfLocalOperations

integerNNDB 7.2.0
UNDEFINED
32 / 4G

MaxNoOfLocalScans

integerNNDB 7.2.0
UNDEFINED
32 / 4G

MaxNoOfOpenFiles

unsignedNNDB 7.2.0
0
20 / 4G

MaxNoOfOrderedIndexes

integerNNDB 7.2.0
128
0 / 4G

MaxNoOfSavedMessages

integerNNDB 7.2.0
25
0 / 4G

MaxNoOfSubscribers

unsignedNNDB 7.2.0
0
0 / 4G

MaxNoOfSubscriptions

unsignedNNDB 7.2.0
0
0 / 4G

MaxNoOfTables

integerNNDB 7.2.0
128
8 / 20320

MaxNoOfTriggers

integerNNDB 7.2.0
768
0 / 4G

MaxNoOfUniqueHashIndexes

integerNNDB 7.2.0
64
0 / 4G

MaxParallelScansPerFragment

bytesNNDB 7.2.0
256
1 / 1G

MaxStartFailRetries

unsignedNNDB 7.2.0
3
0 / 4G

MemReportFrequency

unsignedNNDB 7.2.0
0
0 / 4G

MinFreePct

unsignedNNDB 7.2.3
5
0 / 100

NodeGroup

 ISNDB 7.2.0
[none]
0 / 65536

NodeId

unsignedNNDB 7.2.0
[none]
1 / 48

NoOfFragmentLogFiles

integerINNDB 7.2.0
16
3 / 4G

NoOfReplicas

integerISNDB 7.2.0
2
1 / 4

Numa

booleanNNDB 7.2.0
false
...

ODirect

booleanNNDB 7.2.0
false
true, false

RealtimeScheduler

booleanNNDB 7.2.0
false
true, false

RedoBuffer

bytesNNDB 7.2.0
32M
1M / 4G

RedoOverCommitCounter

numericNNDB 7.2.0
3
0 / 4G

RedoOverCommitLimit

secondsNNDB 7.2.0
20
0 / 4G

ReservedSendBufferMemory

bytesNNDB 7.2.0
256K
0 / 4G

RestartOnErrorInsert

error codeNNDB 7.2.0
2
0 / 4

SchedulerExecutionTimer

�secNNDB 7.2.0
50
0 / 11000

SchedulerSpinTimer

�secNNDB 7.2.0
0
0 / 500

ServerPort

unsignedNNDB 7.2.0
[none]
1 / 64K

SharedGlobalMemory

bytesNNDB 7.2.0
128M
0 / 64T

StartFailRetryDelay

unsignedNNDB 7.2.0
0
0 / 4G

StartFailureTimeout

millisecondsNNDB 7.2.0
0
0 / 4G

StartNoNodeGroupTimeout

millisecondsNNDB 7.2.0
15000
0 / 4294967039

StartPartialTimeout

millisecondsNNDB 7.2.0
30000
0 / 4G

StartPartitionedTimeout

millisecondsNNDB 7.2.0
60000
0 / 4G

StartupStatusReportFrequency

secondsNNDB 7.2.0
[none]
...

StopOnError

booleanNNDB 7.2.0
true
true, false

StringMemory

% or bytesSNDB 7.2.1
25
0 / 4G

TcpBind_INADDR_ANY

booleanNNDB 7.2.0
false
true, false

TimeBetweenEpochs

millisecondsNNDB 7.2.0
100
0 / 32000

TimeBetweenEpochsTimeout

millisecondsNNDB 7.2.0
4000
0 / 256000

TimeBetweenGlobalCheckpoints

millisecondsNNDB 7.2.0
2000
20 / 32000

TimeBetweenInactiveTransactionAbortCheck

millisecondsNNDB 7.2.0
1000
1000 / 4G

TimeBetweenLocalCheckpoints

number of 4-byte words, as a base-2 logarithmNNDB 7.2.0
20
0 / 31

TimeBetweenWatchDogCheck

millisecondsNNDB 7.2.0
6000
70 / 4G

TimeBetweenWatchDogCheckInitial

millisecondsNNDB 7.2.0
6000
70 / 4G

TotalSendBufferMemory

bytesNNDB 7.2.0
256K
0 / 4G

TransactionBufferMemory

bytesNNDB 7.2.0
1M
1K / 4G

TransactionDeadlockDetectionTimeout

millisecondsNNDB 7.2.0
1200
50 / 4G

TransactionInactiveTimeout

millisecondsNNDB 7.2.0
4G
0 / 4G

TwoPassInitialNodeRestartCopy

booleanNNDB 7.2.0
false
true, false

UndoDataBuffer

unsignedNNDB 7.2.0
16M
1M / 4G

UndoIndexBuffer

unsignedNNDB 7.2.0
2M
1M / 4G

Table 17.2. Multi-Threaded Data Node Configuration Parameters

Parameter NameType or UnitsRestart TypeAs of Version ... And Later
Default Value
Minimum/Maximum or Permitted Values

MaxNoOfExecutionThreads

integerNNDB 7.2.5
2
2 / 36

NoOfFragmentLogParts

numericINNDB 7.2.5
4
4, 8, 12, 16

ThreadConfig

stringNNDB 7.2.3
''
...

17.3.3.2. MySQL Cluster Management Node Configuration Parameters

The summary table in this section provides information about parameters used in the [ndb_mgmd] or [mgm] sections of a config.ini file for configuring MySQL Cluster management nodes. For detailed descriptions and other additional information about each of these parameters, see Section 17.3.2.5, "Defining a MySQL Cluster Management Server".

Restart types. Changes in MySQL Cluster configuration parameters do not take effect until the cluster is restarted. The type of restart required to change a given parameter is indicated in the summary table as follows:

For more information about restart types, see Section 17.3.3, "Overview of MySQL Cluster Configuration Parameters".

Table 17.3. Management Node Configuration Parameters

Parameter NameType or UnitsRestart TypeAs of Version ... And Later
Default Value
Minimum/Maximum or Permitted Values

ArbitrationDelay

millisecondsNNDB 7.2.0
0
0 / 4G

ArbitrationRank

0-2NNDB 7.2.0
1
0 / 2

DataDir

pathNNDB 7.2.0
.
...

ExecuteOnComputer

nameSNDB 7.2.0
[none]
...

HeartbeatThreadPriority

stringSNDB 7.2.0
[none]
...

HostName

name or IP addressSNDB 7.2.0
[none]
...

Id

unsignedNNDB 7.2.0
[none]
1 / 255

LogDestination

{CONSOLE|SYSLOG|FILE}NNDB 7.2.0
[see text]
...

MaxNoOfSavedEvents

unsignedNNDB 7.2.0
100
0 / 4G

NodeId

unsignedNNDB 7.2.0
[none]
1 / 255

PortNumber

unsignedNNDB 7.2.0
1186
0 / 64K

PortNumberStats

unsignedNNDB 7.2.0
[none]
0 / 64K

TotalSendBufferMemory

bytesNNDB 7.2.0
256K
0 / 4G

wan

booleanNNDB 7.2.0
false
true, false

Note

After making changes in a management node's configuration, it is necessary to perform a rolling restart of the cluster for the new configuration to take effect. See Section 17.3.2.5, "Defining a MySQL Cluster Management Server", for more information.

To add new management servers to a running MySQL Cluster, it is also necessary perform a rolling restart of all cluster nodes after modifying any existing config.ini files. For more information about issues arising when using multiple management nodes, see Section 17.1.6.10, "Limitations Relating to Multiple MySQL Cluster Nodes".

17.3.3.3. MySQL Cluster SQL Node and API Node Configuration Parameters

The summary table in this section provides information about parameters used in the [mysqld] and [api] sections of a config.ini file for configuring MySQL Cluster SQL nodes and API nodes. For detailed descriptions and other additional information about each of these parameters, see Section 17.3.2.7, "Defining SQL and Other API Nodes in a MySQL Cluster".

Note

For a discussion of MySQL server options for MySQL Cluster, see Section 17.3.4.2, "MySQL Server Options for MySQL Cluster"; for information about MySQL server system variables relating to MySQL Cluster, see Section 17.3.4.3, "MySQL Cluster System Variables".

Restart types. Changes in MySQL Cluster configuration parameters do not take effect until the cluster is restarted. The type of restart required to change a given parameter is indicated in the summary table as follows:

For more information about restart types, see Section 17.3.3, "Overview of MySQL Cluster Configuration Parameters".

Table 17.4. SQL Node / API Node Configuration Parameters

Parameter NameType or UnitsRestart TypeAs of Version ... And Later
Default Value
Minimum/Maximum or Permitted Values

ArbitrationDelay

millisecondsNNDB 7.2.0
0
0 / 4G

ArbitrationRank

0-2NNDB 7.2.0
0
0 / 2

AutoReconnect

booleanNNDB 7.2.0
false
true, false

BatchByteSize

bytesNNDB 7.2.1
16K
1024 / 1M

BatchSize

recordsNNDB 7.2.1
256
1 / 992

ConnectionMap

stringNNDB 7.2.0
[none]
...

DefaultOperationRedoProblemAction

enumerationSNDB 7.2.10
QUEUE
ABORT, QUEUE

ExecuteOnComputer

nameSNDB 7.2.0
[none]
...

HeartbeatThreadPriority

stringSNDB 7.2.0
[none]
...

HostName

name or IP addressSNDB 7.2.0
[none]
...

Id

unsignedNNDB 7.2.0
[none]
1 / 255

MaxScanBatchSize

bytesNNDB 7.2.0
256K
32K / 16M

NodeId

unsignedNNDB 7.2.0
[none]
1 / 255

TotalSendBufferMemory

bytesNNDB 7.2.0
256K
0 / 4G

wan

booleanNNDB 7.2.0
false
true, false

Note

To add new SQL or API nodes to the configuration of a running MySQL Cluster, it is necessary to perform a rolling restart of all cluster nodes after adding new [mysqld] or [api] sections to the config.ini file (or files, if you are using more than one management server). This must be done before the new SQL or API nodes can connect to the cluster.

It is not necessary to perform any restart of the cluster if new SQL or API nodes can employ previously unused API slots in the cluster configuration to connect to the cluster.

17.3.3.4. Other MySQL Cluster Configuration Parameters

The summary tables in this section provide information about parameters used in the [computer], [tcp], [shm], and [sci] sections of a config.ini file for configuring MySQL Cluster management nodes. For detailed descriptions and other additional information about individual parameters, see Section 17.3.2.8, "MySQL Cluster TCP/IP Connections", Section 17.3.2.10, "MySQL Cluster Shared-Memory Connections", or Section 17.3.2.11, "SCI Transport Connections in MySQL Cluster", as appropriate.

Restart types. Changes in MySQL Cluster configuration parameters do not take effect until the cluster is restarted. The type of restart required to change a given parameter is indicated in the summary tables as follows:

For more information about restart types, see Section 17.3.3, "Overview of MySQL Cluster Configuration Parameters".

Table 17.5. Computer Configuration Parameters

Parameter NameType or UnitsRestart TypeAs of Version ... And Later
Default Value
Minimum/Maximum or Permitted Values

HostName

name or IP addressSNDB 7.2.0
[none]
...

Id

stringINNDB 7.2.0
[none]
...

Table 17.6. TCP Configuration Parameters

Parameter NameType or UnitsRestart TypeAs of Version ... And Later
Default Value
Minimum/Maximum or Permitted Values

Checksum

booleanNNDB 7.2.0
false
true, false

Group

unsignedNNDB 7.2.0
55
0 / 200

NodeId1

numericNNDB 7.2.0
[none]
...

NodeId2

numericNNDB 7.2.0
[none]
...

NodeIdServer

numericNNDB 7.2.0
[none]
...

OverloadLimit

bytesNNDB 7.2.0
0
0 / 4G

PortNumber

unsignedNNDB 7.2.0
[none]
0 / 64K

Proxy

stringNNDB 7.2.0
[none]
...

ReceiveBufferMemory

bytesNNDB 7.2.0
2M
16K / 4G

SendBufferMemory

unsignedNNDB 7.2.0
2M
256K / 4G

SendSignalId

booleanNNDB 7.2.0
[see text]
true, false

TCP_MAXSEG_SIZE

unsignedNNDB 7.2.0
0
0 / 2G

TCP_RCV_BUF_SIZE

unsignedNNDB 7.2.0
70080
1 / 2G

TCP_SND_BUF_SIZE

unsignedNNDB 7.2.0
71540
1 / 2G

TcpBind_INADDR_ANY

booleanNNDB 7.2.0
false
true, false

Table 17.7. Shared Memory Configuration Parameters

Parameter NameType or UnitsRestart TypeAs of Version ... And Later
Default Value
Minimum/Maximum or Permitted Values

Checksum

booleanNNDB 7.2.0
true
true, false

Group

unsignedNNDB 7.2.0
35
0 / 200

NodeId1

numericNNDB 7.2.0
[none]
...

NodeId2

numericNNDB 7.2.0
[none]
...

NodeIdServer

numericNNDB 7.2.0
[none]
...

OverloadLimit

bytesNNDB 7.2.0
0
0 / 4G

PortNumber

unsignedNNDB 7.2.0
[none]
0 / 64K

SendSignalId

booleanNNDB 7.2.0
false
true, false

ShmKey

unsignedNNDB 7.2.0
[none]
0 / 4G

ShmSize

bytesNNDB 7.2.0
1M
64K / 4G

Signum

unsignedNNDB 7.2.0
[none]
0 / 4G

Table 17.8. SCI Configuration Parameters

Parameter NameType or UnitsRestart TypeAs of Version ... And Later
Default Value
Minimum/Maximum or Permitted Values

Checksum

booleanNNDB 7.2.0
false
true, false

Group

unsignedNNDB 7.2.0
15
0 / 200

Host1SciId0

unsignedNNDB 7.2.0
[none]
0 / 4G

Host1SciId1

unsignedNNDB 7.2.0
0
0 / 4G

Host2SciId0

unsignedNNDB 7.2.0
[none]
0 / 4G

Host2SciId1

unsignedNNDB 7.2.0
0
0 / 4G

NodeId1

numericNNDB 7.2.0
[none]
...

NodeId2

numericNNDB 7.2.0
[none]
...

NodeIdServer

numericNNDB 7.2.0
[none]
...

OverloadLimit

bytesNNDB 7.2.0
0
0 / 4G

PortNumber

unsignedNNDB 7.2.0
[none]
0 / 64K

SendLimit

unsignedNNDB 7.2.0
8K
128 / 32K

SendSignalId

booleanNNDB 7.2.0
true
true, false

SharedBufferSize

unsignedNNDB 7.2.0
10M
64K / 4G

17.3.4. MySQL Server Options and Variables for MySQL Cluster

This section provides information about MySQL server options, server and status variables that are specific to MySQL Cluster. For general information on using these, and for other options and variables not specific to MySQL Cluster, see Section 5.1, "The MySQL Server".

For MySQL Cluster configuration parameters used in the cluster configuration file (usually named config.ini), see Section 17.3, "MySQL Cluster Configuration".

17.3.4.1. MySQL Cluster mysqld Option and Variable Reference

The following table provides a list of the command-line options, server and status variables applicable within mysqld when it is running as an SQL node in a MySQL Cluster. For a table showing all command-line options, server and status variables available for use with mysqld, see Section 5.1.1, "Server Option and Variable Reference".

Table 17.9. MySQL Cluster mysqld Options and Variables: MySQL 5.5

Option or Variable NameCommand LineSystem VariableScope
Option FileStatus VariableDynamic
Notes

Handler_discover

NNBoth
NYN

The number of times that tables have been discovered

Ndb_api_wait_exec_complete_count_session

NNSession
NYN

Number of times thread has been blocked while waiting for execution of an operation to complete in this client session.

Ndb_api_wait_exec_complete_count_slave

NNGlobal
NYN

Number of times thread has been blocked while waiting for execution of an operation to complete by this slave.

Ndb_api_wait_exec_complete_count

NNGlobal
NYN

Number of times thread has been blocked while waiting for execution of an operation to complete by this MySQL Server (SQL node).

Ndb_api_wait_scan_result_count_session

NNSession
NYN

Number of times thread has been blocked while waiting for a scan-based signal in this client session.

Ndb_api_wait_scan_result_count_slave

NNGlobal
NYN

Number of times thread has been blocked while waiting for a scan-based signal by this slave.

Ndb_api_wait_scan_result_count

NNGlobal
NYN

Number of times thread has been blocked while waiting for a scan-based signal by this MySQL Server (SQL node).

Ndb_api_wait_meta_request_count_session

NNSession
NYN

Number of times thread has been blocked waiting for a metadata-based signal in this client session.

Ndb_api_wait_meta_request_count_slave

NNGlobal
NYN

Number of times thread has been blocked waiting for a metadata-based signal by this slave.

Ndb_api_wait_meta_request_count

NNGlobal
NYN

Number of times thread has been blocked waiting for a metadata-based signal by this MySQL Server (SQL node).

Ndb_api_wait_nanos_count_session

NNSession
NYN

Total time (in nanoseconds) spent waiting for some type of signal from the data nodes in this client session.

Ndb_api_wait_nanos_count_slave

NNGlobal
NYN

Total time (in nanoseconds) spent waiting for some type of signal from the data nodes by this slave.

Ndb_api_wait_nanos_count

NNGlobal
NYN

Total time (in nanoseconds) spent waiting for some type of signal from the data nodes by this MySQL Server (SQL node).

Ndb_api_bytes_sent_count_session

NNSession
NYN

Amount of data (in bytes) sent to the data nodes in this client session.

Ndb_api_bytes_sent_count_slave

NNGlobal
NYN

Amount of data (in bytes) sent to the data nodes by this slave.

Ndb_api_bytes_sent_count

NNGlobal
NYN

Amount of data (in bytes) sent to the data nodes by this MySQL Server (SQL node).

Ndb_api_bytes_received_count_session

NNSession
NYN

Amount of data (in bytes) received from the data nodes in this client session.

Ndb_api_bytes_received_count_slave

NNGlobal
NYN

Amount of data (in bytes) received from the data nodes by this slave.

Ndb_api_bytes_received_count

NNGlobal
NYN

Amount of data (in bytes) received from the data nodes by this MySQL Server (SQL node).

Ndb_api_trans_start_count_session

NNSession
NYN

Number of transactions started in this client session.

Ndb_api_trans_start_count_slave

NNGlobal
NYN

Number of transactions started by this slave.

Ndb_api_trans_start_count

NNGlobal
NYN

Number of transactions started by this MySQL Server (SQL node).

Ndb_api_trans_commit_count_session

NNSession
NYN

Number of transactions committed in this client session.

Ndb_api_trans_commit_count_slave

NNGlobal
NYN

Number of transactions committed by this slave.

Ndb_api_trans_commit_count

NNGlobal
NYN

Number of transactions committed by this MySQL Server (SQL node).

Ndb_api_trans_abort_count_session

NNSession
NYN

Number of transactions aborted in this client session.

Ndb_api_trans_abort_count_slave

NNGlobal
NYN

Number of transactions aborted by this slave.

Ndb_api_trans_abort_count

NNGlobal
NYN

Number of transactions aborted by this MySQL Server (SQL node).

Ndb_api_trans_close_count_session

NNSession
NYN

Number of transactions aborted (may be greater than the sum of TransCommitCount and TransAbortCount) in this client session.

Ndb_api_trans_close_count_slave

NNGlobal
NYN

Number of transactions aborted (may be greater than the sum of TransCommitCount and TransAbortCount) by this slave.

Ndb_api_trans_close_count

NNGlobal
NYN

Number of transactions aborted (may be greater than the sum of TransCommitCount and TransAbortCount) by this MySQL Server (SQL node).

Ndb_api_pk_op_count_session

NNSession
NYN

Number of operations based on or using primary keys in this client session.

Ndb_api_pk_op_count_slave

NNGlobal
NYN

Number of operations based on or using primary keys by this slave.

Ndb_api_pk_op_count

NNGlobal
NYN

Number of operations based on or using primary keys by this MySQL Server (SQL node).

Ndb_api_uk_op_count_session

NNSession
NYN

Number of operations based on or using unique keys in this client session.

Ndb_api_uk_op_count_slave

NNGlobal
NYN

Number of operations based on or using unique keys by this slave.

Ndb_api_uk_op_count

NNGlobal
NYN

Number of operations based on or using unique keys by this MySQL Server (SQL node).

Ndb_api_table_scan_count_session

NNSession
NYN

Number of table scans that have been started, including scans of internal tables, in this client session.

Ndb_api_table_scan_count_slave

NNGlobal
NYN

Number of table scans that have been started, including scans of internal tables, by this slave.

Ndb_api_table_scan_count

NNGlobal
NYN

Number of table scans that have been started, including scans of internal tables, by this MySQL Server (SQL node).

Ndb_api_range_scan_count_session

NNSession
NYN

Number of range scans that have been started in this client session.

Ndb_api_range_scan_count_slave

NNGlobal
NYN

Number of range scans that have been started by this slave.

Ndb_api_range_scan_count

NNGlobal
NYN

Number of range scans that have been started by this MySQL Server (SQL node).

Ndb_api_pruned_scan_count_session

NNSession
NYN

Number of scans that have been pruned to a single partition in this client session.

Ndb_api_pruned_scan_count_slave

NNGlobal
NYN

Number of scans that have been pruned to a single partition by this slave.

Ndb_api_pruned_scan_count

NNGlobal
NYN

Number of scans that have been pruned to a single partition by this MySQL Server (SQL node).

Ndb_api_scan_batch_count_session

NNSession
NYN

Number of batches of rows received in this client session.

Ndb_api_scan_batch_count_slave

NNGlobal
NYN

Number of batches of rows received by this slave.

Ndb_api_scan_batch_count

NNGlobal
NYN

Number of batches of rows received by this MySQL Server (SQL node).

Ndb_api_read_row_count_session

NNSession
NYN

Total number of rows that have been read in this client session.

Ndb_api_read_row_count_slave

NNGlobal
NYN

Total number of rows that have been read by this slave.

Ndb_api_read_row_count

NNGlobal
NYN

Total number of rows that have been read by this MySQL Server (SQL node).

Ndb_api_trans_local_read_row_count_session

NNSession
NYN

Total number of rows that have been read in this client session.

Ndb_api_trans_local_read_row_count_slave

NNGlobal
NYN

Total number of rows that have been read by this slave.

Ndb_api_trans_local_read_row_count

NNGlobal
NYN

Total number of rows that have been read by this MySQL Server (SQL node).

Ndb_api_event_data_count_injector

NNGlobal
NYN

Number of row change events received by the NDB binlog injector thread.

Ndb_api_event_data_count

NNGlobal
NYN

Number of row change events received by this MySQL Server (SQL node).

Ndb_api_event_nondata_count_injector

NNGlobal
NYN

Number of events received, other than row change events, by the NDB binlog injector thread.

Ndb_api_event_nondata_count

NNGlobal
NYN

Number of events received, other than row change events, by this MySQL Server (SQL node).

Ndb_api_event_bytes_count_injector

NNGlobal
NYN

Number of bytes of events received by the NDB binlog injector thread.

Ndb_api_event_bytes_count

NNGlobal
NYN

Number of bytes of events received by this MySQL Server (SQL node).

Ndb_number_of_data_nodes

NNGlobal
NYN

If the server is part of a MySQL Cluster, the value of this variable is the number of data nodes in the cluster

Ndb_conflict_fn_max

NNGlobal
NYN

If the server is part of a MySQL Cluster involved in cluster replication, the value of this variable indicates the number of times that conflict resolution based on "greater timestamp wins" has been applied

Ndb_conflict_fn_old

NNGlobal
NYN

If the server is part of a MySQL Cluster involved in cluster replication, the value of this variable indicates the number of times that "same timestamp wins" conflict resolution has been applied

Ndb_conflict_fn_epoch

NNGlobal
NYN

Number of rows that have been found in conflict by the NDB$EPOCH() conflict detection function

Ndb_conflict_fn_epoch_trans

NNGlobal
NYN

Number of rows that have been found in conflict by the NDB$EPOCH_TRANS() conflict detection function

Ndb_conflict_trans_row_conflict_count

NNGlobal
NYN

Number of rows found to be in conflict by a transactional conflict function

Ndb_conflict_trans_row_reject_count

NNGlobal
NYN

Total number of rows realigned after being found in conflict by a transactional conflict function. Includes Ndb_conflict_trans_row_conflict_count and any rows included in or dependent on conflicting transactions.

Ndb_conflict_trans_reject_count

NNGlobal
NYN

Number of transactions rejected after being found in conflict by a transactional conflict function.

Ndb_conflict_trans_detect_iter_count

NNGlobal
NYN

The number of internal iterations required to commit an epoch transaction. Should be (slightly) greater than or equal to Ndb_conflict_trans_conflict_commit_count.

Ndb_conflict_trans_conflict_commit_count

NNGlobal
NYN

The number of epoch transactions committed after requiring transactional conflict handling.

ndb_optimization_delay

NYGlobal
NNY

Sets the number of milliseconds to wait between processing sets of rows by OPTIMIZE TABLE on NDB tables.

ndb_table_temporary

NYSession
NNY

NDB tables are not persistent on disk: no schema files are created and the tables are not logged

ndb_table_no_logging

NYSession
NNY

NDB tables created when this setting is enabled are not checkpointed to disk (although table schema files are created). The setting in effect when the table is created with or altered to use NDBCLUSTER persists for the lifetime of the table.

ndb_autoincrement_prefetch_sz

YYBoth
YNY

NDB auto-increment prefetch size

ndb-batch-size

YYGlobal
YNN

The size (in bytes) to use for NDB transaction batches

ndb-blob-read-batch-bytes

YYBoth
YNY

Specifies the size in bytes that large BLOB reads should be batched into. 0 = no limit.

ndb-blob-write-batch-bytes

YYBoth
YNY

Specifies the size in bytes that large BLOB writes should be batched into. 0 = no limit.

ndb_cache_check_time

YYGlobal
YNY

The number of milliseconds between checks of cluster SQL nodes made by the MySQL query cache

ndb-cluster-connection-pool

YYGlobal
YYN

The number of connections to the cluster used by MySQL

ndb_join_pushdown

NYGlobal
NNN

Enables pushing down of joins to data nodes

Ndb_execute_count

NNGlobal
NYN

Provides the number of round trips to the NDB kernel made by operations

Ndb_scan_count

NNGlobal
NYN

The total number of scans executed by NDB since the cluster was last started

Ndb_pruned_scan_count

NNGlobal
NYN

The number of scans executed by NDB since the cluster was last started where partition pruning could be used

ndb-connectstring

YN 
YNN

The management server that distributes the cluster configuration

ndb_extra_logging

YYGlobal
YNY

Controls logging of MySQL Cluster schema, connection, and data distribution events in the MySQL error log

ndb_force_send

YYBoth
YNY

Forces sending of buffers to NDB immediately, without waiting for other threads

ndb_use_exact_count

NYBoth
NNY

Use exact row count when planning queries

ndb-log-apply-status

YYGlobal
YNN

Cause a MySQL server acting as a slave to log mysql.ndb_apply_status updates received from its immediate master in its own binary log, using its own server ID. Effective only if the server is started with the --ndbcluster option.

ndb_log_bin

YYBoth
NNY

Write updates to NDB tables in the binary log. Effective only if binary logging is enabled with --log-bin.

ndb_log_binlog_index

YYGlobal
NNY

Insert mapping between epochs and binary log positions into the ndb_binlog_index table. Defaults to ON. Effective only if binary logging is enabled on the server.

ndb_log_orig

NYGlobal
NNN

Log originating server id and epoch in mysql.ndb_binlog_index table.

ndb-log-transaction-id

YYGlobal
YNN

Write NDB transaction IDs in the binary log. Requires --log-bin-v1-events=OFF.

ndb_log_transaction_id

NYGlobal
NNN

Whether NDB transaction IDs are written into the binary log. (Read-only.)

ndb_log_updated_only

YYGlobal
YNY

Log complete rows (ON) or updates only (OFF)

ndb-log-update-as-write

YYGlobal
YNY

Toggles logging of updates on the master between updates (OFF) and writes (ON)

ndb-log-empty-epochs

YYGlobal
YNY

When enabled, causes epochs in which there were no changes to be written to the ndb_apply_status and ndb_binlog_index tables, even when --log-slave-updates is enabled.

ndb_log_empty_epochs

YYGlobal
YNY

When enabled, epochs in which there were no changes are written to the ndb_apply_status and ndb_binlog_index tables, even when log_slave_updates is enabled.

ndb-transid-mysql-connection-map

YN 
NNN

Enable or disable the ndb_transid_mysql_connection_map plugin; that is, enable or disable the INFORMATION_SCHEMA table having that name.

Ndb_pushed_reads

NNGlobal
NYN

Number of reads executed on the data nodes by pushed-down joins

Ndb_pushed_queries_defined

NNGlobal
NYN

Number of joins that API nodes have attempted to push down to the data nodes

Ndb_pushed_queries_dropped

NNGlobal
NYN

Number of joins that API nodes have tried to push down, but failed

Ndb_pushed_queries_executed

NNGlobal
NYN

Number of joins successfully pushed down and executed on the data nodes

ndb-nodeid

YNGlobal
YYN

MySQL Cluster node ID for this MySQL server

ndb-mgmd-host

YN 
YNN

Set the host (and port, if desired) for connecting to the management server

ndb-wait-connected

YYGlobal
YNN

Time (in seconds) for the MySQL server to wait for connection to cluster management and data nodes before accepting MySQL client connections.

ndb-wait-setup

YYGlobal
YNN

Time (in seconds) for the MySQL server to wait for NDB engine setup to complete.

ndbcluster

YN 
YNN

Enable NDB Cluster (if this version of MySQL supports it)

ndbinfo_database

NYGlobal
NNN

The name used for the NDB information database; read only.

ndbinfo_max_bytes

YYBoth
NNY

Used for debugging only.

ndbinfo_max_rows

YYBoth
NNY

Used for debugging only.

ndbinfo_show_hidden

YYBoth
NNY

Whether to show ndbinfo internal base tables in the mysql client. The default is OFF.

ndbinfo_table_prefix

YYBoth
NNY

The prefix to use for naming ndbinfo internal base tables. Defaults to 'ndb$'.

ndbinfo_version

NYGlobal
NNN

The version of the ndbinfo engine; read only.

server-id-bits

YYGlobal
YNN

Sets the number of least significant bits in the server_id actually used for identifying the server, permitting NDB API applications to store application data in the most significant bits. server_id must be less than 2 to the power of this value.

slave_allow_batching

YYGlobal
YNY

Turns update batching on and off for a replication slave

have_ndbcluster

NYGlobal
NNN

Whether mysqld supports NDB Cluster tables (set by --ndbcluster option)

ndb-deferred-constraints

YYBoth
YNY

Specifies that constraint checks on unique indexes (where these are supported) should be deferred until commit time. Not normally needed or used; for testing purposes only.

ndb_deferred_constraints

YYBoth
YNY

Specifies that constraint checks should be deferred (where these are supported). Not normally needed or used; for testing purposes only.

ndb-distribution

YYBoth
YNY

Default distribution for new tables in NDBCLUSTER (KEYHASH or LINHASH, default is KEYHASH)

ndb_distribution

YYBoth
YNY

Default distribution for new tables in NDBCLUSTER (KEYHASH or LINHASH, default is KEYHASH)

ndb_optimized_node_selection

YN 
YNN

Determines how an SQL node chooses a cluster data node to use as transaction coordinator

ndb_report_thresh_binlog_epoch_slip

YN 
YNN

This is a threshold on the number of epochs to be behind before reporting binlog status

ndb_report_thresh_binlog_mem_usage

YN 
YNN

This is a threshold on the percentage of free memory remaining before reporting binlog status

ndb_use_transactions

YYBoth
YNY

Forces NDB to use a count of records during SELECT COUNT(*) query planning to speed up this type of query

Ndb_cluster_node_id

NNBoth
NYN

If the server is acting as a MySQL Cluster node, then the value of this variable its node ID in the cluster

Ndb_config_from_host

NNBoth
NYN

The host name or IP address of the Cluster management server. Formerly Ndb_connected_host

Com_show_ndb_status

NNBoth
NYN

Count of SHOW NDB STATUS statements


17.3.4.2. MySQL Server Options for MySQL Cluster

This section provides descriptions of mysqld server options relating to MySQL Cluster. For information about mysqld options not specific to MySQL Cluster, and for general information about the use of options with mysqld, see Section 5.1.3, "Server Command Options".

For information about command-line options used with other MySQL Cluster processes (ndbd, ndb_mgmd, and ndb_mgm), see Section 17.4.24, "Options Common to MySQL Cluster Programs - Options Common to MySQL Cluster Programs". For information about command-line options used with NDB utility programs (such as ndb_desc, ndb_size.pl, and ndb_show_tables), see Section 17.4, "MySQL Cluster Programs".

  • --ndb-batch-size=#

    Command-Line Format--ndb-batch-size
    Option-File Formatndb-batch-size
    Variable Namendb_batch_size
    Variable ScopeGlobal
    Dynamic VariableNo
     Permitted Values
    Typenumeric
    Default32768
    Range0 .. 31536000

    This sets the size in bytes that is used for NDB transaction batches.

  • --ndb-cluster-connection-pool=#

    Command-Line Format--ndb-cluster-connection-pool
    Option-File Formatndb-cluster-connection-pool
    Variable Namendb_cluster_connection_pool
    Variable ScopeGlobal
    Dynamic VariableNo
     Permitted Values
    Typenumeric
    Default1
    Range1 .. 63

    By setting this option to a value greater than 1 (the default), a mysqld process can use multiple connections to the cluster, effectively mimicking several SQL nodes. Each connection requires its own [api] or [mysqld] section in the cluster configuration (config.ini) file, and counts against the maximum number of API connections supported by the cluster.

    Suppose that you have 2 cluster host computers, each running an SQL node whose mysqld process was started with --ndb-cluster-connection-pool=4; this means that the cluster must have 8 API slots available for these connections (instead of 2). All of these connections are set up when the SQL node connects to the cluster, and are allocated to threads in a round-robin fashion.

    This option is useful only when running mysqld on host machines having multiple CPUs, multiple cores, or both. For best results, the value should be smaller than the total number of cores available on the host machine. Setting it to a value greater than this is likely to degrade performance severely.

    Important

    Because each SQL node using connection pooling occupies multiple API node slots-each slot having its own node ID in the cluster-you must not use a node ID as part of the cluster connectstring when starting any mysqld process that employs connection pooling.

    Setting a node ID in the connectstring when using the --ndb-cluster-connection-pool option causes node ID allocation errors when the SQL node attempts to connect to the cluster.

    Note

    In some older releases of MySQL Cluster prior to MySQL Cluster NDB 7.2, there was also a separate status variable corresponding to this option; however, the status variable was removed as redundant as of these versions. (Bug #60119)

  • --ndb-blob-read-batch-bytes=bytes

    Command-Line Format--ndb-blob-read-batch-bytes
    Option-File Formatndb-blob-read-batch-bytes
    Variable Namendb_blob_read_batch_bytes
    Variable ScopeGlobal, Session
    Dynamic VariableYes
     Permitted Values
    Typenumeric
    Default65535
    Range0 .. 4294967295

    This option can be used to set the size (in bytes) for batching of BLOB data reads in MySQL Cluster applications. When this batch size is exceeded by the amount of BLOB data to be read within the current transaction, any pending BLOB read operations are immediately executed.

    The maximum value for this option is 4294967295; the default is 65535. Setting it to 0 has the effect of disabling BLOB read batching.

    Note

    In NDB API applications, you can control BLOB write batching with the setMaxPendingBlobReadBytes() and getMaxPendingBlobReadBytes() methods.

  • --ndb-blob-write-batch-bytes=bytes

    Command-Line Format--ndb-blob-write-batch-bytes
    Option-File Formatndb-blob-write-batch-bytes
    Variable Namendb_blob_write_batch_bytes
    Variable ScopeGlobal, Session
    Dynamic VariableYes
     Permitted Values
    Typenumeric
    Default65535
    Range0 .. 4294967295

    This option can be used to set the size (in bytes) for batching of BLOB data writes in MySQL Cluster applications. When this batch size is exceeded by the amount of BLOB data to be written within the current transaction, any pending BLOB write operations are immediately executed.

    The maximum value for this option is 4294967295; the default is 65535. Setting it to 0 has the effect of disabling BLOB write batching.

    Note

    In NDB API applications, you can control BLOB write batching with the setMaxPendingBlobWriteBytes() and getMaxPendingBlobWriteBytes() methods.

  • --ndb-connectstring=connect_string

    Command-Line Format--ndb-connectstring
    Option-File Formatndb-connectstring
     Permitted Values
    Typestring

    When using the NDBCLUSTER storage engine, this option specifies the management server that distributes cluster configuration data. See Section 17.3.2.3, "The MySQL Cluster Connectstring", for syntax.

  • --ndb-deferred-constraints=[TRUE|FALSE]

    Command-Line Format--ndb-deferred-constraints
    Option-File Formatndb-deferred-constraints
    Option Sets VariableYes, ndb_deferred_constraints
    Variable Namendb-deferred-constraints
    Variable ScopeGlobal, Session
    Dynamic VariableYes
     Permitted Values
    Typeboolean
    Defaultfalse

    Controls whether or not constraint checks on unique indexes are deferred until commit time, where such checks are supported. OFF is the default.

    This option is not normally needed for operation of MySQL Cluster or MySQL Cluster Replication, and is intended primarily for use in testing.

  • --ndb-distribution=[KEYHASH|LINHASH]

    Command-Line Format--ndb-distribution={KEYHASH|LINHASH}
    Option-File Formatndb-distribution
    Option Sets VariableYes, ndb_distribution
    Variable Namendb-distribution
    Variable ScopeGlobal, Session
    Dynamic VariableYes
     Permitted Values
    Typeenumeration
    DefaultKEYHASH
    Valid Values

    LINHASH

    KEYHASH

    Controls the default distribution method for NDB tables. Can be set to either of KEYHASH (key hashing) or LINHASH (linear hashing). KEYHASH is the default.

  • --ndb-mgmd-host=host[:port]

    Command-Line Format--ndb-mgmd-host=host[:port]
    Option-File Formatndb-mgmd-host
     Permitted Values
    Typestring
    Defaultlocalhost:1186

    Can be used to set the host and port number of a single management server for the program to connect to. If the program requires node IDs or references to multiple management servers (or both) in its connection information, use the --ndb-connectstring option instead.

  • --ndbcluster

    Command-Line Format--ndbcluster
    Option-File Formatndbcluster
    Option Sets VariableYes, have_ndbcluster
    Disabled byskip-ndbcluster
     Permitted Values
    Typeboolean
    DefaultFALSE

    The NDBCLUSTER storage engine is necessary for using MySQL Cluster. If a mysqld binary includes support for the NDBCLUSTER storage engine, the engine is disabled by default. Use the --ndbcluster option to enable it. Use --skip-ndbcluster to explicitly disable the engine.

  • --ndb-log-apply-status

    Command-Line Format--ndb-log-apply-status
    Option-File Formatndb-log-apply-status
    Option Sets VariableYes, ndb_log_apply_status
    Variable Namendb_log_apply_status
    Variable ScopeGlobal
    Dynamic VariableNo
     Permitted Values
    Typeboolean
    DefaultOFF

    Causes a slave mysqld to log any updates received from its immediate master to the mysql.ndb_apply_status table in its own binary log using its own server ID rather than the server ID of the master. In a circular or chain replication setting, this allows such updates to propagate to the mysql.ndb_apply_status tables of any MySQL servers configured as slaves of the current mysqld.

    In a chain replication setup, using this option allows downstream (slave) clusters to be aware of their positions relative to all of their upstream contributors (masters).

    In a circular replication setup, this option causes changes to ndb_apply_status tables to complete the entire circuit, eventually propagating back to the originating MySQL Cluster. This also allows a cluster acting as a master to see when its changes (epochs) have been applied to the other clusters in the circle.

    This option has no effect unless the MySQL server is started with the --ndbcluster option.

  • --ndb-log-transaction-id

    Version Introduced5.5.15-ndb-7.2.1
    Command-Line Format--ndb-log-transaction-id[={0|1}]
    Option-File Formatndb-log-transaction-id
    Option Sets VariableYes, ndb_log_transaction_id
    Variable Namendb_log_transaction_id
    Variable ScopeGlobal
    Dynamic VariableNo
     Permitted Values
    Typeboolean
    DefaultOFF

    Causes a slave mysqld to write the NDB transaction ID in each row of the binary log. Such logging requires the use of the Version 2 event format for the binary log; thus, --log-bin-use-v1-row-events must be set to FALSE in order to use this option.

    This option is available beginning with MySQL Cluster NDB 7.2.1 (and is not supported in mainline MySQL Server 5.5). It is required to enable MySQL Cluster Replication conflict detection and resolution using the NDB$EPOCH_TRANS() function introduced in the same MySQL Cluster release.

    The default value is FALSE.

    For more information, see Section 17.6.11, "MySQL Cluster Replication Conflict Resolution".

  • --ndb-nodeid=#

    Command-Line Format--ndb-nodeid=#
    Option-File Formatndb-nodeid
    Variable NameNdb_cluster_node_id
    Variable ScopeGlobal
    Dynamic VariableNo
     Permitted Values
    Typenumeric
    Range1 .. 255

    Set this MySQL server's node ID in a MySQL Cluster.

    The --ndb-nodeid option overrides any node ID set with --ndb-connectstring, regardless of the order in which the two options are used.

    In addition, if --ndb-nodeid is used, then either a matching node ID must be found in a [mysqld] or [api] section of config.ini, or there must be an "open" [mysqld] or [api] section in the file (that is, a section without a NodeId or Id parameter specified). This is also true if the node ID is specified as part of the connectstring.

    Regardless of how the node ID is determined, its is shown as the value of the global status variable Ndb_cluster_node_id in the output of SHOW STATUS, and as cluster_node_id in the connection row of the output of SHOW ENGINE NDBCLUSTER STATUS.

    For more information about node IDs for MySQL Cluster SQL nodes, see Section 17.3.2.7, "Defining SQL and Other API Nodes in a MySQL Cluster".

  • --ndb-log-empty-epochs=[0|1]

    Command-Line Format--ndb-log-empty-epochs
    Option-File Formatndb-log-empty-epochs
    Variable Namendb_log_empty_epochs
    Variable ScopeGlobal
    Dynamic VariableYes
     Permitted Values
    Typeboolean
    DefaultOFF

    Causes epochs during which there were no changes to be written to the ndb_apply_status and ndb_binlog_index tables, even when --log-slave-updates is enabled.

    By default this option is disabled. Disabling --ndb-log-empty-epochs causes epoch transactions with no changes not to be written to the binary log, although a row is still written even for an empty epoch in ndb_binlog_index.

    Because --ndb-log-empty-epochs=1 causes the size of ndb_binlog_index table to increase independently of the size of the binary log, users should be prepared to manage the growth of this table, even if they expect the cluster to be idle a large part of the time.

  • --server-id-bits=#

    Command-Line Format--server-id-bits=#
    Option-File Formatserver-id-bits
    Option Sets VariableYes, server_id_bits
    Variable Nameserver_id_bits
    Variable ScopeGlobal
    Dynamic VariableNo
     Permitted Values
    Typenumeric
    Default32
    Range7 .. 32

    This option indicates the number of least significant bits within the 32-bit server_id which actually identify the server. Indicating that the server is actually identified by fewer than 32 bits makes it possible for some of the remaining bits to be used for other purposes, such as storing user data generated by applications using the NDB API's Event API within the AnyValue of an OperationOptions structure (MySQL Cluster uses the AnyValue to store the server ID).

    When extracting the effective server ID from server_id for purposes such as detection of replication loops, the server ignores the remaining bits. The --server-id-bits option is used to mask out any irrelevant bits of server_id in the IO and SQL threads when deciding whether an event should be ignored based on the server ID.

    This data can be read from the binary log by mysqlbinlog, provided that it is run with its own --server-id-bits option set to 32 (the default).

    The value of server_id must be less than 2 ^ server_id_bits; otherwise, mysqld refuses to start.

    This system variable is supported only by MySQL Cluster. It is not supported in the standard MySQL 5.5 Server.

  • --skip-ndbcluster

    Command-Line Format--skip-ndbcluster
    Option-File Formatskip-ndbcluster

    Disable the NDBCLUSTER storage engine. This is the default for binaries that were built with NDBCLUSTER storage engine support; the server allocates memory and other resources for this storage engine only if the --ndbcluster option is given explicitly. See Section 17.3.1, "Quick Test Setup of MySQL Cluster", for an example.

  • ndb-transid-mysql-connection-map=state

    Version Introduced5.5.16-ndb-7.2.2
    Command-Line Format--ndb-transid-mysql-connection-map[=state]5.1.16-ndb-7.1.17 
     Permitted Values
    Typeenumeration
    DefaultON
    Valid Values

    OFF

    FORCE

    Enables or disables the plugin that handles the ndb_transid_mysql_connection_map table in the INFORMATION_SCHEMA database. Takes one of the values ON, OFF, or FORCE. ON (the default) enables the plugin. OFF disables the plugin, which makes ndb_transid_mysql_connection_map inaccessible. FORCE keeps the MySQL Server from starting if the plugin fails to load and start.

    You can see whether the ndb_transid_mysql_connection_map table plugin is running by checking the output of SHOW PLUGINS.

    This option was added in MySQL Cluster NDB 7.2.2.

  • --ndb-wait-connected=seconds

    Command-Line Format--ndb-wait-connected=#
    Option-File Formatndb-wait-connected
    Variable Namendb-wait-connected
    Variable ScopeGlobal
    Dynamic VariableNo
     Permitted Values
    Typenumeric
    Default0
    Range0 .. 31536000
     Permitted Values
    Typenumeric
    Default0
    Range0 .. 31536000
     Permitted Values
    Typenumeric
    Default30
    Range0 .. 31536000
     Permitted Values
    Typenumeric
    Default30
    Range0 .. 31536000

    This option sets the period of time that the MySQL server waits for connections to MySQL Cluster management and data nodes to be established before accepting MySQL client connections. The time is specified in seconds. The default value is 30.

  • --ndb-wait-setup=seconds

    Command-Line Format--ndb-wait-setup=#
    Option-File Formatndb-wait-setup
    Variable Namendb-wait-setup
    Variable ScopeGlobal
    Dynamic VariableNo
     Permitted Values
    Typenumeric
    Default15
    Range0 .. 31536000
     Permitted Values
    Typenumeric
    Default15
    Range0 .. 31536000
     Permitted Values
    Typenumeric
    Default30
    Range0 .. 31536000
     Permitted Values
    Typenumeric
    Default30
    Range0 .. 31536000

    This variable shows the period of time that the MySQL server waits for the NDB storage engine to complete setup before timing out and treating NDB as unavailable. The time is specified in seconds. The default value is 30.

  • --ndb_optimization_delay=milliseconds

    Variable Namendb_optimization_delay
    Variable ScopeGlobal
    Dynamic VariableYes
     Permitted Values
    Typenumeric
    Default10
    Range0 .. 100000

    Set the number of milliseconds to wait between sets of rows by OPTIMIZE TABLE statements on NDB tables. The default is 15.

17.3.4.3. MySQL Cluster System Variables

This section provides detailed information about MySQL server system variables that are specific to MySQL Cluster and the NDB storage engine. For system variables not specific to MySQL Cluster, see Section 5.1.4, "Server System Variables". For general information on using system variables, see Section 5.1.5, "Using System Variables".

  • have_ndbcluster

    Variable Namehave_ndbcluster
    Variable ScopeGlobal
    Dynamic VariableNo
     Permitted Values
    Typeboolean

    YES if mysqld supports NDBCLUSTER tables. DISABLED if --skip-ndbcluster is used.

    This variable is deprecated and is removed in MySQL 5.6. Use SHOW ENGINES instead.

  • multi_range_count

    Command-Line Format--multi_range_count=#
    Option-File Formatmulti_range_count
    Option Sets VariableYes, multi_range_count
    Variable Namemulti_range_count
    Variable ScopeGlobal, Session
    Dynamic VariableYes
     Permitted Values
    Typenumeric
    Default256
    Range1 .. 4294967295

    The maximum number of ranges to send to a table handler at once during range selects. The default value is 256. Sending multiple ranges to a handler at once can improve the performance of certain selects dramatically. This is especially true for the NDBCLUSTER table handler, which needs to send the range requests to all nodes. Sending a batch of those requests at once reduces communication costs significantly.

    This variable is deprecated in MySQL 5.1, and is no longer supported in MySQL 5.5, in which arbitrarily long lists of ranges can be processed.

  • ndb_autoincrement_prefetch_sz

    Command-Line Format--ndb_autoincrement_prefetch_sz
    Option-File Formatndb_autoincrement_prefetch_sz
    Option Sets VariableYes,ndb_autoincrement_prefetch_sz
    Variable Namendb_autoincrement_prefetch_sz
    Variable ScopeGlobal, Session
    Dynamic VariableYes
     Permitted Values
    Typenumeric
    Default1
    Range1 .. 65536

    Determines the probability of gaps in an autoincremented column. Set it to 1 to minimize this. Setting it to a high value for optimization makes inserts faster, but decreases the likelihood that consecutive autoincrement numbers will be used in a batch of inserts. The mininum and default value is 1. The maximum value for ndb_autoincrement_prefetch_sz is 65536.

    This variable affects only the number of AUTO_INCREMENT IDs that are fetched between statements; within a given statement, at least 32 IDs are obtained at a time. The default value for ndb_autoincrement_prefetch_sz is 1, to increase the speed of statements inserting single rows.

    Important

    This variable does not affect inserts performed using INSERT ... SELECT.

  • ndb_cache_check_time

    Command-Line Format--ndb_cache_check_time
    Option-File Formatndb_cache_check_time
    Option Sets VariableYes, ndb_cache_check_time
    Variable Namendb_cache_check_time
    Variable ScopeGlobal
    Dynamic VariableYes
     Permitted Values
    Typenumeric
    Default0

    The number of milliseconds that elapse between checks of MySQL Cluster SQL nodes by the MySQL query cache. Setting this to 0 (the default and minimum value) means that the query cache checks for validation on every query.

    The recommended maximum value for this variable is 1000, which means that the check is performed once per second. A larger value means that the check is performed and possibly invalidated due to updates on different SQL nodes less often. It is generally not desirable to set this to a value greater than 2000.

  • ndb_deferred_constraints

    Command-Line Format--ndb-deferred-constraints
    Option-File Formatndb_deferred_constraints
    Option Sets VariableYes, ndb_deferred_constraints
    Variable Namendb_deferred_constraints
    Variable ScopeGlobal, Session
    Dynamic VariableYes
     Permitted Values
    Typeboolean
    Defaultfalse
    Rangefalse .. true

    Controls whether or not constraint checks are deferred, where these are supported. OFF is the default.

    This variable is not normally needed for operation of MySQL Cluster or MySQL Cluster Replication, and is intended primarily for use in testing.

  • ndb_distribution

    Command-Line Format--ndb-distribution={KEYHASH|LINHASH}
    Option-File Formatndb_distribution
    Variable Namendb_distribution={KEYHASH|LINHASH}
    Variable ScopeGlobal, Session
    Dynamic VariableYes
     Permitted Values
    Typeenumeration
    DefaultKEYHASH
    Valid Values

    LINHASH

    KEYHASH

    Controls the default distribution method for NDB tables. Can be set to either of KEYHASH (key hashing) or LINHASH (linear hashing). KEYHASH is the default.

  • ndb_extra_logging

    Command-Line Formatndb_extra_logging=#
    Option-File Formatndb_extra_logging
    Variable Namendb_extra_logging
    Variable ScopeGlobal
    Dynamic VariableYes
     Permitted Values
    Typenumeric
    Default0

    This variable can be used to enable recording in the MySQL error log of information specific to the NDB storage engine. It is normally of interest only when debugging NDB storage engine code.

    The default value is 0, which means that the only NDB-specific information written to the MySQL error log relates to transaction handling. If the value is greater than 0 but less than 10, NDB table schema and connection events are also logged, as well as whether or not conflict resolution is in use, and other NDB errors and information. If the value is set to 10 or more, information about NDB internals, such as the progress of data distribution among cluster nodes, is also written to the MySQL error log.

  • ndb_force_send

    Command-Line Format--ndb-force-send
    Option-File Formatndb_force_send
    Option Sets VariableYes, ndb_force_send
    Variable Namendb_force_send
    Variable ScopeGlobal, Session
    Dynamic VariableYes
     Permitted Values
    Typeboolean
    DefaultTRUE

    Forces sending of buffers to NDB immediately, without waiting for other threads. Defaults to ON.

  • ndb_join_pushdown

    Variable Namendb_join_pushdown
    Variable ScopeGlobal
    Dynamic VariableNo
     Permitted Values
    Typeboolean
    DefaultTRUE

    Added in MySQL Cluster NDB 7.2.0, this variable controls whether joins on NDB tables are pushed down to the NDB kernel (data nodes). Previously, a join was handled using multiple accesses of NDB by the SQL node; however, when ndb_join_pushdown is enabled, a pushable join is sent in its entirety to the data nodes, where it can be distributed among the data nodes and executed in parallel on multiple copies of the data, with a single, merged result being returned to mysqld. This can reduce greatly the number of round trips between an SQL node and the data nodes required to handle such a join.

    By default, ndb_join_pushdown is enabled.

    In order for a join to be pushable, it must meet the following conditions:

    1. Only columns can be compared, and all columns to be joined must use exactly the same data type.

      This means that expressions such as t1.a = t2.a + constant cannot be pushed down, and that (for example) a join on an INT column and a BIGINT column also cannot be pushed down.

    2. Queries referencing BLOB or TEXT columns are not supported.

    3. Explicit locking is not supported; however, the NDB storage engine's characteristic implicit row-based locking is enforced.

      This means that a join using FOR UPDATE cannot be pushed down.

    4. In order for a join to be pushed down, child tables in the join must be accessed using one of the ref, eq_ref, or const access methods, or some combination of these methods.

      Outer joined child tables can only be pushed using eq_ref.

      If the root of the pushed join is an eq_ref or const, only child tables joined by eq_ref can be appended. (A table joined by ref is likely to become the root of another pushed join.)

      If the query optimizer decides on Using join cache for a candidate child table, that table cannot be pushed as a child. However, it may be the root of another set of pushed tables.

    5. Joins referencing tables explicitly partitioned by [LINEAR] HASH, LIST, or RANGE currently cannot be pushed down.

    You can see whether a given join can be pushed down by checking it with EXPLAIN; when the join can be pushed down, you can see references to the pushed join in the Extra column of the output, as shown in this example:

    mysql> EXPLAIN -> SELECT e.first_name, e.last_name, t.title, d.dept_name -> FROM employees e -> JOIN dept_emp de ON e.emp_no=de.emp_no -> JOIN departments d ON d.dept_no=de.dept_no -> JOIN titles t ON e.emp_no=t.emp_no\G*************************** 1. row ***************************   id: 1  select_type: SIMPLE table: d type: ALLpossible_keys: PRIMARY  key: NULL  key_len: NULL  ref: NULL rows: 9 Extra: Parent of 4 pushed join@1*************************** 2. row ***************************   id: 1  select_type: SIMPLE table: de type: refpossible_keys: PRIMARY,emp_no,dept_no  key: dept_no  key_len: 4  ref: employees.d.dept_no rows: 5305 Extra: Child of 'd' in pushed join@1*************************** 3. row ***************************   id: 1  select_type: SIMPLE table: e type: eq_refpossible_keys: PRIMARY  key: PRIMARY  key_len: 4  ref: employees.de.emp_no rows: 1 Extra: Child of 'de' in pushed join@1*************************** 4. row ***************************   id: 1  select_type: SIMPLE table: t type: refpossible_keys: PRIMARY,emp_no  key: emp_no  key_len: 4  ref: employees.de.emp_no rows: 19 Extra: Child of 'e' in pushed join@14 rows in set (0.00 sec)
    Note

    If inner joined child tables are joined by ref, and the result is ordered or grouped by a sorted index, this index cannot provide sorted rows, which forces writing to a sorted tempfile.

    Two additional sources of information about pushed join performance are available:

    1. The status variables Ndb_pushed_queries_defined, Ndb_pushed_queries_dropped, Ndb_pushed_queries_executed, and Ndb_pushed_reads (all introduced in MySQL Cluster NDB 7.2.0).

    2. The counters in the ndbinfo.counters table that belong to the DBSPJ kernel block. (These counters and the DBSPJ block were also introduced in MySQL Cluster NDB 7.2.0). See Section 17.5.10.7, "The ndbinfo counters Table", for information about these counters. See also The DBSPJ Block, in the MySQL Cluster API Developer Guide.

  • ndb_log_apply_status

    Command-Line Format--ndb-log-apply-status
    Option-File Formatndb-log-apply-status
    Option Sets VariableYes, ndb_log_apply_status
    Variable Namendb_log_apply_status
    Variable ScopeGlobal
    Dynamic VariableNo
     Permitted Values
    Typeboolean
    DefaultOFF

    A read-only variable which shows whether the server was started with the --ndb-log-apply-status option.

  • ndb_log_bin

    Command-Line Format--ndb-log-bin={1|0}
    Option Sets VariableYes, ndb_log_bin
    Variable Namendb_log_bin
    Variable ScopeGlobal, Session
    Dynamic VariableYes
     Permitted Values
    Typeboolean
    DefaultON

    Causes updates to NDB tables to be written to the binary log. Setting this variable has no effect if binary logging is not already enabled for the server using log_bin. ndb_log_bin defaults to 1 (ON); normally, there is never any need to change this value in a production environment.

  • ndb_log_binlog_index

    Command-Line Format--ndb-log-binlog-index={1|0}
    Option Sets VariableYes, ndb_log_binlog_index
    Variable Namendb_log_binlog_index
    Variable ScopeGlobal
    Dynamic VariableYes
     Permitted Values
    Typeboolean
    DefaultON

    Causes a mapping of epochs to positions in the binary log to be inserted into the ndb_binlog_index table. Setting this variable has no effect if binary logging is not already enabled for the server using log_bin. (In addition, ndb_log_bin must not be disabled.) ndb_log_binlog_index defaults to 1 (ON); normally, there is never any need to change this value in a production environment.

  • ndb_log_transaction_id

    Version Introduced5.5.15-ndb-7.2.1
    Variable Namendb_log_transaction_id
    Variable ScopeGlobal
    Dynamic VariableNo
     Permitted Values
    Typeboolean
    DefaultOFF

    This read-only, Boolean system variable shows whether a slave mysqld writes NDB transaction IDs in the binary log (required to use "active-active" MySQL Cluster Replication with NDB$EPOCH_TRANS() conflict detection). To change the setting, use the --ndb-log-transaction-id option.

    ndb_log_transaction_id is available in MySQL Cluster NDB 7.2.1 and later. It is not supported in mainline MySQL Server 5.5.

    For more information, see Section 17.6.11, "MySQL Cluster Replication Conflict Resolution".

  • ndb_optimized_node_selection

    Command-Line Format--ndb-optimized-node-selection=#
    Option-File Formatndb_optimized_node_selection
     Permitted Values
    Typeboolean
    DefaultON
     Permitted Values
    Typenumeric
    Default3
    Range0 .. 3

    There are two forms of optimized node selection, described here:

    1. The SQL node uses promixity to determine the transaction coordinator; that is, the "closest" data node to the SQL node is chosen as the transaction coordinator. For this purpose, a data node having a shared memory connection with the SQL node is considered to be "closest" to the SQL node; the next closest (in order of decreasing proximity) are: TCP connection to localhost; SCI connection; TCP connection from a host other than localhost.

    2. The SQL thread uses distribution awareness to select the data node. That is, the data node housing the cluster partition accessed by the first statement of a given transaction is used as the transaction coordinator for the entire transaction. (This is effective only if the first statement of the transaction accesses no more than one cluster partition.)

    This option takes one of the integer values 0, 1, 2, or 3. 3 is the default. These values affect node selection as follows:

    • 0: Node selection is not optimized. Each data node is employed as the transaction coordinator 8 times before the SQL thread proceeds to the next data node.

    • 1: Proximity to the SQL node is used to determine the transaction coordinator.

    • 2: Distribution awareness is used to select the transaction coordinator. However, if the first statement of the transaction accesses more than one cluster partition, the SQL node reverts to the round-robin behavior seen when this option is set to 0.

    • 3: If distribution awareness can be employed to determine the transaction coordinator, then it is used; otherwise proximity is used to select the transaction coordinator. (This is the default behavior.)

  • ndb_report_thresh_binlog_epoch_slip

    Command-Line Format--ndb_report_thresh_binlog_epoch_slip
    Option-File Formatndb_report_thresh_binlog_epoch_slip
     Permitted Values
    Typenumeric
    Default3
    Range0 .. 256

    This is a threshold on the number of epochs to be behind before reporting binary log status. For example, a value of 3 (the default) means that if the difference between which epoch has been received from the storage nodes and which epoch has been applied to the binary log is 3 or more, a status message will be sent to the cluster log.

  • ndb_report_thresh_binlog_mem_usage

    Command-Line Format--ndb_report_thresh_binlog_mem_usage
    Option-File Formatndb_report_thresh_binlog_mem_usage
     Permitted Values
    Typenumeric
    Default10
    Range0 .. 10

    This is a threshold on the percentage of free memory remaining before reporting binary log status. For example, a value of 10 (the default) means that if the amount of available memory for receiving binary log data from the data nodes falls below 10%, a status message will be sent to the cluster log.

  • slave_allow_batching

    Command-Line Format--slave-allow-batching
    Option-File Formatslave_allow_batching
    Option Sets VariableYes, slave_allow_batching
    Variable Nameslave_allow_batching
    Variable ScopeGlobal
    Dynamic VariableYes
     Permitted Values
    Typeboolean
    Defaultoff

    Whether or not batched updates are enabled on MySQL Cluster replication slaves.

    Currently, this variable is available for mysqld only as supplied with MySQL Cluster or built from the MySQL Cluster sources. For more information, see Section 17.6.6, "Starting MySQL Cluster Replication (Single Replication Channel)".

    Setting this variable had no effect in MySQL Cluster NDB 7.2 prior to MySQL Cluster NDB 7.2.10. (Bug #15953530)

  • ndb_table_no_logging

    Variable Namendb_table_no_logging
    Variable ScopeSession
    Dynamic VariableYes
     Permitted Values
    Typeboolean
    DefaultFALSE

    When this variable is set to ON or 1, it causes NDB tables not to be checkpointed to disk. More specifically, this setting applies to tables which are created or altered using ENGINE NDB when ndb_table_no_logging is enabled, and continues to apply for the lifetime of the table, even if ndb_table_no_logging is later changed. Suppose that A, B, C, and D are tables that we create (and perhaps also alter), and that we also change the setting for ndb_table_no_logging as shown here:

    SET @@ndb_table_no_logging = 1;CREATE TABLE A ... ENGINE NDB;CREATE TABLE B ... ENGINE MYISAM;CREATE TABLE C ... ENGINE MYISAM;ALTER TABLE B ENGINE NDB;SET @@ndb_table_no_logging = 0;CREATE TABLE D ... ENGINE NDB;ALTER TABLE C ENGINE NDB;SET @@ndb_table_no_logging = 1;

    After the previous sequence of events, tables A and B are not checkpointed; A was created with ENGINE NDB and B was altered to use NDB, both while ndb_table_no_logging was enabled. However, tables C and D are logged; C was altered to use NDB and D was created using ENGINE NDB, both while ndb_table_no_logging was disabled. Setting ndb_table_no_logging back to 1 or ON does not cause table C or D to be checkpointed.

    Note

    ndb_table_no_logging has no effect on the creation of NDB table schema files; to suppress these, use ndb_table_temporary instead.

  • ndb_table_temporary

    Variable Namendb_table_temporary
    Variable ScopeSession
    Dynamic VariableYes
     Permitted Values
    Typeboolean
    DefaultFALSE

    When set to ON or 1, this variable causes NDB tables not to be written to disk: This means that no table schema files are created, and that the tables are not logged.

    Note

    Setting this variable currently has no effect in MySQL Cluster NDB 7.0 and later. This is a known issue; see BUG#34036.

  • ndb_use_copying_alter_table

    Variable Namendb_use_copying_alter_table
    Variable ScopeGlobal, Session
    Dynamic VariableNo

    Forces NDB to use copying of tables in the event of problems with online ALTER TABLE operations. The default value is OFF.

  • ndb_use_exact_count

    Variable Namendb_use_exact_count
    Variable ScopeGlobal, Session
    Dynamic VariableYes
     Permitted Values
    Typeboolean
    DefaultON

    Forces NDB to use a count of records during SELECT COUNT(*) query planning to speed up this type of query. The default value is ON. For faster queries overall, disable this feature by setting the value of ndb_use_exact_count to OFF.

  • ndb_use_transactions

    Command-Line Format--ndb_use_transactions
    Option-File Formatndb_use_transactions
    Variable Namendb_use_transactions
    Variable ScopeGlobal, Session
    Dynamic VariableYes
     Permitted Values
    Typeboolean
    DefaultON

    You can disable NDB transaction support by setting this variable's values to OFF (not recommended). The default is ON.

  • transaction_allow_batching

    Variable Nametransaction_allow_batching
    Variable ScopeSession
    Dynamic VariableYes
     Permitted Values
    Typeboolean
    DefaultFALSE

    When set to 1 or ON, this variable enables batching of statements within the same transaction. To use this variable, autocommit must first be disabled by setting it to 0 or OFF; otherwise, setting transaction_allow_batching has no effect.

    It is safe to use this variable with transactions that performs writes only, as having it enabled can lead to reads from the "before" image. You should ensure that any pending transactions are committed (using an explicit COMMIT if desired) before issuing a SELECT.

    Important

    transaction_allow_batching should not be used whenever there is the possibility that the effects of a given statement depend on the outcome of a previous statement within the same transaction.

    This variable is currently supported for MySQL Cluster only.

    Important

    Due an issue in the MySQL Cluster NDB 7.2 codebase (Bug #64697) prior to General Availability, this variable is not available prior to MySQL Cluster NDB 7.2.6.

The system variables in the following list all relate to the ndbinfo information database.

  • ndbinfo_database

    Variable Namendbinfo_database
    Variable ScopeGlobal
    Dynamic VariableNo
     Permitted Values
    Typestring
    Defaultndbinfo

    Shows the name used for the NDB information database; the default is ndbinfo. This is a read-only variable whose value is determined at compile time; you can set it by starting the server using --ndbinfo-database=name, which sets the value shown for this variable but does not actually change the name used for the NDB information database.

  • ndbinfo_max_bytes

    Command-Line Format--ndbinfo-max-bytes=#
    Option Sets VariableYes, ndbinfo_max_bytes
    Variable Namendbinfo_max_bytes
    Variable ScopeGlobal, Session
    Dynamic VariableYes
     Permitted Values
    Typenumeric
    Default0

    Used in testing and debugging only.

  • ndbinfo_max_rows

    Command-Line Format--ndbinfo-max-rows=#
    Option Sets VariableYes, ndbinfo_max_rows
    Variable Namendbinfo_max_rows
    Variable ScopeGlobal, Session
    Dynamic VariableYes
     Permitted Values
    Typenumeric
    Default10

    Used in testing and debugging only.

  • ndbinfo_show_hidden

    Command-Line Format--ndbinfo-show-hidden={0|1}
    Option Sets VariableYes, ndbinfo_show_hidden
    Variable Namendbinfo_show_hidden
    Variable ScopeGlobal, Session
    Dynamic VariableYes
     Permitted Values
    Typeboolean
    DefaultOFF

    Whether or not the ndbinfo database's underlying internal tables are shown in the mysql client. The default is OFF.

  • ndbinfo_table_prefix

    Command-Line Format--ndbinfo-table-prefix=name
    Option Sets VariableYes, ndbinfo_table_prefix
    Variable Namendbinfo_table_prefix
    Variable ScopeGlobal, Session
    Dynamic VariableYes
     Permitted Values
    Typestring
    Defaultndb$

    The prefix used in naming the ndbinfo database's base tables (normally hidden, unless exposed by setting ndbinfo_show_hidden). This is a read-only variable whose default value is "ndb$". You can start the server with the --ndbinfo-table-prefix option, but this merely sets the variable and does not change the actual prefix used to name the hidden base tables; the prefix itself is determined at compile time.

  • ndbinfo_version

    Variable Namendbinfo_version
    Variable ScopeGlobal
    Dynamic VariableNo
     Permitted Values
    Typestring
    Default

    Shows the version of the ndbinfo engine in use; read-only.

  • ndb_log_empty_epochs

    Command-Line Format--ndb-log-empty-epochs
    Option-File Formatndb_log_empty_epochs
    Variable Namendb_log_empty_epochs
    Variable ScopeGlobal
    Dynamic VariableYes
     Permitted Values
    Typeboolean
    DefaultOFF

    When this variable is set to 0, epoch transactions with no changes are not written to the binary log, although a row is still written even for an empty epoch in ndb_binlog_index.

  • server_id_bits

    Command-Line Format--server-id-bits=#
    Option-File Formatserver-id-bits
    Option Sets VariableYes, server_id_bits
    Variable Nameserver_id_bits
    Variable ScopeGlobal
    Dynamic VariableNo
     Permitted Values
    Typenumeric
    Default32
    Range7 .. 32

    The effective value of server_id if the server was started with the --server-id-bits option set to a nondefault value.

    If the value of server_id greater than or equal to 2 to the power of server_id_bits, mysqld refuses to start.

    This system variable is supported only by MySQL Cluster. server_id_bits is not supported by the standard MySQL Server.

17.3.4.4. MySQL Cluster Status Variables

This section provides detailed information about MySQL server status variables that relate to MySQL Cluster and the NDB storage engine. For status variables not specific to MySQL Cluster, and for general information on using status variables, see Section 5.1.6, "Server Status Variables".

17.3.5. Using High-Speed Interconnects with MySQL Cluster

Even before design of NDBCLUSTER began in 1996, it was evident that one of the major problems to be encountered in building parallel databases would be communication between the nodes in the network. For this reason, NDBCLUSTER was designed from the very beginning to permit the use of a number of different data transport mechanisms. In this Manual, we use the term transporter for these.

The MySQL Cluster codebase provides for four different transporters:

Most users today employ TCP/IP over Ethernet because it is ubiquitous. TCP/IP is also by far the best-tested transporter for use with MySQL Cluster.

We are working to make sure that communication with the ndbd process is made in "chunks" that are as large as possible because this benefits all types of data transmission.

For users who desire it, it is also possible to use cluster interconnects to enhance performance even further. There are two ways to achieve this: Either a custom transporter can be designed to handle this case, or you can use socket implementations that bypass the TCP/IP stack to one extent or another. We have experimented with both of these techniques using the SCI (Scalable Coherent Interface) technology developed by Dolphin Interconnect Solutions.

17.3.5.1. Configuring MySQL Cluster to use SCI Sockets

It is possible employing Scalable Coherent Interface (SCI) technology to achieve a significant increase in connection speeds and throughput between MySQL Cluster data and SQL nodes. To use SCI, it is necessary to obtain and install Dolphin SCI network cards and to use the drivers and other software supplied by Dolphin. You can get information on obtaining these, from Dolphin Interconnect Solutions. SCI SuperSocket or SCI Transporter support is available for 32-bit and 64-bit Linux, Solaris, Windows, and other platforms. See the Dolphin documentation referenced later in this section for more detailed information regarding platforms supported for SCI.

Once you have acquired the required Dolphin hardware and software, you can obtain detailed information on how to adapt a MySQL Cluster configured for normal TCP/IP communication to use SCI from the from the Dolphin SCI online documentation.

17.3.5.2. MySQL Cluster Interconnects and Performance

The ndbd process has a number of simple constructs which are used to access the data in a MySQL Cluster. We have created a very simple benchmark to check the performance of each of these and the effects which various interconnects have on their performance.

There are four access methods:

  • Primary key access. This is access of a record through its primary key. In the simplest case, only one record is accessed at a time, which means that the full cost of setting up a number of TCP/IP messages and a number of costs for context switching are borne by this single request. In the case where multiple primary key accesses are sent in one batch, those accesses share the cost of setting up the necessary TCP/IP messages and context switches. If the TCP/IP messages are for different destinations, additional TCP/IP messages need to be set up.

  • Unique key access. Unique key accesses are similar to primary key accesses, except that a unique key access is executed as a read on an index table followed by a primary key access on the table. However, only one request is sent from the MySQL Server, and the read of the index table is handled by ndbd. Such requests also benefit from batching.

  • Full table scan. When no indexes exist for a lookup on a table, a full table scan is performed. This is sent as a single request to the ndbd process, which then divides the table scan into a set of parallel scans on all cluster ndbd processes. In future versions of MySQL Cluster, an SQL node will be able to filter some of these scans.

  • Range scan using ordered index. When an ordered index is used, it performs a scan in the same manner as the full table scan, except that it scans only those records which are in the range used by the query transmitted by the MySQL server (SQL node). All partitions are scanned in parallel when all bound index attributes include all attributes in the partitioning key.

With benchmarks developed internally by MySQL for testing simple and batched primary and unique key accesses, we have found that using SCI sockets improves performance by approximately 100% over TCP/IP, except in rare instances when communication performance is not an issue. This can occur when scan filters make up most of processing time or when very large batches of primary key accesses are achieved. In that case, the CPU processing in the ndbd processes becomes a fairly large part of the overhead.

Using the SCI transporter instead of SCI Sockets is only of interest in communicating between ndbd processes. Using the SCI transporter is also only of interest if a CPU can be dedicated to the ndbd process because the SCI transporter ensures that this process will never go to sleep. It is also important to ensure that the ndbd process priority is set in such a way that the process does not lose priority due to running for an extended period of time, as can be done by locking processes to CPUs in Linux 2.6. If such a configuration is possible, the ndbd process will benefit by 10�70% as compared with using SCI sockets. (The larger figures will be seen when performing updates and probably on parallel scan operations as well.)

There are several other optimized socket implementations for computer clusters, including Myrinet, Gigabit Ethernet, Infiniband and the VIA interface. However, we have tested MySQL Cluster so far only with SCI sockets. See Section 17.3.5.1, "Configuring MySQL Cluster to use SCI Sockets", for information on how to set up SCI sockets using ordinary TCP/IP for MySQL Cluster.

Copyright © 1997, 2013, Oracle and/or its affiliates. All rights reserved. Legal Notices
(Sebelumnya) 17.3. MySQL Cluster Configuration17.4. MySQL Cluster Programs (Berikutnya)