NDB Cluster Configuration Files MaxDMLOperationsPerTransaction  sets the maximum number of DML operations that can be performed in a given transaction. Each cluster data node requires a transaction record for each active transaction in the cluster. The task of coordinating transactions is distributed among all of the data nodes. The total number of transaction records in the cluster is the number of transactions in any given node times the number of nodes in the cluster. Transaction records are allocated to individual MySQL servers. Each connection to a MySQL server requires at least one transaction record, plus an additional transaction object per table accessed by that connection. This means that a reasonable minimum for the total number of transactions in the cluster can be expressed as Suppose that there are 10 SQL nodes using the cluster. A single join involving 10 tables requires 11 transaction records; if there are 10 such joins in a transaction, then 10 * 11 = 110 transaction records are required for this transaction, per MySQL server, or 110 * 10 = 1100 transaction records total. Each data node can be expected to handle TotalNoOfConcurrentTransactions / number of data nodes. For an NDB Cluster having 4 data nodes, this would mean setting  MaxNoOfConcurrentTransactions on each data node to 1100 / 4 = 275. In addition, you should provide for failure recovery by ensuring that a single node group can accommodate all concurrent transactions; in other words, that each data node’s MaxNoOfConcurrentTransactions is sufficient to cover a number of transactions equal to TotalNoOfConcurrentTransactions / number of node groups. If this cluster has a single node group, then  MaxNoOfConcurrentTransactions  should be set to 1100 (the same as the total number of concurrent transactions for the entire cluster). In addition, each transaction involves at least one operation; for this reason, the value set for  MaxNoOfConcurrentTransactions  should always be no more than the value of MaxNoOfConcurrentOperations . This parameter must be set to the same value for all cluster data nodes. This is due to the fact that, when a data node fails, the oldest surviving node re-creates the transaction state of all transactions that were ongoing in the failed node. It is possible to change this value using a rolling restart, but the amount of traffic on the cluster must be such that no more transactions occur than the lower of the old and new levels while this is taking place. The default value is 4096. 4079 Version (or later) NDB 8.0.13 • MaxNoOfConcurrentOperations TotalNoOfConcurrentTransactions = (maximum number of tables accessed in any single transaction + 1) * number of SQL nodes • MaxNoOfConcurrentTransactions Version (or later) NDB 8.0.13 Type or units integer Default 4096 Range 32 - 4294967039 (0xFFFFFEFF) Deprecated NDB 8.0.19 Restart Type N (NDB 8.0.13)