This release incorporates new features in the
NDB storage engine and fixes
recently discovered bugs in MySQL Cluster NDB 7.0.6.
Obtaining MySQL Cluster NDB 7.0.7. The latest MySQL Cluster NDB 7.0 binaries for supported platforms can be obtained from http://dev.mysql.com/downloads/cluster/. Source code for the latest MySQL Cluster NDB 7.0 release can be obtained from the same location. You can also access the MySQL Cluster NDB 7.0 development source tree at https://code.launchpad.net/~mysql/mysql-server/mysql-cluster-7.0.
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.1 through MySQL 5.1.35 (see Changes in MySQL 5.1.35 (2009-05-13)).
Please refer to our bug database at http://bugs.mysql.com/ for more details about the individual bugs fixed in this version.
Important Change: The default value of the
DiskIOThreadPooldata node configuration parameter has changed from 8 to 2.
On Solaris platforms, the MySQL Cluster management server and NDB API applications now use
CLOCK_REALTIMEas the default clock. (Bug #46183)
Formerly, node IDs were represented in the cluster log using a complex hexadecimal/binary encoding scheme. Now, node IDs are reported in the cluster log using numbers in standard decimal notation. (Bug #44248)
A new option
--exclude-missing-columnshas been added for the ndb_restore program. In the event that any tables in the database or databases being restored to have fewer columns than the same-named tables in the backup, the extra columns in the backup's version of the tables are ignored. For more information, see ndb_restore — Restore a MySQL Cluster Backup. (Bug #43139)
This issue, originally resolved in MySQL 5.1.16, re-occurred due to a later (unrelated) change. The fix has been re-applied.
Previously, it was possible to disable arbitration only by setting
ArbitrationRankto 0 on all management and API nodes. A new data node configuration parameter
Arbitrationsimplifies this task; to disable arbitration, you can now use
Arbitration = Disabledin the
[ndbd default]section of the
It is now also possible to configure arbitration in such a way that the cluster waits until the time determined by
ArbitrationTimeoutpasses for an external manager to perform arbitration instead of handling it internally. This can be done by setting
Arbitration = WaitExternalin the
[ndbd default]section of the
The default value for the Arbitration parameter is
Default, which permits arbitration to proceed normally, as determined by the
ArbitrationRanksettings for the management and API nodes.
For more information, see Defining MySQL Cluster Data Nodes.
Important Change: The IPv6 loopback address
::1was interpreted as a hostname rather than a numeric IP address.
In addition, the IPv6-enabled server on Windows interpreted the hostname
::1only, which failed to match the default
'root'@'127.0.0.1'account in the
As a result of this fix, a
'root'@'::1'account is added to the
mysql.usertable as one of the default accounts created during MySQL installation.
References: See also Bug #38247, Bug #11753779, Bug #45584, Bug #45606.
pkginstaller for MySQL Cluster on Solaris did not perform a complete installation due to an invalid directory reference in the postinstall script. (Bug #41998)
When using multi-threaded data node processes (ndbmtd), it was possible for LQH threads to continue running even after all
NDBtables had been dropped. This meant that dropping the last remaining
NDBtable during a local checkpoint could cause multi-threaded data nodes to fail. (Bug #46890)
During a global checkpoint, LQH threads could run unevenly, causing a circular buffer overflow by the Subscription Manager, which led to data node failure. (Bug #46782)
References: See also Bug #46123, Bug #46723, Bug #45612.
Restarting the cluster following a local checkpoint and an online
ALTER TABLEon a non-empty table caused data nodes to crash. (Bug #46651)
A combination of index creation and drop operations (or creating and dropping tables having indexes) with node and system restarts could lead to a crash. (Bug #46552)
Following an upgrade from MySQL Cluster NDB 6.3.x to MySQL Cluster NDB 7.0.6, DDL and backup operations failed. (Bug #46494, Bug #46563)
Full table scans failed to execute when the cluster contained more than 21 table fragments.Note
The number of table fragments in the cluster can be calculated as the number of data nodes, times 8 (that is, times the value of the internal constant
MAX_FRAG_PER_NODE), divided by the number of replicas. Thus, when
NoOfReplicas = 1at least 3 data nodes were required to trigger this issue, and when
NoOfReplicas = 2at least 4 data nodes were required to do so.
Killing MySQL Cluster nodes immediately following a local checkpoint could lead to a crash of the cluster when later attempting to perform a system restart.
The exact sequence of events causing this issue was as follows:
Local checkpoint occurs.
Immediately following the LCP, kill the master data node.
Kill the remaining data nodes within a few seconds of killing the master.
Attempt to restart the cluster.
Creating an index when the cluster had run out of table records could cause data nodes to crash. (Bug #46295)
Ending a line in the
config.inifile with an extra semicolon character (
;) caused reading the file to fail with a parsing error. (Bug #46242)
When combining an index scan and a delete with a primary key delete, the index scan and delete failed to initialize a flag properly. This could in rare circumstances cause a data node to crash. (Bug #46069)
AutoReconnectconfiguration parameter for API nodes (including SQL nodes) has been added. This is intended to prevent API nodes from re-using allocated node IDs during cluster restarts. For more information, see Defining SQL and Other API Nodes in a MySQL Cluster.
DML statements run during an upgrade from MySQL Cluster NDB 6.3 to NDB 7.0 were not handled correctly. (Bug #45917)
On Windows, the internal
basestring_vsprintf()function did not return a POSIX-compliant value as expected, causing the management server to crash when trying to start a MySQL Cluster with more than 4 data nodes. (Bug #45733)
The signals used by ndb_restore to send progress information about backups to the cluster log accessed the cluster transporter without using any locks. Because of this, it was theoretically possible that these signals could be interefered with by heartbeat signals if both were sent at the same time, causing the ndb_restore messages to be corrupted. (Bug #45646)
Due to changes in the way that
NDBCLUSTERhandles schema changes (implementation of schema transactions) in MySQL Cluster NDB 7.0, it was not possible to create MySQL Cluster tables having more than 16 indexes using a single
This issue occurs only in MySQL Cluster NDB 7.0 releases prior to 7.0.7 (including releases numbered NDB 6.4.x).
If you are not yet able to upgrade from an earlier MySQL Cluster NDB 7.0 release, you can work around this problem by creating the table without any indexes, then adding the indexes using a separate
CREATE INDEXstatement for each index. (Bug #45525)
storage/ndb/src/common/util/CMakeLists.txtdid not build the BaseString-t test program for Windows as the equivalent
storage/ndb/src/common/util/Makefile.amdoes when building MySQL Cluster on Unix platforms. (Bug #45099)
Problems could arise when using
VARCHARcolumns whose size was greater than 341 characters and which used the
utf8_unicode_cicollation. In some cases, this combination of conditions could cause certain queries and
OPTIMIZE TABLEstatements to crash mysqld. (Bug #45053)
The warning message Possible bug in Dbdih::execBLOCK_COMMIT_ORD ... could sometimes appear in the cluster log. This warning is obsolete, and has been removed. (Bug #44563)
Debugging code causing ndbd to use file compression on NTFS file systems failed with an error. (The code was removed.) This issue affected debug builds of MySQL Cluster on Windows platforms only. (Bug #44418)
ALTER TABLE REORGANIZE PARTITIONcould fail with Error 741 (Unsupported alter table) if the appropriate hash-map was not present. This could occur when adding nodes online; for example, when going from 2 data nodes to 3 data nodes with
NoOfReplicas=1, or from 4 data nodes to 6 data nodes with
NoOfReplicas=2. (Bug #44301)
GCP STOPevent was written to the cluster log as an
INFOevent. Now it is logged as a
WARNINGevent instead. (Bug #43853)
If the cluster crashed during the execution of a
CREATE LOGFILE GROUPstatement, the cluster could not be restarted afterward. (Bug #36702)
References: See also Bug #34102.
Partitioning; Disk Data: An
NDBtable created with a very large value for the
MAX_ROWSoption could—if this table was dropped and a new table with fewer partitions, but having the same table ID, was created—cause ndbd to crash when performing a system restart. This was because the server attempted to examine each partition whether or not it actually existed. (Bug #45154)
References: See also Bug #58638.
Disk Data: If the value set in the
FileSystemPathUndoFileswas identical to the value set for
FileSystemPath, that parameter was ignored when starting the data node with
--initialoption. As a result, the Disk Data files in the corresponding directory were not removed when performing an initial start of the affected data node or data nodes. (Bug #46243)
For an IPv6-enabled MySQL server, privileges specified using standard IPv4 addresses for hosts were not matched (only IPv4-mapped addresses were handled correctly).
As part of the fix for this bug, a new build option
--disable-ipv6has been introduced. Compiling MySQL with this option causes all IPv6-specific code in the server to be ignored.Important
If the server has been compiled using
--disable-ipv6, it is not able to resolve hostnames correctly when run in an IPv6 environment.
(Bug #11754062, Bug #45606)
References: See also Bug #38247, Bug #43006, Bug #45584.
The hostname cache failed to work correctly. (Bug #45584)
References: See also Bug #38247, Bug #43006, Bug #11753779, Bug #45606.
An IPv6-enabled MySQL server did not resolve the IP addresses of incoming connections correctly, with the result that a connection that attempted to match any privilege table entries using fully qualified domain names for hostnames or hostnames using wildcards were dropped. (Bug #38247)
References: See also Bug #43006, Bug #11753779, Bug #45584, Bug #45606.