MySQL NDB Cluster 9.0.0 is a new Innovation release of NDB
Cluster, based on MySQL Server 9.0 and including features in
version 9.0 of the NDB
storage
engine, as well as fixing recently discovered bugs in previous NDB
Cluster releases.
Obtaining MySQL NDB Cluster 9.0. NDB Cluster 9.0 source code and binaries can be obtained from https://dev.mysql.com/downloads/cluster/.
For an overview of major changes made in NDB Cluster 9.0, see What is New in MySQL NDB Cluster 9.0.
This release also incorporates all bug fixes and changes made in previous NDB Cluster releases, as well as all bug fixes and feature changes which were added in mainline MySQL 9 through MySQL 9.0.0 (see Changes in MySQL 9.0.0 (2024-07-01, Innovation Release)).
-
NDB Cluster APIs:
Node.js
support in MySQL NDB Cluster is now deprecated, and you should expect its removal in a future release.You can also find the NDB Cluster
jones-ndb
driver forNode.js
athttps://github.com/mysql/mysql-js
, where it remains available to interested users. (WL #16245) NDB Client Programs: The ndb_size.pl utility is now deprecated and is no longer supported. You can expect it to be removed from a future version of the NDB Cluster distribution; for this reason, you should now modify any applications which depend on it accordingly. (WL #16456)
-
NDB Replication: Previously, information about the
NDB
replication applier was available to the user only as a set of server status variables, and only for the default replication channel.This release implements a new Performance Schema
ndb_replication_applier_status
table, which can be thought of as anNDB
-specific extension to the existingreplication_applier_status
table. This enhancement provides per-channel information about an applier's status, including information relating to NDB Cluster conflict detection and resolution, in table form.For more information about this table, see The ndb_replication_applier_status Table. For information about replication in NDB Cluster, see NDB Cluster Replication. (WL #16013)
Important Change: Now, when the removal of a data node file or directory fails with a file does not exist (ENOENT) error, this is treated as a successful removal.
ndbinfo Information Database: Added a
type
column to thetransporter_details
table in thendbinfo
information database. This column shows the type of connection used by the transporter, which is either ofTCP
orSHM
.NDB Client Programs: Added the
--CA-days
option to ndb_sign_keys to make it possible to specify a certificate's lifetime. (Bug #36549567)-
NDB Client Programs: When started, ndbd now produces a warning in the data node log like this one:
2024-05-28 13:32:16 [ndbd] WARNING -- Running ndbd with a single thread of signal execution. For multi-threaded signal execution run the ndbmtd binary.
(Bug #36326896)
-
NDB Cluster APIs: TLS connection errors were printed even though TLS was not specified for connections.
To fix this issue, following an ignored TLS error, we explicitly reset the error condition in the management handle to NO_ERROR. (Bug #36354973)
-
NDB Cluster APIs: It was possible to employ the following NDB API methods without them being used as
const
, although this alternative usage had long been deprecated (and was not actually documented):Now, each of these methods must always be invoked as
const
. (Bug #36165876) NDB Client Programs: In some cases, it was not possible to load cerificates generated using ndb_sign_keys. (Bug #36430004)
NDB Client Programs: ndb_redo_log_reader could not read data from encrypted files. (Bug #36313482)
-
NDB Client Programs: The following command-line options did not function correctly for the ndb_redo_log_reader utility program:
(Bug #36313427)
NDB Client Programs: ndb_redo_log_reader exited with Record type = 0 not implemented when reaching an unused page, all zero bytes, or a page which was only partially used (typically a page consisting of the page header only). (Bug #36313259)
-
NDB Client Programs: ndb_restore did not restore a foreign key whose columns differed in order from those of the parent key.
Our thanks to Axel Svensson for the contribution. (Bug #114147, Bug #36345882)
Removed a memory leak in
/util/NodeCertificate.cpp
. (Bug #36537931)Removed a memory leak from
src/ndbapi/NdbDictionaryImpl.cpp
. (Bug #36532102)When building
NDB
using lld, the build terminated prematurely with the error message ld.lld: error: version script assignment of 'local' to symbol 'my_init' failed: symbol not defined while attempting to linklibndbclient.so
. (Bug #36431274)TLS did not fail cleanly on systems which used OpenSSL 1.0, which is unsupported. Now in such cases, users get a clear error message advising that an upgrade to OpenSSL 1.1 or later is required to use TLS with NDB Cluster. (Bug #36426461)
The included
libxml2
library was updated to version 2.9.13. (Bug #36417013)Setting
AutomaticThreadConfig
andNumCPUs
when running single-threaded data nodes (ndbd) sometimes led to unrecoverable errors. Now ndbd ignores settings for these parameters, which are intended to apply only to multi-threaded data nodes (ndbmtd). (Bug #36388981)-
The handling of the
LQH
operation pool which occurs as part of TC takeover skipped the last element in either of the underlying physical pools (static or dynamic). If this element was in use, holding an operation record for a transaction belonging to a transaction coordinator on the failed node, it was not returned, resulting in an incomplete takeover which sometimes left operations behind. Such operations interfered with subsequent transactions and the copying process (CopyFrag
) used by the failed node to recover.To fix this problem, we avoid skipping the final record while iterating through the
LQH
operation records during TC takeover. (Bug #36363119) The
libssh
library was updated to version 0.10.4. (Bug #36135621)When distribution awareness was not in use, the cluster tended to choose the same data node as the transaction coordinator repeatedly. (Bug #35840020, Bug #36554026)
In certain cases, management nodes were unable to allocate node IDs to restarted data and SQL nodes. (Bug #35658072)
-
In some cases, when trying to perform an online add index operation on an
NDB
table with no explicit primary key (see Limitations of NDB online operations), the resulting error message did not make the nature of the problem clear. (Bug #30766579)References: See also: Bug #36382071.