ndbmtd 是 ndbd 的多线程版本,该进程用于处理使用 NDBCLUSTER
存储引擎的所有数据表中的数据。 ndbmtd旨在用于具有多个 CPU 核心的主机计算机上。 除了在其他地方另有说明外, ndbmtd 的功能与 ndbd 相同;因此,在本节中,我们将集中讨论 ndbmtd 与 ndbd 之间的差异,并且您应该查看 第 25.5.1 节,“ndbd — NDB 集群数据节点守护进程”,以获取关于运行 NDB 集群数据节点的更多信息,该信息适用于单线程和多线程版本的数据节点进程。
与 ndbd 一起使用的命令行选项和配置参数也适用于 ndbmtd。有关这些选项和参数的更多信息,请查看 第 25.5.1 节,“ndbd — NDB 集群数据节点守护进程” 和 第 25.4.3.6 节,“定义 NDB 集群数据节点”。
ndbmtd 也与 ndbd 兼容文件系统。换言之,运行 ndbd 的数据节点可以停止,二进制文件替换为 ndbmtd,然后重新启动,而不丢失任何数据。(但是,当这样做时,您必须在重新启动节点之前将 MaxNoOfExecutionThreads
设置为适当的值,以便 ndbmtd 以多线程方式运行。)同样,ndbmtd 二进制文件可以简单地用 ndbd 替换,只需停止节点,然后启动 ndbd 二进制文件。无需在切换这两个之间时使用 --initial
启动数据节点二进制文件。
-
因为 ndbmtd 默认情况下以单线程模式运行(即,它的行为类似于 ndbd),因此您必须配置它以使用多个线程。这可以通过在
config.ini
文件中设置适当的值来实现MaxNoOfExecutionThreads
配置参数或ThreadConfig
配置参数。使用MaxNoOfExecutionThreads
更简单,但ThreadConfig
提供了更多的灵活性。有关这些配置参数及其使用的更多信息,请参阅 多线程配置参数(ndbmtd)。 -
跟踪文件是由 ndbmtd 进程中的关键错误生成的,方式与 ndbd 故障生成的跟踪文件不同。这些差异将在下面的几段中讨论。
像 ndbd 一样,ndbmtd 生成一组日志文件,这些文件位于由 DataDir
在 config.ini
配置文件中指定的目录中。除了跟踪文件外,这些文件的生成方式和名称与 ndbd 生成的文件相同。
在关键错误事件中,ndbmtd 生成跟踪文件,描述错误发生前的情况。这些文件位于数据节点的 DataDir
中,对 NDB 集群开发和支持团队进行问题分析非常有用。每个 ndbmtd 线程生成一个跟踪文件。这些文件的名称遵循以下模式:
ndb_node_id_trace.log.trace_id_tthread_id,
在这个模式中,node_id
代表集群中的数据节点唯一的节点 ID,trace_id
是跟踪序列号,thread_id
是线程 ID。例如,如果 ndbmtd 进程作为 NDB 集群数据节点运行,节点 ID 为 3,并且 MaxNoOfExecutionThreads
等于 4,那么四个跟踪文件将在数据节点的数据目录中生成。如果这是该节点第一次失败,那么这些文件将命名为 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 跟踪文件相同的格式。
当 ndbd 退出代码和消息在数据节点进程意外关闭时生成,也被 ndbmtd 使用。请参阅 数据节点错误消息,以获取这些消息的列表。