分区:输出
解释分区
显示不正确的值分区
在显式分区上运行时NDB
具有大量分区的表。这是由于这样一个事实,当处理
解释
声明中,mysqld.计算散列值的分区ID(
),只有当表被分区时才正确hash_value
%number_of_partitions.
哈希
,由于其他分区类型使用将映射散列值的不同方法映射到分区ID。此修复程序替换所执行的分区ID计算mysqld.有一个内部NDB
函数,根据表的分区类型正确计算分区ID。(错误# 21068548)参考:参见Bug #25501895, Bug #14672885。
NDB磁盘数据:由于为此启用了磁盘扫描而丢弃的NDB磁盘数据表的陈旧数据可能会包含在备份中。为了防止这种可能性,现在禁用磁盘扫描 - 其他类型的扫描 - 拍摄备份时。(bug#84422,bug#25353234)
NDB磁盘数据:在某些情况下,将NDB磁盘数据表的内存中的动态列设置为
零
没有正确处理。(bug#79253,bug#22195588)NDB集群api:当客户端进程接收诸如的信号时发送信号时
SUB_GCP_COMPLETE_ACK
和tc_commit_ack.
,这些信号被临时缓冲在发送它们的客户端的发送缓冲区中。如果没有显式刷新,信号将保留在这些缓冲区中,直到客户端再次唤醒并刷新其缓冲区。因为没有尝试对信号在本地客户端缓冲区中保持未发送的时间设置上限,这可能会导致等待这些信号的组件中的超时和其他错误行为。此外,通过删除客户端发送缓冲区可以刷新的客户端唤醒可能使这种情况更糟糕的情况下,解决此问题的修复程序可能会更糟糕。
当前修复程序移动对接收器发送的刷新消息的责任(
poll_owner.
客户端)。这意味着不再需要唤醒所有客户端来刷新它们的缓冲区。相反,poll_owner.
客户端(已经运行的)执行刷新到收件人向收件人发送信号时发送的发送缓冲区。(bug#22705935)参考文献:另见:bug#18753341,bug#23202735。
CPU使用数据节点的主线程
DBDIH.
在某些情况下,当数据库有大量的片段副本时,作为本地检查点末端的主块可能接近100%。通过减少LCP期间片段队列检查的频率和范围来解决这个问题。(错误# 25443080)这ndb_print_backup_file当备份包括具有超过500列的表时,尝试从备份文件读取时,实用程序失败。(bug#25302901)
参考:参见Bug #25182956。
群集部分重启期间的多个数据节点故障可能导致API节点失败。这是由于一个线程的内部对象ID映射的扩展,从而将其位置更改为内存,而另一个线程仍在访问旧位置,导致后一个线程中的分段错误。
内置的
map ()
和的映射()
出现此问题的函数现在被设置为线程安全的。(错误# 25092498)参考资料:参见Bug #25306089。
在扫描请求的初始阶段
DBTC
内核块发送一系列digetnodesreq.
信号到了DBDIH.
块,以获取要扫描的每个片段的字典信息。如果DBDIH.
回digetnodesref.
,该信号的错误代码没有读取,错误218走出来的LongMessageBuffer.总是返回。现在在这种情况下,错误代码来自digetnodesref.信号实际上是用的。(Bug #85225, Bug #25642405)在来自不同SQL节点的同一个数据库对象上的模式操作之间存在竞争条件的可能性;当其中一个SQL节点延迟释放受影响的模式对象上的元数据锁时,就可能发生这种情况,因为这样一来,模式分布协调器就会认为锁释放是因为错误的模式更改。这可能导致在部分或所有SQL节点上错误地应用模式更改,或出现重复超时候诗
# # #
证券交易委员会分配……由于分发协议的故障,节点日志中的消息。(bug#85010,bug#25557263)参考:另请参阅:Bug#24926009。
在NDB表中添加或删除外键时
改变表
语句,父表的元数据未更新,这使得可以在父级执行无效的更改操作。在您可以升级到此版本之前,您可以通过运行解决此问题
显示创建表
在父节点上添加或删除外键后立即执行;此语句将导致重新加载表的元数据。(Bug #82989, Bug #24666177)交易
NDB
由于事实上,具有级联外向键的表返回了查询缓存时返回不一致的结果mysqld.没有意识到子表更新。这就意味着结果要等一会儿选择
从子表中获取从查询缓存中获取,此时包含陈旧数据。在这种情况下通过将父表的所有子项添加到要选中的内部列表中来修复
NDB
更新父级更新时,以至于mysqld.现在正确地通知任何应该从查询缓存中无效的更新的子表。(Bug #81776, Bug #23553507)