25.5.3 NDB集群数据节点守护进程(多线程)——ndbmtd
ndbmtd是多线程版本的ndbd,用于处理使用NDBCLUSTER
存储引擎的表中的所有数据的进程。ndbmtd适用于具有多个CPU核心的主机计算机。除非另有说明,否则ndbmtd与ndbd在相同的方式下工作;因此,在本节中,我们将集中讨论ndbmtd与ndbd之间的区别,并且您应该查阅第25.5.1节,“ndbd — NDB集群数据节点守护进程”,提供了关于运行NDB集群数据节点的额外信息,这些信息适用于单线程和多线程版本的数据节点进程。
与ndbd一起使用的命令行选项和配置参数也适用于ndbmtd。有关这些选项和参数的更多信息,请参阅Section 25.5.1, “ndbd — NDB集群数据节点守护进程”和Section 25.4.3.6, “定义NDB集群数据节点”,分别。
ndbmtd也与ndbd兼容文件系统。换句话说,运行ndbd的数据节点可以停止,然后用ndbmtd替换该二进制文件,然后重新启动没有任何数据丢失的情况下。然而,在这样做时,您必须确保在重新启动节点之前将MaxNoOfExecutionThreads
设置为适当的值,如果您希望ndbmtd以多线程方式运行。类似地,一个ndbmtd二进制文件可以通过停止节点,然后启动ndbd简单地替换。ndbd取代了多线程二进制。从两个之间切换时不需要使用--initial
来启动数据节点二进制。
Using ndbmtd differs from using ndbd in two key respects:
-
由于 ndbmtd 默认情况下以单线程模式运行(也就是说,它的行为类似于 ndbd),因此必须配置它以使用多个线程。这可以通过在
config.ini
文件中设置适当的值来完成,该文件中的MaxNoOfExecutionThreads
配置参数或ThreadConfig
配置参数。使用MaxNoOfExecutionThreads
更简单,但ThreadConfig
提供更多灵活性。有关这些配置参数及其用法的详细信息,请参阅 Multi-Threading Configuration Parameters (ndbmtd)。 -
错误追踪文件由 ndbmtd 进程中的关键错误以某种不同方式生成,与 ndbd 失败所生成的错误追踪文件有所不同。这些差异在下面几段中进行了更详细的讨论。
像ndbd,ndbmtd也会生成一组日志文件,这些文件将被放置在由DataDir
指定的目录中,该目录位于config.ini
配置文件中的DataDir
参数中。除了跟踪文件外,这些日志文件的生成方式与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的ndbd过程,会在数据节点的数据目录中生成四个跟踪文件。如果这是该节点第一次失败,则这些文件将命名为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跟踪文件相同的格式。