Documentation Home
MySQL NDB Cluster 7.4 发行说明  /  MySQL NDB Cluster 7.4.3 (5.6.22-ndb-7.4.3) 的变化(2015-01-21,发布候选)

MySQL NDB Cluster 7.4.3 (5.6.22-ndb-7.4.3) 的变化(2015-01-21,发布候选)

MySQL NDB Cluster 7.4.3 是 NDB Cluster 的新版本,它基于 MySQL Server 5.6,包括正在为NDB存储引擎 7.4 版开发的功能,并修复了之前 NDB Cluster 版本中最近发现的一些错误。

获取 MySQL NDB Cluster 7.4。  MySQL NDB Cluster 7.4 源代码和二进制文件可以从https://mysql.net.cn/downloads/cluster/获得。

有关 MySQL NDB Cluster 7.4 中所做更改的概述,请参阅 NDB Cluster 7.4 中的新增功能

此版本还合并了以前 NDB Cluster 版本中所做的所有错误修复和更改,以及通过 MySQL 5.6.22 在主线 MySQL 5.6 中添加的所有错误修复和功能更改(请参阅MySQL 5.6.22 中的更改(2014-12- 01,全面上市))。

添加或更改的功能

修正错误

  • NDB 磁盘数据: 在极少数情况下,对大型磁盘数据表的多行进行更新可能会导致节点故障。如果在磁盘数据表上观察到非常大的事务时出现此类问题,您现在可以通过提高 DiskPageBufferEntries 此版本中添加的数据节点配置参数的值来增加分配给磁盘页面缓冲区内存的页面条目数。(漏洞#19958804)

  • NDB 磁盘数据: 在某些情况下,在DICT主节点接管期间,新主节点可能会在尝试前滚正在进行的模式事务时崩溃。(缺陷 #19875663,缺陷 #74510)

  • NDB Cluster API: 可以删除一个 Ndb_cluster_connection对象,同时仍然存在 Ndb使用对它的引用的实例。现在Ndb_cluster_connection析构函数在完成之前等待所有相关Ndb对象被释放。(漏洞#19999242)

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

  • MySQL NDB ClusterJ: 当应用程序关闭会话工厂而某些会话仍处于活动状态时,ClusterJ 报告了分段冲突。这是因为 MySQL NDB Cluster 允许 Ndb_cluster_connection在某些Ndb实例仍处于活动状态时删除对象,这可能导致 ClusterJ 使用空指针。此修复通过阻止 ClusterJ 在其任何会话仍处于活动状态时关闭会话工厂来阻止这种情况的发生。(漏洞#19846392)

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

  • 全局检查点提交和保存协议可能会因各种原因而延迟,包括磁盘 I/O 速度慢。主 DIH节点监控这两种协议的进度,并且可以强制执行最大延迟时间,在此期间,当延迟达​​到最大值时,通过杀死负责延迟的节点来停止协议。这个 DIH主 GCP 监控机制在每个主节点上执行的任务不超过一次;也就是说,它在检测并处理 GCP 停止后未能继续监测。(缺陷号 20128256)

    参考资料:另请参阅:Bug #19858151、Bug #20069617、Bug #20062754。

  • 在MySQL NDB Cluster SQL 节点上 运行mysql_upgradeperformance_schema时,该节点上预期的数据库删除是在连接到集群的所有 SQL 节点上执行的。(缺陷号 20032861)

  • ALTER TABLE ALGORITHM=INPLACE ... ADD COLUMN语句自动将列的 COLUMN_FORMATfrom更改FIXEDDYNAMICnow 时显示的警告包括格式已更改的列的名称。(缺陷 #20009152,缺陷 #74795)

  • 本地检查点扫描片段看门狗和全局检查点监视器在参与各自协议时都可以在节点太​​慢时排除该节点。这种排除是通过简单地要求故障节点关闭来实现的,如果延迟(无论出于何种原因)可能会延长其他未受影响节点的 GCP 或 LCP 停顿的持续时间。

    为了最小化这个时间,两个协议都添加了隔离机制,任何其他活动节点在预定时间后强制断开故障节点。如果可能,这允许故障节点有机会正常关闭(在记录调试和其他信息之后),但限制其他节点必须等待这种情况发生的时间。现在,一旦剩余的活节点处理了任何故障节点的断开连接,它们就可以开始故障处理并重新启动相关协议或协议,即使故障节点需要很长时间才能关闭。(漏洞 #19858151)

    参考资料:另请参阅:Bug #20128256、Bug #20069617、Bug #20062754。

  • 应用配置参数设置时用于线程配置的值矩阵 MaxNoOfExecutionThreads 已得到改进,以支持更多数量的 LDM 线程。有关更改的更多信息,请参阅 多线程配置参数 (ndbmtd)。(缺陷 #75220,缺陷 #20215689)

  • 当一个新节点在连接到总统但没有连接到任何其他活节点后失败,然后重新连接并再次启动时,一个没有看到原始连接的活节点保留了旧的状态信息。这导致活节点向总统发送冗余信号,导致其发生故障。(错误#75218,错误#20215395)

  • NDB内核中, TransporterFacade对象可能会在发送缓冲区中包含的数据时重置缓冲区,这可能会导致竞争条件。(错误#75041,错误#20112981)

  • mysql_upgrade未能 ndbinfo按预期删除并重新创建数据库及其表。(错误#74863,错误#20031425)

  • 由于缺少内存屏障,MySQL NDB Cluster 程序(如ndbmtd)无法在 POWER平台上编译。(错误#74782,错误#20007248)

  • 尽管存在许多防止信号缓冲区过载的保护机制,但在某些情况下仍然可以这样做。NDB此修复程序在内核中 添加了块级支持 (在 中SimulatedBlock),使信号缓冲区过载保护比在个案基础上实施此类保护更可靠。(错误#74639,错误#19928269)

  • 在本地检查点期间复制元数据导致节点重启时间高度可变,这可能使诊断重启问题变得困难。此问题的修复引入了暂停 LCP 执行和刷新 LCP 报告的信号(包括PAUSE_LCP_IDLEPAUSE_LCP_REQUESTEDPAUSE_NOT_IN_LCP_COPY_META_DATA),使得在重新启动期间 LCP 以这种方式停止时,有时可以阻止 LCP 报告。(错误#74594,错误#19898269)

  • 当数据节点从其天使进程重新启动时(即,在节点故障之后),可以在故障节点的故障处理实际完成之前为其分配一个新的节点 ID。(错误#74564,错误#19891507)

  • NDB7.4 版中,节点故障处理可能需要完成多达 64 个片段的检查点。(此检查点由DBLQH 内核块执行。)在这种情况下,主节点接管等待所有此类检查点完成的要求导致完成时间过长。

    为了解决这些问题,DBLQH内核块现在可以在完成任何正在进行的片段检查点之前报告它已准备好进行主接管,并且可以在系统完成主接管时继续处理这些。(错误#74320,错误#19795217)

  • 在节点重启期间,本地检查点有时比必要的时间更早启动,而节点仍在等待数据分布和数据字典的复制完成。(错误#74319,错误#19795152)

  • 确定节点何时重新启动并因此知道何时加速本地检查点的检查有时会报告误报。(错误#74318,错误#19795108)

  • ndbinfo表 中不同列中的值, disk_write_speed_aggregatedisk_write_speed_aggregate_node 使用不同的字节倍数进行报告。现在所有这些列都以字节为单位显示值。

    此外,此修复更正了在计算表的 、 、 和 列中使用的标准差 std_dev_backup_lcp_speed_last_10secstd_dev_redo_speed_last_10sec出现 std_dev_backup_lcp_speed_last_60secstd_dev_redo_speed_last_60sec错误 ndbinfo.disk_write_speed_aggregate。(错误#74317,错误#19795072)

  • 内部方法中的递归 Dblqh::finishScanrec()导致尝试创建两个具有相同头部的列表迭代器。NDB在为优化存储引擎7.4 版的扫描所做的工作期间引入了此回归。(错误#73667,错误#19480197)

  • 发送失败后,传输器发送缓冲区未正确更新。(错误#45043,错误#20113145)