MySQL NDB Cluster 7.5.18 是 MySQL NDB Cluster 7.5 的新版本,它基于 MySQL Server 5.7,包括NDB
存储引擎 7.5 版中的功能,并修复了最近在以前的 NDB Cluster 版本中发现的错误。
获取 MySQL NDB Cluster 7.5。 MySQL NDB Cluster 7.5 源代码和二进制文件可以从https://mysql.net.cn/downloads/cluster/获得。
有关 MySQL NDB Cluster 7.5 中所做更改的概述,请参阅 NDB Cluster 7.5 中的新增功能。
此版本还合并了以前 NDB Cluster 版本中所做的所有错误修复和更改,以及通过 MySQL 5.7.30 在主线 MySQL 5.7 中添加的所有错误修复和功能更改(请参阅MySQL 5.7.30 中的更改(2020-04- 27, 一般可用性) ) 。
NDB 客户端程序:为ndb_blob_tool实用程序 添加了两个选项 ,以使其能够检测存在内联部分的缺失 blob 部分,并用正确长度的占位符 blob 部分(由空格字符组成)替换这些部分。要检查是否缺少 blob 部分,请使用 ndb_blob_tool
--check-missing
选项。要用占位符替换任何缺失的 blob 部分,请使用该程序的--add-missing
选项,该选项也添加在此版本中。(漏洞 #28583971)NDB 客户端程序: 删除了ndb_waiter和 ndb_show_tables实用程序对
NDBT
库的依赖。该库用于NDB
开发测试,正常使用不需要。此更改对用户的可见影响是这些程序在运行完成后不再打印 。依赖此行为的应用程序应在升级到此版本时进行更新以反映此更改。NDBT_ProgramExit -
status
MySQL NDB ClusterJ: 未使用的
antlr3
插件已从 ClusterJpom
文件中删除。(漏洞 #29931625)MySQL NDB ClusterJ: ClusterJ 支持 MySQL NDB Cluster 8.0 的最低 Java 版本现在是 Java 8。(缺陷 #29931625)
-
MySQL NDB ClusterJ:ClusterJ 使用的一些 Java API 现在在最近的 Java 版本中已弃用。对 ClusterJ 进行了这些调整:
将所有
Class.newInstance()
呼叫 替换为Class.getDeclaredConstructor().newInstance()
呼叫。还根据需要更新了异常处理和测试用例。所有
Number
从原始类型或原始类型实例化对象的类的构造函数String
都已弃用。valueOf()
用相应的方法调用 替换了所有此类弃用的实例化 调用。Proxy.getProxyClass()
现已弃用 。该类DomainTypeHandlerImpl
现在使用该方法直接创建一个新实例Proxy.newProxyInstance()
;Proxy
从类中删除对该类及其构造函数的 所有引用DomainTypeHandlerImpl
。SessionFactoryImpl
类现在使用代理对象底层的接口来标识域类,而不是使用代理类。也更新了DomainTypeHandlerFactoryTest
。该
finalize()
方法现已弃用。此补丁不会更改重写的 finalize() 方法,而只会抑制对它们的警告。此弃用将在以后的补丁中单独处理。更新了 CMake 配置以在编译 ClusterJ 时将弃用警告视为错误。
(漏洞 #29931625)
-
添加了 mysqld
--ndb-log-fail-terminate
的选项。使用时,这会导致 SQL 节点在无法记录所有行事件时终止。(漏洞 #21911930)参考资料:另请参阅:Bug #30383919。
MySQL NDB ClusterJ: 从
Date
NDB 集群读取值时,ClusterJ 有时会从行中提取错误的年份值。这是因为Utility
班级在解包Date
值时错误地提取了一些额外的年份位。此补丁使 ClusterJ 仅提取所需的位。(缺陷号 30600320)MySQL NDB ClusterJ: 当集群的
NdbOperation::AbortOption
类型值为 时AO_IgnoreOnError
,当出现读取错误时,ClusterJ 将其视为行丢失并返回null
而不是异常。这是因为对于AO_IgnoreOnErro
,该execute()
方法总是在每个事务后返回一个成功代码,并且 ClusterJ 应该检查任何单个操作中的任何错误;但是,在这种情况下,ClusterJ 未检查读取操作。使用此补丁,现在会在查询执行后检查读取操作是否有错误,因此会报告读取错误。(缺陷号 30076276)还原带符号的自动增量列时, ndb_restore在确定数据中包含的最大值时错误地处理了负值。(缺陷号 30928710)
当节点 ID 分配请求因 NotMaster临时错误而失败时,总是立即重试节点 ID 分配,而不考虑错误原因。这导致了非常高的重试率,其影响可以观察到 节点 失败日志消息的Alloc 节点 ID
nnn
数量过多(大约每秒 15,000 条消息)。(缺陷号 30293495)对于
NDB
没有显式主键的表,NdbReceiverBuffer
可以分配太小的大小。这是因为NDB
从数据节点发送的属性位图总是包含主键。在这种情况下,现在考虑了隐藏主键所需的额外空间。(缺陷号 30183466)