Documentation Home
MySQL NDB Cluster 7.5 Release Notes
Related Documentation Download these Release Notes
PDF (US Ltr) - 1.1Mb
PDF (A4) - 1.1Mb


MySQL NDB Cluster 7.5 Release Notes  /  Changes in MySQL NDB Cluster 7.5.18 (5.7.30-ndb-7.5.18) (2020-04-28, General Availability)

Changes in MySQL NDB Cluster 7.5.18 (5.7.30-ndb-7.5.18) (2020-04-28, General Availability)

MySQL NDB Cluster 7.5.18 is a new release of MySQL NDB Cluster 7.5, based on MySQL Server 5.7 and including features in version 7.5 of the NDB storage engine, as well as fixing recently discovered bugs in previous NDB Cluster releases.

Obtaining MySQL NDB Cluster 7.5.  MySQL NDB Cluster 7.5 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.5, see What is New in NDB Cluster 7.5.

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.7 through MySQL 5.7.30 (see Changes in MySQL 5.7.30 (2020-04-27, General Availability)) .

Functionality Added or Changed

  • NDB Client Programs: Two options are added for the ndb_blob_tool utility, to enable it to detect missing blob parts for which inline parts exist, and to replace these with placeholder blob parts (consisting of space characters) of the correct length. To check whether there are missing blob parts, use the ndb_blob_tool --check-missing option. To replace with placeholders any blob parts which are missing, use the program's --add-missing option, also added in this release. (Bug #28583971)

  • NDB Client Programs: Removed a dependency from the ndb_waiter and ndb_show_tables utility programs on the NDBT library. This library, used in NDB development for testing, is not required for normal use. The visible effect for users from this change is that these programs no longer print NDBT_ProgramExit - status following completion of a run. Applications that depend upon this behavior should be updated to reflect this change when upgrading to this release. (WL #13727, WL #13728)

  • MySQL NDB ClusterJ: The unused antlr3 plugin has been removed from the ClusterJ pom file. (Bug #29931625)

  • MySQL NDB ClusterJ: The minimum Java version ClusterJ supports for MySQL NDB Cluster 8.0 is now Java 8. (Bug #29931625)

  • MySQL NDB ClusterJ: A few Java APIs used by ClusterJ are now deprecated in recent Java versions. These adjustments have been made to ClusterJ:

    • Replaced all Class.newInstance() calls with Class.getDeclaredConstructor().newInstance() calls. Also updated the exception handling and the test cases wherever required.

    • All the Number classes' constructors that instantiate an object from a String or a primitive type are deprecated. Replaced all such deprecated instantiation calls with the corresponding valueOf() method calls.

    • The Proxy.getProxyClass() is now deprecated. The DomainTypeHandlerImpl class now directly creates a new instance using the Proxy.newProxyInstance() method; all references to the Proxy class and its constructors are removed from the DomainTypeHandlerImpl class. SessionFactoryImpl class now uses the interfaces underlying the proxy object to identify the domain class rather than using the Proxy class. Also updated DomainTypeHandlerFactoryTest.

    • The finalize() method is now deprecated. This patch does not change the overriding finalize() methods, but just suppresses the warnings on them. This deprecation will be handled separately in a later patch.

    • Updated the CMake configuration to treat deprecation warnings as errors when compiling ClusterJ.

    (Bug #29931625)

  • Added the --ndb-log-fail-terminate option for mysqld. When used, this causes the SQL node to terminate if it is unable to log all row events. (Bug #21911930)

    References: See also: Bug #30383919.

Bugs Fixed

  • MySQL NDB ClusterJ: When a Date value was read from a NDB cluster, ClusterJ sometimes extracted the wrong year value from the row. It was because the Utility class, when unpacking the Date value, wrongly extracted some extra bits for the year. This patch makes ClusterJ only extract the required bits. (Bug #30600320)

  • MySQL NDB ClusterJ: When the cluster's NdbOperation::AbortOption type had the value of AO_IgnoreOnError, when there was a read error, ClusterJ took that as the row was missing and returned null instead of an exception. This was because with AO_IgnoreOnErro, the execute() method always returns a success code after each transaction, and ClusterJ is supposed to check for any errors in any of the individual operations; however, read operations were not checked by ClusterJ in the case. With this patch, read operations are now checked for errors after query executions, so that a reading error is reported as such. (Bug #30076276)

  • When restoring signed auto-increment columns, ndb_restore incorrectly handled negative values when determining the maximum value included in the data. (Bug #30928710)

  • When a node ID allocation request failed with NotMaster temporary errors, the node ID allocation was always retried immediately, without regard to the cause of the error. This caused a very high rate of retries, whose effects could be observed as an excessive number of Alloc node id for node nnn failed log messages (on the order of 15,000 messages per second). (Bug #30293495)

  • For NDB tables having no explicit primary key, NdbReceiverBuffer could be allocated with too small a size. This was due to the fact that the attribute bitmap sent to NDB from the data nodes always includes the primary key. The extra space required for hidden primary keys is now taken into consideration in such cases. (Bug #30183466)