NDB 集群内部结构  /  NDB 集群启动阶段  /  初始化阶段(阶段 -1)

5.1 初始化阶段(阶段 -1)

在数据节点实际启动之前,必须为块对象、传输器和看门狗检查等完成许多其他设置和初始化任务。

此初始化过程从 storage/ndb/src/kernel/main.cpp 中的一系列对 globalEmulatorData.theThreadConfig->doStart() 的调用开始。使用 -n--nostart 选项启动 ndbd 时,只调用一次此方法;否则,将调用两次,第二次调用实际启动数据节点。第一次调用 doStart() 会将 START_ORD 信号发送到 CMVMI 块;第二次调用此方法会将 START_ORD 信号发送到 NDBCNTR

NDBCNTR 块收到 START_ORD 时,该信号会立即传输到 NDBCNTR 块的 MISSRA 子块,该子块通过按照数组 readConfigOrder 中给定的顺序向所有块发送 READ_CONFIG_REQ 信号来处理启动过程

允许在联系任何其他块之前运行 NDBFS,以确保它可以启动 CMVMI 块的线程。