• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • ndbmtd - NDB簇数据节点守护进程(多线程)

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

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

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

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

    1. 由于ndbmtd默认在单线程模式下运行(也就是说,其行为类似于ndbd),因此必须将其配置为使用多个线程。这可以通过在config.ini文件中为MaxNoOfExecutionThreads配置参数或ThreadConfig配置参数设置适当的值来完成。使用MaxNoOfExecutionThreads更简单,但ThreadConfig提供了更大的灵活性。有关这些配置参数及其使用的更多信息,请参见多线程配置参数(ndbmtd)。
    2. 跟踪文件是由ndbmtd进程中的严重错误生成的,其方式与ndbd故障所生成的错误方式有些不同。在接下来的几段中将更详细地讨论这些差异。

    ndbd一样,ndbmtd生成一组日志文件,这些日志文件放置在配置文件中指定的目录DataDirconfig.ini。除跟踪文件外,这些文件的生成方式与ndbd生成的名称相同。

    如果发生严重错误,ndbmtd会生成跟踪文件,以描述错误发生之前发生的情况。这些文件可以在数据节点的文件中找到DataDir,对于NDB群集开发和支持团队的问题分析很有用。每个ndbmtd线程都会生成一个跟踪文件。这些文件的名称具有以下模式:

    ndb_node_id_trace.log.trace_id_tthread_id,
    

    在此模式中,node_id代表集群中数据节点的唯一节点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_t3,和ndb_3_trace.log.1_t4。在内部,这些跟踪文件与ndbd跟踪文件采用相同的格式。

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

    注意

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