21.4.3 ndbmtd-NDB 群集数据节点守护程序(多线程)
ndbmtd是ndbd的多线程版本,该进程用于使用NDBCLUSTER存储引擎处理 table 中的所有数据。 ndbmtd适用于具有多个 CPU 内核的主机。除非另有说明,否则ndbmtd的功能与ndbd相同;因此,在本节中,我们将重点介绍ndbmtd与ndbd不同的方式,并且您应查阅第 21.4.1 节“ ndbd-NDB 群集数据节点守护程序”以获得有关运行适用于数据节点进程的单线程和多线程版本的 NDB Cluster 数据节点的其他信息。
与ndbd一起使用的命令行选项和配置参数也适用于ndbmtd。有关这些选项和参数的更多信息,请分别参见第 21.4.1 节“ ndbd-NDB 群集数据节点守护程序”和第 21.3.3.6 节,“定义 NDB 群集数据节点”。
ndbmtd与ndbd文件系统兼容。换句话说,可以停止运行ndbd的数据节点,将二进制文件替换为ndbmtd,然后重新启动而不会丢失任何数据。 (但是,这样做时,如果希望ndbmtd以多线程方式运行,则必须在重新启动节点之前确保将MaxNoOfExecutionThreads设置为适当的值。)类似地,只需停止节点即可将ndbmtd二进制文件替换为ndbd。然后以ndbd代替多线程二进制文件。在两者之间切换时,不必使用--initial启动数据节点二进制文件。
-
由于ndbmtd默认在单线程模式下运行(也就是说,其行为类似于ndbd),因此必须将其配置为使用多个线程。这可以通过在
config.ini
文件中为MaxNoOfExecutionThreads配置参数或ThreadConfig配置参数设置适当的值来完成。使用MaxNoOfExecutionThreads
更简单,但是ThreadConfig
提供了更大的灵 Active。有关这些配置参数及其使用的更多信息,请参见多线程配置参数(ndbmtd)。 -
跟踪文件是由ndbmtd流程中的严重错误生成的,与ndbd故障所生成的方式有些不同。这些差异将在接下来的几段中详细讨论。
像ndbd一样,ndbmtd生成一组日志文件,这些日志文件位于config.ini
配置文件中DataDir指定的目录中。除跟踪文件外,它们以相同的方式生成,并具有与ndbd生成的名称相同的名称。
发生严重错误时,ndbmtd会生成跟踪文件,以描述错误发生之前发生的情况。这些文件可以在数据节点的DataDir中找到,这些文件对于 NDB 群集开发和支持团队的问题分析很有用。为每个ndbmtd线程生成一个跟踪文件。这些文件的名称具有以下模式:
ndb_node_id_trace.log.trace_id_tthread_id,
在此模式中,* node_id
代 table 集群中数据节点的唯一节点 ID, trace_id
是跟踪序列号, thread_id
*是线程 ID。例如,如果ndbmtd进程作为具有节点 ID 3 且MaxNoOfExecutionThreads等于 4 的 NDB 群集数据节点运行,则该数据节点的数据目录中将生成四个跟踪文件。如果是该节点第一次发生故障,则这些文件分别命名为ndb_3_trace.log.1_t1
,ndb_3_trace.log.1_t2
,ndb_3_trace.log.1_t3
和ndb_3_trace.log.1_t4
。在内部,这些跟踪文件与ndbd跟踪文件采用相同的格式。
ndbmtd还使用了ndbd退出代码和数据节点进程过早关闭时生成的消息。有关这些列 table,请参见数据节点错误消息。