MySQL NDB Cluster 7.5 Release Notes
MySQL NDB Cluster 7.5.10 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.22 (see Changes in MySQL 5.7.22 (2018-04-19, General Availability)).
NDB Cluster APIs:
A previous fix for an issue, in which the failure of multiple
data nodes during a partial restart could cause API nodes to
fail, did not properly check the validity of the associated
NdbReceiver
object before proceeding. Now in
such cases an invalid object triggers handling for invalid
signals, rather than a node failure.
(Bug #25902137)
References: This issue is a regression of: Bug #25092498.
NDB Cluster APIs:
Incorrect results, usually an empty result set, were returned
when
setBound()
was used to specify a NULL
bound. This issue
appears to have been caused by a problem in gcc, limited to
cases using the old version of this method (which does not
employ NdbRecord
), and is fixed
by rewriting the problematic internal logic in the old
implementation.
(Bug #89468, Bug #27461752)
MySQL NDB ClusterJ:
ClusterJ quit unexpectedly as there was no error handling in the
scanIndex()
function of the
ClusterTransactionImpl
class for a null
returned to it internally by the scanIndex()
method of the ndbTransaction
class.
(Bug #27297681, Bug #88989)
In some circumstances, when a transaction was aborted in the
DBTC
block, there remained links to trigger
records from operation records which were not yet
reference-counted, but when such an operation record was
released the trigger reference count was still decremented.
(Bug #27629680)
ANALYZE TABLE
used excessive
amounts of CPU on large, low-cardinality tables.
(Bug #27438963)
Queries using very large lists with IN
were
not handled correctly, which could lead to data node failures.
(Bug #27397802)
References: See also: Bug #28728603.
A data node overload could in some situations lead to an unplanned shutdown of the data node, which led to all data nodes disconnecting from the management and nodes.
This was due to a situation in which
API_FAILREQ
was not the last received signal
prior to the node failure.
As part of this fix, the transaction coordinator's handling of
SCAN_TABREQ
signals for an
ApiConnectRecord
in an incorrect state was
also improved.
(Bug #27381901)
References: See also: Bug #47039, Bug #11755287.
In a two-node cluster, when the node having the lowest ID was
started using --nostart
, API
clients could not connect, failing with Could not
alloc node id at HOST port PORT_NO: No free node id found for
mysqld(API).
(Bug #27225212)
Under certain conditions, data nodes restarted unnecessarily
during execution of
ALTER
TABLE... REORGANIZE PARTITION
.
(Bug #25675481)
References: See also: Bug #26735618, Bug #27191468.
Race conditions sometimes occurred during asynchronous disconnection and reconnection of the transporter while other threads concurrently inserted signal data into the send buffers, leading to an unplanned shutdown of the cluster.
As part of the work fixing this issue, the internal templating function used by the Transporter Registry when it prepares a send is refactored to use likely-or-unlikely logic to speed up execution, and to remove a number of duplicate checks for NULL. (Bug #24444908, Bug #25128512)
References: See also: Bug #20112700.
ndb_restore sometimes logged data file and log file progress values much greater than 100%. (Bug #20989106)
As a result of the reuse of code intended for send threads when performing an assist send, all of the local release send buffers were released to the global pool, which caused the intended level of the local send buffer pool to be ignored. Now send threads and assisting worker threads follow their own policies for maintaining their local buffer pools. (Bug #89119, Bug #27349118)
When sending priority A signals, we now ensure that the number of pending signals is explicitly initialized. (Bug #88986, Bug #27294856)
ndb_restore
--print-data
--hex
did not print trailing
0s of
LONGVARBINARY
values.
(Bug #65560, Bug #14198580)