Using High-Speed Interconnects with NDB Cluster 23.3.3.14 Configuring NDB Cluster Send Buffer Parameters 23.3.4 Using High-Speed Interconnects with NDB Cluster The  NDB  kernel employs a unified send buffer whose memory is allocated dynamically from a pool shared by all transporters. This means that the size of the send buffer can be adjusted as necessary. Configuration of the unified send buffer can accomplished by setting the following parameters: To be backward-compatible with existing configurations, this parameter takes as its default value the sum of the maximum send buffer sizes of all configured transporters, plus an additional 32KB (one page) per transporter. The maximum depends on the type of transporter, as shown in the following table: This enables existing configurations to function in close to the same way as they did with NDB Cluster 6.3 and earlier, with the same amount of memory and send buffer space available to each transporter. However, memory that is unused by one transporter is not available to other transporters. You can use the  ndbinfo.transporters  table to monitor send buffer memory usage, and to detect slowdown and overload conditions that can adversely affect performance. 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 NDB Cluster codebase provides for four different transporters: • TCP/IP using 100 Mbps or gigabit Ethernet , as discussed in Section 23.3.3.10, “NDB Cluster TCP/IP Connections” . • Direct (machine-to-machine) TCP/IP ; although this transporter uses the same TCP/IP protocol as mentioned in the previous item, it requires setting up the hardware differently and is configured 4236 • SendBufferMemory.   This value denotes a hard limit for the amount of memory that may be used by a single transporter out of the entire pool specified by  TotalSendBufferMemory . However, the sum of  SendBufferMemory  for all configured transporters may be greater than the TotalSendBufferMemory  that is set for a given node. This is a way to save memory when many nodes are in use, as long as the maximum amount of memory is never required by all transporters at the same time. • OverloadLimit.   This parameter is used in the  config.ini  file  [tcp]  section, and denotes the amount of unsent data (in bytes) that must be present in the send buffer before the connection is considered overloaded. When such an overload condition occurs, transactions that affect the overloaded connection fail with NDB API Error 1218 ( Send Buffers overloaded in NDB kernel ) until the overload status passes. The default value is 0, in which case the effective overload limit is calculated as SendBufferMemory * 0.8  for a given connection. The maximum value for this parameter is 4G. • TotalSendBufferMemory.   This parameter can be set for all types of NDB Cluster nodes—that is, it can be set in the  [ndbd] ,  [mgm] , and  [api]  (or  [mysql] ) sections of the  config.ini  file. It represents the total amount of memory (in bytes) to be allocated by each node for which it is set for use among all configured transporters. If set, its minimum is 256KB; the maximum is 4294967039. Transporter Maximum Send Buffer Size (bytes) TCP SendBufferMemory  (default = 2M) SHM 20K Table 23.23 Transporter types with maximum send buffer sizes