MySQL NDB Cluster 7.5 Release Notes
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 -
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)status
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.
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)