在数据节点实际启动之前,必须为块对象、传输器和看门狗检查等完成许多其他设置和初始化任务。
此初始化过程从 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
信号来处理启动过程