MySQL Cluster 7.3 Release Notes  /  Changes in MySQL Cluster NDB 7.3.1 (5.6.10-ndb-7.3.1) (2013-04-17, Development Milestone)

Changes in MySQL Cluster NDB 7.3.1 (5.6.10-ndb-7.3.1) (2013-04-17, Development Milestone)

MySQL Cluster NDB 7.3.1 is a new Developer Milestone release of MySQL Cluster, based on MySQL Server 5.6 and previewing new features under development for version 7.3 of the NDB storage engine, as well as fixing a number of recently discovered bugs in previous releases.

Obtaining MySQL Cluster NDB 7.3. MySQL Cluster NDB 7.3 source code and binaries can be obtained from

This release also incorporates all bugfixes and changes made in previous MySQL Cluster releases, as well as all bugfixes and feature changes which were added in mainline MySQL 5.6 through MySQL 5.6.10 (see Changes in MySQL 5.6.10 (2013-02-05, General Availability)).

Based on MySQL Server 5.6

  • Important Change: MySQL Cluster SQL nodes are now based on MySQL Server 5.6. For information about feature additions and other changes made in MySQL 5.6, see What Is New in MySQL 5.6.

    The mysqld binary provided with MySQL Cluster NDB 7.3.1 is based on MySQL Server 5.6.10, and includes all MySQL Server 5.6 feature enhancements and bug fixes found in that release; see Changes in MySQL 5.6.10 (2013-02-05, General Availability), for information about these.

MySQL Cluster GUI Configuration Wizard

  • Important Change: The MySQL Cluster distribution now includes a browser-based graphical configuration wizard that assists the user in configuring and deploying a MySQL Cluster. This deployment can consist of an arbitrary number of nodes (within certain limits) on the user machine only, or include nodes distributed on a local network. The wizard can be launched from the command line (using the ndb_setup utility now included in the binary distribution) or a desktop file browser.

    For more information about this tool, see The MySQL Cluster Auto-Installer.

Support for Foreign Key Constraints

  • Important Change: MySQL Cluster now supports foreign key constraints between NDB tables, including support for CASCADE, SET NULL, and RESTRICT and NO ACTION reference options for DELETE and UPDATE actions. (MySQL currently does not support SET DEFAULT.)

    MySQL requires generally that all child and parent tables in foreign key relationships employ the same storage engine; thus, to use foreign keys with MySQL Cluster tables, the child and parent table must each use the NDB storage engine. (It is not possible, for example, for a foreign key on an NDB table to reference an index of an InnoDB table.)

    Note that MySQL Cluster tables that are explicitly partitioned by KEY or LINEAR KEY may contain foreign key references or be referenced by foreign keys (or both). This is unlike the case with InnoDB tables that are user partitioned, which may not have any foreign key relationships.

    You can create an NDB table having a foreign key reference on another NDB table using CREATE TABLE ... [CONSTRAINT] FOREIGN KEY ... REFERENCES. A child table's foreign key definitions can be seen in the output of SHOW CREATE TABLE; you can also obtain information about foreign keys by querying the INFORMATION_SCHEMA.KEY_COLUMN_USAGE table.

    FOREIGN KEY Constraints, provides general information about foreign key support in MySQL. For more information about the syntax supported by MySQL for foreign keys, see Using FOREIGN KEY Constraints.

NoSQL Connector for JavaScript (Node.js)

  • Cluster API: MySQL Cluster NDB 7.3 includes support for JavaScript applications written against Node.js with MySQL Cluster and MySQL Server as a data store. The Connector for JavaScript provides a domain object model similar in many ways to that employed by ClusterJ (see The ClusterJ API and Data Object Model) and can be used with either of two backend adapters: the ndb adapter, which uses the NDB API to provide high-performance native access to MySQL Cluster; and the mysql-js adapter, which uses the MySQL Server and the node-mysql driver available from .

    The Connector for JavaScript is included with the MySQL Cluster distribution, and contains setup programs which can assist you with installation of the connector. You must have Node.js and MySQL Cluster installed prior to running the setup scripts. The node-mysql driver is also required for the mysql-js Node.js adapter; you can install this using the package management tool included with Node.js. For more information, see MySQL NoSQL Connector for JavaScript.

Functionality Added or Changed

  • Important Change: The behavior of and values used for the TCP_RCV_BUF_SIZE and TCP_SND_BUF_SIZE TCP configuration parameters have been improved. Formerly, the default values for these parameters were 70080 and 71540, respectively—which it was later found could lead to excessive timeouts in some circumstances—with the minimum for each of them being 1. Now, the default and recommended value is 0 for both TCP_RCV_BUF_SIZE and TCP_SND_BUF_SIZE, which allows the operating system or platform to choose the send or receive buffer size for TCP sockets. (Bug #14554519)

    References: See also Bug #14168828.

  • Cluster API: Added DUMP code 2514, which provides information about counts of transaction objects per API node. For more information, see DUMP 2514. See also Commands in the MySQL Cluster Management Client. (Bug #15878085)

  • When ndb_restore fails to find a table, it now includes in the error output an NDB API error code giving the reason for the failure. (Bug #16329067)

  • Data node logs now provide tracking information about arbitrations, including which nodes have assumed the arbitrator role and at what times. (Bug #11761263, Bug #53736)

Bugs Fixed

  • Important Note; Cluster Replication: Setting binlog_row_image=minimal caused MySQL Cluster replication conflict resolution to fail.

    To fix this problem, support for this variable is disabled in the NDB storage engine such that setting it or the corresponding --binlog-row-image server option has no effect for NDB tables. (Bug #16316828)

  • API: mysqld failed to respond when mysql_shutdown() was invoked from a C application, or mysqladmin shutdown was run from the command line. (Bug #14849574)

  • When an update of an NDB table changes the primary key (or part of the primary key), the operation is executed as a delete plus an insert. In some cases, the initial read operation did not retrieve all column values required by the insert, so that another read was required. This fix ensures that all required column values are included in the first read in such cases, which saves the overhead of an additional read operation. (Bug #16614114)

  • Pushed joins executed when optimizer_switch='batched_key_access=on' was also in use returned incorrect results. (Bug #16437431)

  • Selecting from the INFORMATION_SCHEMA.KEY_COLUMN_USAGE table while using tables with foreign keys caused mysqld to crash. (Bug #16246874, Bug #68224)

  • Including a table as a part of a pushed join should be rejected if there are outer joined tables in between the table to be included and the tables with which it is joined with; however the check as performed for any such outer joined tables did so by checking the join type against the root of the pushed query, rather than the common ancestor of the tables being joined. (Bug #16199028)

    References: See also Bug #16198866.

  • Some queries were handled differently with ndb_join_pushdown enabled, due to the fact that outer join conditions were not always pruned correctly from joins before they were pushed down. (Bug #16198866)

    References: See also Bug #16199028.

  • Attempting to perform additional operations such as ADD COLUMN as part of an ALTER [ONLINE | OFFLINE] TABLE ... RENAME ... statement is not supported, and now fails with an ER_NOT_SUPPORTED_YET error. (Bug #16021021)

  • Purging the binary logs could sometimes cause mysqld to crash. (Bug #15854719)

  • ndbmemcache: When using a large values table, memcached failed to store flags correctly or not at all in NDB, even when it had been configured to, as follows:

    • In MySQL Cluster NDB 7.2.4 and earlier, the flags value was never stored for long values, even if configured to do so.

    • In MySQL Cluster NDB 7.2.6 and later, non-zero flags values were correctly stored for long values, but a value of zero was not stored.

    In addition, because some clients (such as Spymemcached for Java) use the flags field, this fix also enables storage of flags for the values table by default. (Bug #14088078)

Download these Release Notes
PDF (US Ltr) - 384.0Kb
PDF (A4) - 387.5Kb
EPUB - 125.5Kb