-
Important Change: MySQL NDB 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 NDB Cluster 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.
-
Important Change: The MySQL NDB Cluster distribution now includes a browser-based graphical configuration wizard that assists the user in configuring and deploying a MySQL NDB 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 NDB Cluster Auto-Installer (No longer supported).
-
Important Change: MySQL NDB Cluster now supports foreign key constraints between
NDB
tables, including support forCASCADE
,SET NULL
, andRESTRICT
andNO ACTION
reference options forDELETE
andUPDATE
actions. (MySQL currently does not supportSET 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 NDB 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 anNDB
table to reference an index of anInnoDB
table.)Note that MySQL NDB Cluster tables that are explicitly partitioned by
KEY
orLINEAR KEY
may contain foreign key references or be referenced by foreign keys (or both). This is unlike the case withInnoDB
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 anotherNDB
table usingCREATE TABLE ... [CONSTRAINT] FOREIGN KEY ... REFERENCES
. A child table's foreign key definitions can be seen in the output ofSHOW CREATE TABLE
; you can also obtain information about foreign keys by querying theINFORMATION_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 FOREIGN KEY Constraints.
-
NDB Cluster APIs: MySQL NDB Cluster 7.3 includes support for JavaScript applications written against Node.js with MySQL NDB 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 back-end adapters: the
ndb
adapter, which uses the NDB API to provide high-performance native access to MySQL NDB Cluster; and themysql-js
adapter, which uses the MySQL Server and thenode-mysql
driver available from https://github.com/felixge/node-mysql/ .The Connector for JavaScript is included with the MySQL NDB Cluster distribution, and contains setup programs which can assist you with installation of the connector. You must have Node.js and MySQL NDB Cluster installed prior to running the setup scripts. The
node-mysql
driver is also required for themysql-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.
-
Important Change: The behavior of and values used for the
TCP_RCV_BUF_SIZE
andTCP_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 bothTCP_RCV_BUF_SIZE
andTCP_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.
NDB Cluster APIs: 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 NDB 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)
API: mysqld failed to respond when
mysql_shutdown()
was invoked from a C application, or mysqladminshutdown
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 anALTER [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)