21.3.3.10 NDB Cluster TCP/IP Connections

TCP/IP is the default transport mechanism for all connections between nodes in an NDB Cluster. Normally it is not necessary to define TCP/IP connections; NDB Cluster automatically sets up such connections for all data nodes, management nodes, and SQL or API nodes.

To override the default connection parameters, it is necessary to define a connection using one or more [tcp] sections in the config.ini file. Each [tcp] section explicitly defines a TCP/IP connection between two NDB Cluster nodes, and must contain at a minimum the parameters NodeId1 and NodeId2, as well as any connection parameters to override.

It is also possible to change the default values for these parameters by setting them in the [tcp default] section.

Important

Any [tcp] sections in the config.ini file should be listed last, following all other sections in the file. However, this is not required for a [tcp default] section. This requirement is a known issue with the way in which the config.ini file is read by the NDB Cluster management server.

Connection parameters which can be set in [tcp] and [tcp default] sections of the config.ini file are listed here:

  • Checksum

    Table 21.207 This table provides type and value information for the Checksum TCP configuration parameter

    Property Value
    Version (or later) NDB 7.5.0
    Type or units boolean
    Default false
    Range true, false
    Restart Type N

    This parameter is a boolean parameter (enabled by setting it to Y or 1, disabled by setting it to N or 0). It is disabled by default. When it is enabled, checksums for all messages are calculated before they placed in the send buffer. This feature ensures that messages are not corrupted while waiting in the send buffer, or by the transport mechanism.

  • Group

    When ndb_optimized_node_selection is enabled, node proximity is used in some cases to select which node to connect to. This parameter can be used to influence proximity by setting it to a lower value, which is interpreted as closer. See the description of the system variable for more information.

  • HostName1

    Table 21.208 This table provides type and value information for the HostName1 TCP configuration parameter

    Property Value
    Version (or later) NDB 7.5.0
    Type or units name or IP address
    Default [none]
    Range ...
    Restart Type N

    The HostName1 and HostName2 parameters can be used to specify specific network interfaces to be used for a given TCP connection between two nodes. The values used for these parameters can be host names or IP addresses.

  • HostName2

    Table 21.209 This table provides type and value information for the HostName1 TCP configuration parameter

    Property Value
    Version (or later) NDB 7.5.0
    Type or units name or IP address
    Default [none]
    Range ...
    Restart Type N

    The HostName1 and HostName2 parameters can be used to specify specific network interfaces to be used for a given TCP connection between two nodes. The values used for these parameters can be host names or IP addresses.

  • NodeId1

    Table 21.210 This table provides type and value information for the NodeId1 TCP configuration parameter

    Property Value
    Version (or later) NDB 7.5.0
    Type or units numeric
    Default [none]
    Range 1 - 255
    Restart Type N

    To identify a connection between two nodes it is necessary to provide their node IDs in the [tcp] section of the configuration file as the values of NodeId1 and NodeId2. These are the same unique Id values for each of these nodes as described in Section 21.3.3.7, “Defining SQL and Other API Nodes in an NDB Cluster”.

  • NodeId2

    Table 21.211 This table provides type and value information for the NodeId2 TCP configuration parameter

    Property Value
    Version (or later) NDB 7.5.0
    Type or units numeric
    Default [none]
    Range 1 - 255
    Restart Type N

    To identify a connection between two nodes it is necessary to provide their node IDs in the [tcp] section of the configuration file as the values of NodeId1 and NodeId2. These are the same unique Id values for each of these nodes as described in Section 21.3.3.7, “Defining SQL and Other API Nodes in an NDB Cluster”.

  • OverloadLimit

    Table 21.212 This table provides type and value information for the OverloadLimit TCP configuration parameter

    Property Value
    Version (or later) NDB 7.5.0
    Type or units bytes
    Default 0
    Range 0 - 4294967039 (0xFFFFFEFF)
    Restart Type N

    When more than this many unsent bytes are in the send buffer, the connection is considered overloaded.

    This parameter can be used to determine the amount of unsent data that must be present in the send buffer before the connection is considered overloaded. See Section 21.3.3.13, “Configuring NDB Cluster Send Buffer Parameters”, for more information.

  • PortNumber (OBSOLETE)

    This parameter formerly specified the port number to be used for listening for connections from other nodes. It is now deprecated (and removed in NDB Cluster 7.5); use the ServerPort data node configuration parameter for this purpose instead (Bug #77405, Bug #21280456).

  • PreSendChecksum

    Table 21.213 This table provides type and value information for the PreSendChecksum TCP configuration parameter

    Property Value
    Version (or later) NDB 7.6.6
    Type or units boolean
    Default false
    Range true, false
    Restart Type S
    Added NDB 7.6.6

    If this parameter and Checksum are both enabled, perform pre-send checksum checks, and check all TCP signals between nodes for errors. Has no effect if Checksum is not also enabled.

  • ReceiveBufferMemory

    Table 21.214 This table provides type and value information for the ReceiveBufferMemory TCP configuration parameter

    Property Value
    Version (or later) NDB 7.5.0
    Type or units bytes
    Default 2M
    Range 16K - 4294967039 (0xFFFFFEFF)
    Restart Type N

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

    The default value of this parameter is 2MB. The minimum possible value is 16KB; the theoretical maximum is 4GB.

  • SendBufferMemory

    Table 21.215 This table provides type and value information for the SendBufferMemory TCP configuration parameter

    Property Value
    Version (or later) NDB 7.5.0
    Type or units unsigned
    Default 2M
    Range 256K - 4294967039 (0xFFFFFEFF)
    Restart Type N

    TCP transporters use a buffer to store all messages before performing the send call to the operating system. When this buffer reaches 64KB its contents are sent; these are also sent when a round of messages have been executed. To handle temporary overload situations it is also possible to define a bigger send buffer.

    If this parameter is set explicitly, then the memory is not dedicated to each transporter; instead, the value used denotes the hard limit for how much memory (out of the total available memory—that is, TotalSendBufferMemory) that may be used by a single transporter. For more information about configuring dynamic transporter send buffer memory allocation in NDB Cluster, see Section 21.3.3.13, “Configuring NDB Cluster Send Buffer Parameters”.

    The default size of the send buffer is 2MB, which is the size recommended in most situations. The minimum size is 64 KB; the theoretical maximum is 4 GB.

  • SendSignalId

    Table 21.216 This table provides type and value information for the SendSignalId TCP configuration parameter

    Property Value
    Version (or later) NDB 7.5.0
    Type or units boolean
    Default false (debug builds: true)
    Range true, false
    Restart Type N

    To be able to retrace a distributed message datagram, it is necessary to identify each message. When this parameter is set to Y, message IDs are transported over the network. This feature is disabled by default in production builds, and enabled in -debug builds.

  • TcpBind_INADDR_ANY

    Setting this parameter to TRUE or 1 binds IP_ADDR_ANY so that connections can be made from anywhere (for autogenerated connections). The default is FALSE (0).

  • TCP_MAXSEG_SIZE

    Table 21.217 This table provides type and value information for the TCP_MAXSEG_SIZE TCP configuration parameter

    Property Value
    Version (or later) NDB 7.5.0
    Type or units unsigned
    Default 0
    Range 0 - 2G
    Restart Type N

    Determines the size of the memory set during TCP transporter initialization. The default is recommended for most common usage cases.

  • TCP_RCV_BUF_SIZE

    Table 21.218 This table provides type and value information for the TCP_RCV_BUF_SIZE TCP configuration parameter

    Property Value
    Version (or later) NDB 7.5.0
    Type or units unsigned
    Default 0
    Range 0 - 2G
    Restart Type N

    Determines the size of the receive buffer set during TCP transporter initialization. The default and minimum value is 0, which allows the operating system or platform to set this value. The default is recommended for most common usage cases.

  • TCP_SND_BUF_SIZE

    Table 21.219 This table provides type and value information for the TCP_SND_BUF_SIZE TCP configuration parameter

    Property Value
    Version (or later) NDB 7.5.0
    Type or units unsigned
    Default 0
    Range 0 - 2G
    Restart Type N

    Determines the size of the send buffer set during TCP transporter initialization. The default and minimum value is 0, which allows the operating system or platform to set this value. The default is recommended for most common usage cases.

Restart types.  Information about the restart types used by the parameter descriptions in this section is shown in the following table:

Table 21.220 NDB Cluster restart types

Symbol Restart Type Description
N Node The parameter can be updated using a rolling restart (see Section 21.5.5, “Performing a Rolling Restart of an NDB Cluster”)
S System All cluster nodes must be shut down completely, then restarted, to effect a change in this parameter
I Initial Data nodes must be restarted using the --initial option