Documentation Home
MySQL NDB Cluster 7.5 发行说明  /  MySQL NDB Cluster 7.5.25 (5.7.37-ndb-7.5.25) 的变化(2022-01-19,全面上市)

MySQL NDB Cluster 7.5.25 (5.7.37-ndb-7.5.25) 的变化(2022-01-19,全面上市)

MySQL NDB Cluster 7.5.25 是 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.37 在主线 MySQL 5.7 中添加的所有错误修复和功能更改(请参阅MySQL 5.7.37 中的更改(2022-01- 18, 一般可用性) )。

修正错误

  • 重要更改: 已弃用的数据节点选项 --connect-delay已被删除。此选项是 的同义词 --connect-retry-delay,并非在所有情况下都适用;此问题已得到修复,该选项现在可以正常工作。此外, -r此选项的缩写形式已被弃用,您应该期望在未来的版本中将其删除。(错误号 31565810)

    参考资料:另请参阅:Bug #33362935。

  • NDB Cluster API: 不再可能 DIVERIFYREQ异步使用信号。(缺陷号 33161562)

  • wait for scans联机重组期间日志输出 的时间安排不正确。作为此修复的一部分,我们将时间更改为每 10 秒生成一条消息,而不是无限扩展,以便提供定期更新。(缺陷号 35523977)

  • 在ndbdndbmtd 中添加了缺失值检查。(缺陷号 33661024)

  • 联机表重组增加了表的碎片数,并在它们之间移动行。这是通过以下步骤完成的:

    1. 将行复制到新片段

    2. 更新分布信息(hashmap 计数和总碎片)

    3. 等待使用旧分发的扫描活动停止

    4. 删除已移出现有分区的行

    5. 删除对旧哈希图的引用

    6. 等待从第 2 步开始的扫描活动停止

    由于计数错误,重组有可能在第 6 步挂起;扫描引用计数没有减少,因此从未像预期的那样达到零。(缺陷号 33523991)

  • 当启用优化器开关 时,表 上的相同推送连接NDB返回不正确的结果 。batched_key_access

    这个问题产生如下:当使用批量密钥访问(BKA)算法连接两个表时,首先从其中一个表中收集一组批量密钥;多范围读取 (MRR) 操作是针对另一个构建的。在 MRR 上指定了一组边界(范围),使用批处理的键来构造每个边界。

    当返回结果行时,有必要确定每个返回行来自哪个范围。这用于标识执行 BKA 连接的外表行。当有问题的 MRR 操作是推送连接操作的根时, SPJ无法检索此标识符 ( RANGE_NO)。我们通过实现缺少的SPJAPI 功能来解决此问题,以便RANGE_NO 从推送的连接查询中返回此类。(缺陷号 33416308)

  • MySQL 优化器使用两种不同的方法, handler::read_cost()Cost_model::page_read_cost(),来估计不同访问方法的成本,但这些方法返回的成本值并不总是可比较的;在某些情况下,这会导致选择了错误的索引,并导致受影响查询的执行时间更长。为了解决这个问题,我们用一个特定于 的方法 NDB覆盖了优化器的 方法。在处理此问题时还发现处理程序未实现该方法,由 ; 此方法现在由 实施,因此优化器现在可以正确地考虑成本差异 page_read_cost()NDBCLUSTERNDBread_time()read_cost()ha_ndbclusterNDB当使用唯一键而不是有序索引(范围扫描)时。(缺陷号 33317872)

  • 在某些情况下,未正确检测到事件的类别。(缺陷号 33304814)

  • DBDICT并不总是正确地执行表名检查。(缺陷号 33161548)

  • 在ndbdndbmtd 中添加了一些缺失的 ID 和其他值检查 。(错误#33161486,错误#33162047)

  • SET_LOGLEVELORD信号并不总是被正确处理。(缺陷号 33161246)

  • DUMP 11001并不总是正确处理它的所有参数。(缺陷号 33157513)

  • 文件名并不总是被正确验证。(缺陷号 33157475)

  • 在ndbdndbmtd 中添加了一些缺失的 ID 和其他值检查 。(错误#32983700,错误#32893708,错误#32957478,错误#32983256,错误#32983339,错误#32983489,错误#32983517,错误#33157527,错误#33157531,错误#33161271,错误16Bug1394,Bug16Bug1393, #33161331, Bug #33161372, Bug #33161462, Bug #33161511, Bug #33161519, Bug #33161537, Bug #33161570, Bug #33162059, Bug #33162065, Bug #33162074, Bug #33162082, Bug #33162092, Bug #33162098 ,漏洞#33304819)

  • 管理服务器并不总是正确处理错误大小的事件。(缺陷号 32957547)

  • 在某些情况下,恢复备份时重做日志的问题会导致数据节点意外关闭。为了解决这个问题,当重做日志文件不可用于写入时,我们现在 CONTINUEB在发送之前在信号中包含正确的等待代码和等待日志部分。(缺陷号 32733659)

    参考资料:另请参阅:Bug #31585833。

  • 随着表数量的增加,MySQL Enterprise Monitor 用于监视 NDB Cluster 中内存使用情况的查询的性能明显下降 NDB。我们解决这个问题如下:

    • ndbinfoMySQL 优化器可以使用 虚拟表的行数

    • 现在为所有 ndbinfo表格 提供大小估计

    在这些改进之后,对 ndbinfo表的查询应该明显更快。(漏洞#28658625)

  • NDB当从内部系统表创建和删除函数返回错误时,没有关闭任何挂起的模式事务。