Documentation Home
MySQL NDB Cluster 7.4 发行说明  / 发布系列变更日志:MySQL NDB Cluster 7.4  /  MySQL NDB Cluster 7.4.15 (5.6.36-ndb-7.4.15) 的变化(2017-04-10,全面上市)

MySQL NDB Cluster 7.4.15 (5.6.36-ndb-7.4.15) 的变化(2017-04-10,全面上市)

修正错误

  • 分区:在具有大量 分区的显式分区表上运行时,列EXPLAIN PARTITIONS显示的不正确值 的输出partitionsNDB

    这是因为,在处理 EXPLAIN语句时,mysqld 将哈希值的分区 ID 计算为 ( ),这仅在表按 分区时正确 ,因为其他分区类型使用不同的方法将哈希值映射到分区身份证。此修复将 mysqld执行的分区 ID 计算替换为内部 函数,该函数根据表的分区类型正确计算分区 ID。(缺陷号 21068548)hash_value % number_of_partitionsHASHNDB

    参考资料:另请参阅:Bug #25501895、Bug #14672885。

  • NDB 磁盘数据: 已删除的 NDB 磁盘数据表中的陈旧数据可能会包含在备份中,因为已为这些数据启用了磁盘扫描。为了防止这种可能性,现在在进行备份时禁用磁盘扫描(与其他类型的扫描一样)。(漏洞 #84422,漏洞 #25353234)

  • NDB 磁盘数据: 在某些情况下,将 NDB 磁盘数据表的动态内存列设置NULL为未正确处理。(错误#79253,错误#22195588)

  • DBDIH在数据库具有大量片段副本的某些情况下,作为本地检查点结束 的主块对数据节点主线程的 CPU 使用率 可能接近 100%。这是通过减少 LCP 期间片段队列检查的频率和范围来解决的。(缺陷号 25443080)

  • 当备份包含一个包含超过 500 列的表时,ndb_print_backup_file实用程序在尝试从备份文件中读取时失败。(漏洞 #25302901)

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

  • 集群部分重启期间的多个数据节点故障可能会导致 API 节点失败。这是由于一个线程扩展了内部对象 ID 映射,从而改变了它在内存中的位置,而另一个线程仍在访问旧位置,导致后一个线程出现分段错误。

    出现此问题 的内部map()和 函数现在已成为线程安全的。unmap()(缺陷号 25092498)

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

  • 源自不同 SQL 节点的同一数据库对象上的模式操作之间存在竞争条件的可能性;当其中一个 SQL 节点延迟释放其对受影响的模式对象的元数据锁时,可能会发生这种情况,这种方式在模式分发协调器看来是因为错误的模式更改确认了锁释放。这可能会导致在部分或所有 SQL 节点上不正确地应用模式更改,或者由于分发协议失败而导致节点日志中重复等待最大 ###秒分发消息的超时。(缺陷 #85010,缺陷 #25557263)

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

  • 当使用ALTER TABLE语句将外键添加到 NDB 表或从中删除时,父表的元数据不会更新,这使得之后可以对父表执行无效的更改操作。

    在升级到此版本之前,您可以通过SHOW CREATE TABLE在添加或删除外键后立即在父级上运行来解决此问题;此语句导致重新加载表的元数据。(错误#82989,错误#24666177)

  • 当还启用查询缓存时,具有级联外键的表上的事务NDB返回不一致的结果,因为 mysqld不知道子表更新。这意味着稍后 SELECT从子表中获取的结果是从查询缓存中获取的,此时包含陈旧数据。

    在这种情况下,通过将父表的所有子表添加到一个内部列表来解决 这个问题,以便在父表NDB更新时检查更新,以便mysqld现在正确地通知任何应该从查询缓存中失效的更新子表. (缺陷 #81776,缺陷 #23553507)