Documentation Home
MySQL NDB Cluster 6.1 - 7.1 Release Notes
Download these Release Notes
PDF (US Ltr) - 3.0Mb
PDF (A4) - 3.0Mb

MySQL NDB Cluster 6.1 - 7.1 Release Notes  /  Changes in MySQL Cluster NDB 7.0  /  Changes in MySQL Cluster NDB 7.0.15 (5.1.44-ndb-7.0.15) (2010-05-31)

Changes in MySQL Cluster NDB 7.0.15 (5.1.44-ndb-7.0.15) (2010-05-31)

This release incorporates new features in the NDB storage engine and fixes recently discovered bugs in MySQL Cluster NDB 7.0.14.

Obtaining MySQL Cluster NDB 7.0.15.  The latest MySQL Cluster NDB 7.0 binaries for supported platforms can be obtained from 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

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.44 (see Changes in MySQL 5.1.44 (2010-02-04)).


Please refer to our bug database at for more details about the individual bugs fixed in this version.

Functionality Added or Changed

  • Important Change: The maximum number of attributes (columns plus indexes) per table has increased to 512.

  • A --wait-nodes option has been added for ndb_waiter. When this option is used, the program waits only for the nodes having the listed IDs to reach the desired state. For more information, see ndb_waiter — Wait for MySQL Cluster to Reach a Given Status. (Bug #52323)

  • As part of this change, new methods relating to default values have been added to the Column and Table classes in the NDB API. For more information, see Column::getDefaultValue(), Column::setDefaultValue(), and Table::hasDefaultValues(). (Bug #30529)

  • Added the MySQL Cluster management server option --config-cache, which makes it possible to enable and disable configuration caching. This option is turned on by default; to disable configuration caching, start ndb_mgmd with --config-cache=0, or with --skip-config-cache. See ndb_mgmd — The MySQL Cluster Management Server Daemon, for more information.

  • Added the --skip-unknown-objects option for ndb_restore. This option causes ndb_restore to ignore any schema objects which it does not recognize. Currently, this is useful chiefly for restoring native backups made from a cluster running MySQL Cluster NDB 7.0 to a cluster running MySQL Cluster NDB 6.3.

Bugs Fixed

  • When attempting to create an NDB table on an SQL node that had not yet connected to a MySQL Cluster management server since the SQL node's last restart, the CREATE TABLE statement failed as expected, but with the unexpected Error 1495 For the partitioned engine it is necessary to define all partitions. (Bug #11747335, Bug #31853)

  • After creating NDB tables until creation of a table failed due to NDB error 905 Out of attribute records (increase MaxNoOfAttributes), then increasing MaxNoOfAttributes and restarting all management node and data node processes, attempting to drop and re-create one of the tables failed with the error Out of table records..., even when sufficient table records were available. (Bug #53944)

    References: See also: Bug #52055. This issue is a regression of: Bug #44294.

  • Creating a Disk Data table, dropping it, then creating an in-memory table and performing a restart, could cause data node processes to fail with errors in the DBTUP kernel block if the new table's internal ID was the same as that of the old Disk Data table. This could occur because undo log handling during the restart did not check that the table having this ID was now in-memory only. (Bug #53935)

  • A table created while ndb_table_no_logging was enabled was not always stored to disk, which could lead to a data node crash with Error opening DIH schema files for table. (Bug #53934)

  • An internal buffer allocator used by NDB has the form alloc(wanted, minimum) and attempts to allocate wanted pages, but is permitted to allocate a smaller number of pages, between wanted and minimum. However, this allocator could sometimes allocate fewer than minimum pages, causing problems with multi-threaded building of ordered indexes. (Bug #53580)

  • When compiled with support for epoll but this functionality is not available at runtime, MySQL Cluster tries to fall back to use the select() function in its place. However, an extra ndbout_c() call in the transporter registry code caused ndbd to fail instead. (Bug #53482)

  • The value set for the ndb_mgmd option --ndb-nodeid was not verified prior to use as being within the permitted range (1 to 255, inclusive), leading to a crash of the management server. (Bug #53412)

  • NDB truncated a column declared as DECIMAL(65,0) to a length of 64. Now such a column is accepted and handled correctly. In cases where the maximum length (65) is exceeded, NDB now raises an error instead of truncating. (Bug #53352)

  • When an NDB log handler failed, the memory allocated to it was freed twice. (Bug #53200)

  • Setting DataMemory higher than 4G on 32-bit platforms caused ndbd to crash, instead of failing gracefully with an error. (Bug #52536, Bug #50928)

  • When the LogDestination parameter was set using with a relative path, the management server failed to store its value unless started with --initial or --reload. (Bug #52268)

  • When creating an index, NDB failed to check whether the internal ID allocated to the index was within the permissible range, leading to an assertion. This issue could manifest itself as a data node failure with NDB error 707 (No more table metadata records (increase MaxNoOfTables)), when creating tables in rapid succession (for example, by a script, or when importing from mysqldump), even with a relatively high value for MaxNoOfTables and a relatively low number of tables. (Bug #52055)

  • ndb_restore did not raise any errors if hashmap creation failed during execution. (Bug #51434)

  • Specifying the node ID as part of the --ndb-connectstring option to mysqld was not handled correctly.

    The fix for this issue includes the following changes:

    • Multiple occurrences of any of the mysqld options --ndb-connectstring, --ndb-mgmd-host, and --ndb-nodeid are now handled in the same way as with other MySQL server options, in that the value set in the last occurrence of the option is the value that is used by mysqld.

      Now, if --ndb-nodeid is used, its value overrides that of any nodeid setting used in --ndb-connectstring. For example, starting mysqld with --ndb-connectstring=nodeid=1, --ndb-nodeid=3 now produces the same result as starting it with --ndb-connectstring=nodeid=3,

    • The 1024-character limit on the length of the connection string is removed, and --ndb-connectstring is now handled in this regard in the same way as other mysqld options.

    • In the NDB API, a new constructor for Ndb_cluster_connection is added which takes as its arguments a connection string and the node ID to force the API node to use.

    (Bug #44299)

  • NDB did not distinguish correctly between table names differing only by lettercase when lower_case_table_names was set to 0. (Bug #33158)

  • ndb_mgm -e "ALL STATUS" erroneously reported that data nodes remained in start phase 0 until they had actually started.

  • Replication: A buffer overrun in the handling of DATE column values could cause mysqlbinlog to fail when reading logs containing certain combinations of DML statements on a table having a DATE column followed by dropping the table. (Bug #52202)

  • Cluster Replication: Replication failed after a restart of the slave SQL node, due to an error in writing the file. (Bug #52859)

  • ALTER TABLE did not work correctly where the name of the table, the database, or both contained special characters, causing the MySQL server to crash. (Bug #52225)

    References: See also: Bug #53409, Bug #14959.

  • The performance of MySQL applications using non-persistent client connections was adversely affected due to many of these connections being kept waiting for an excessive length of time in cleanup phase while being closed. (Bug #48832)

  • The MySQL client library mishandled EINPROGRESS errors for connections in nonblocking mode. This could lead to replication failures on hosts capable of resolving both IPv4 and IPv6 network addresses, when trying to resolve localhost. (Bug #37267)

    References: See also: Bug #44344.