MySQL NDB Cluster 7.4.24 is a new release of MySQL NDB Cluster
7.4, based on MySQL Server 5.6 and including features in version
7.4 of the
NDB storage engine, as
well as fixing recently discovered bugs in previous NDB Cluster
Obtaining MySQL NDB Cluster 7.4. MySQL NDB Cluster 7.4 source code and binaries can be obtained from https://dev.mysql.com/downloads/cluster/.
For an overview of changes made in MySQL NDB Cluster 7.4, see What is New in NDB Cluster 7.4.
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 5.6 through MySQL 5.6.44 (see Changes in MySQL 5.6.44 (2019-04-25, General Availability)).
Building with CMake3 is now supported by the compile-cluster script included in the
Important Change: The dependency of ndb_restore on the
NDBTlibrary, which is used for internal testing only, has been removed. This means that the program no longer prints
NDBT_ProgramExit: ...when terminating. Applications that depend upon this behavior should be updated to reflect this change when upgrading to this release.
When a pushed join executing in the
DBSPJblock had to store correlation IDs during query execution, memory for these was allocated for the lifetime of the entire query execution, even though these specific correlation IDs are required only when producing the most recent batch in the result set. Subsequent batches require additional correlation IDs to be stored and allocated; thus, if the query took sufficiently long to complete, this led to exhaustion of query memory (error 20008). Now in such cases, memory is allocated only for the lifetime of the current result batch, and is freed and made available for re-use following completion of the batch. (Bug #29336777)
References: See also: Bug #26995027.
In some cases, one and sometimes more data nodes underwent an unplanned shutdown while running ndb_restore. This occurred most often, but was not always restircted to, when restoring to a cluster having a different number of data nodes from the cluster on which the original backup had been taken.
The root cause of this issue was exhaustion of the pool of
SafeCounterobjects, used by the
DBDICTkernel block as part of executing schema transactions, and taken from a per-block-instance pool shared with protocols used for
NDBevent setup and subscription processing. The concurrency of event setup and subscription processing is such that the
SafeCounterpool can be exhausted; event and subscription processing can handle pool exhaustion, but schema transaction processing could not, which could result in the node shutdown experienced during restoration.
This problem is solved by giving
DBDICTschema transactions an isolated pool of reserved
SafeCounterswhich cannot be exhausted by concurrent
NDBevent activity. (Bug #28595915)
ndb_restore did not restore autoincrement values correctly when one or more staging tables were in use. As part of this fix, we also in such cases block applying of the
SYSTAB_0backup log, whose content continued to be applied directly based on the table ID, which could ovewrite the autoincrement values stored in
SYSTAB_0for unrelated tables. (Bug #27917769, Bug #27831990)
References: See also: Bug #27832033.
ndb_restore employed a mechanism for restoring autoincrement values which was not atomic, and thus could yield incorrect autoincrement values being restored when multiple instances of ndb_restore were used in parallel. (Bug #27832033)
References: See also: Bug #27917769, Bug #27831990.
When executing the redo log in debug mode it was possible for a data node to fail when deallocating a row. (Bug #93273, Bug #28955797)
As part of this fix,
ON DELETE CASCADEis no longer supported for foreign keys on
NDBtables when the child table contains a column that uses any of the
TEXTtypes. (Bug #89511, Bug #27484882)