21.4.3 ndbmtd-NDB 群集数据节点守护程序(多线程)

ndbmtdndbd的多线程版本,该进程用于使用NDBCLUSTER存储引擎处理 table 中的所有数据。 ndbmtd适用于具有多个 CPU 内核的主机。除非另有说明,否则ndbmtd的功能与ndbd相同;因此,在本节中,我们将重点介绍ndbmtdndbd不同的方式,并且您应查阅第 21.4.1 节“ ndbd-NDB 群集数据节点守护程序”以获得有关运行适用于数据节点进程的单线程和多线程版本的 NDB Cluster 数据节点的其他信息。

ndbd一起使用的命令行选项和配置参数也适用于ndbmtd。有关这些选项和参数的更多信息,请分别参见第 21.4.1 节“ ndbd-NDB 群集数据节点守护程序”第 21.3.3.6 节,“定义 NDB 群集数据节点”

ndbmtdndbd文件系统兼容。换句话说,可以停止运行ndbd的数据节点,将二进制文件替换为ndbmtd,然后重新启动而不会丢失任何数据。 (但是,这样做时,如果希望ndbmtd以多线程方式运行,则必须在重新启动节点之前确保将MaxNoOfExecutionThreads设置为适当的值。)类似地,只需停止节点即可将ndbmtd二进制文件替换为ndbd。然后以ndbd代替多线程二进制文件。在两者之间切换时,不必使用--initial启动数据节点二进制文件。

使用ndbmtd与使用ndbd在两个关键方面不同:

  • 由于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_t1ndb_3_trace.log.1_t2ndb_3_trace.log.1_t3ndb_3_trace.log.1_t4。在内部,这些跟踪文件与ndbd跟踪文件采用相同的格式。

ndbmtd还使用了ndbd退出代码和数据节点进程过早关闭时生成的消息。有关这些列 table,请参见数据节点错误消息

Note

可以在同一 NDB 群集中的不同数据节点上同时使用ndbdndbmtd。但是,此类配置尚未经过广泛测试。因此,我们目前不建议在生产环境中这样做。