NDB磁盘数据:的验证时返回的错误消息
MaxNoOfOpenFiles
相对于InitialNoOfOpenFiles
Failed已经得到了改进,以便让用户更清楚地了解问题的本质。(错误# 28943749)NDB磁盘数据:重复执行
改变表空间……添加数据文件
对于相同的表空间,导致数据节点挂起,在手动杀死它们之后,它们无法重新启动。(错误# 22605467)NDB集群api:
NDB
现在标识不需要减少锁争用的短期事务ndbblob :: close()
并且在某些情况下(如启用自动提交时),如果解锁仅仅导致在提交或中止事务之前执行额外的工作和往返,则不再调用此方法。(错误# 29305592)参见:Bug #49190, Bug #11757181。
NDB集群api:当释放最近失败的操作时,指向它的指针
NdbTransaction
失效,当访问导致NDB API应用程序失败。(错误# 29275244)对象中执行的push连接时
DBSPJ
块必须在查询执行期间存储相关id,在整个查询执行的生命周期中为这些关联id分配内存,即使这些特定的关联id仅在生成结果集中最新的批时才需要。后续批次需要存储和分配额外的相关id;因此,如果查询花费足够长的时间来完成,就会导致查询内存耗尽(错误20008)。现在,在这种情况下,内存只分配给当前结果批处理的生命周期,并在批处理完成后释放并供重用。(错误# 29336777)参考:参见Bug #26995027。
运行NDB 7.6及以后版本的API和数据节点不能使用早期版本中已经解析过的配置,这是由于对于为新版本的配置参数定义的值过于严格,这限制了可能的升级路径。现在NDB 7.6和以后的版本对于在配置中明确指定所有新参数的要求不那么严格了,在这种情况下使用硬编码的默认值。(错误# 28993400)
添加
转储406
(NdbfsDumpRequests
)提供NDB
在节点日志中报告全局检查点和本地检查点暂停的文件系统信息。(错误# 28922609)之间的竞争条件
DBACC
和dblqh.
当同一行事务中的不同操作同时准备和中止时,就会发生内核块。这可能会导致DBTUP
试图在前一个操作被中止时准备操作,这是意外的,因此可能导致未定义的行为,包括潜在的数据节点故障。为了解决这个问题,DBACC
和dblqh.
现在,在尝试准备操作之前,检查所有依赖项是否仍然有效。请注意此修复也取代了之前为相关问题所做的修复,该修复最初报告为Bug #28500861。
(错误# 28893633)
的
ndbinfo.cpustat
表报告了关于发送线程的不准确信息。(错误# 28884157)当LCP状态为IDLE时,从主服务器执行LCP_COMPLETE_REP信号导致断言。(错误# 28871889)
发出一个
停止
命令的ndb_mgm客户造成的ndbmtd在关闭期间,最近添加到集群中挂起的进程。(错误# 28772867)在某些情况下,一个(有时是多个)数据节点在运行时意外关闭ndb_restore。这是最常见的情况,但并不总是限于恢复到具有不同数量的数据节点的集群时。
这个问题的根本原因是资源池的耗尽
SafeCounter
对象使用的DBDICT
内核块作为执行模式事务的一部分,并从使用的协议共享的每个块实例池中获取NDB
事件设置和订阅处理。事件设置和订阅处理的并发性使得SafeCounter
游泳池可以筋疲力尽;事件和订阅处理可以处理池耗尽,但模式事务处理可能不会导致恢复期间经过的节点关闭。这个问题可以通过给予来解决
DBDICT
模式事务预留一个隔离池安全控制器
并发不能耗尽的NDB
活动活动。(错误# 28595915)由于错误而导致提交失败后,mysqld在试图获取涉及的表名时意外关闭。这是由于内部功能的问题
ndbcluster_print_error ()
。(错误# 28435082)ndb_restore在使用一个或多个staging表时没有正确地恢复自动增量值。作为这个修复的一部分,我们还在这种情况下块应用
SYSTAB_0
备份日志,其内容继续基于表ID直接应用,它可以覆盖存储在SYSTAB_0
不相关的表。(Bug #27917769, Bug #27831990)参考:参见Bug #27832033。
ndb_restore的多个实例时,使用一种机制来恢复非原子的自动增量值,从而可能产生不正确的自动增量值ndb_restore是平行使用的。(错误# 27832033)
参考:参见:Bug #27917769, Bug #27831990。
无论是
MAX_EXECUTION_TIME
优化器提示也不max_execution_time
对DDL语句或查询尊重系统变量INFORMATION_SCHEMA
表而NDB
全局模式锁生效。(错误# 27538139)中的查询内存耗尽时
DBSPJ
当存储延迟操作的相关id时,查询被终止,错误状态为20000由于查询内存不足,查询中止。(错误# 26995027)参考:参见Bug #86537。
MaxBufferedEpochs
用于数据节点,以避免由于滞后而过度缓冲行的变化NDB
事件API用户;当来自一个或多个订阅者的epoch确认延迟了这个epoch数量时,一个异步断开将被触发,允许数据节点释放用于订阅的缓冲区空间。由于这种断开是异步的,可能在数据节点上额外的新epoch完成之前,它还没有完成,导致新的epoch无法捕获GCP完成记录,产生如下警告:[ndbd] ERROR——c_gcp_list.seize() failed... ... .日志含义[ndbd] WARNING—ACK wo/ gcp record…
并导致以下警告:
断开节点%u,因为它已经超过MaxBufferedEpochs (100 > 100), epoch ....
此修复程序执行以下修改:
修改GCP完成记录池的大小,以确保总是有一些额外的空间来解释前面描述的断开处理的异步性质,从而避免
c_gcp_list
抓住失败。修改文字
MaxBufferedEpochs
警告避免矛盾的措辞”100 > 100”。
(错误# 20344149)
当在调试模式下执行重做日志时,数据节点在释放一行时可能会失败。(Bug #93273, Bug #28955797)
一个
NDB
在另一个表上有一个外键NDB
表的使用在级联删除
和一个或多个文本
或团
列泄漏内存。作为解决方案的一部分,
在级联删除
是否不再支持外键NDB
类的任何列时团
或文本
类型。(Bug #89511, Bug #27484882)