在資料節點實際啟動之前,必須先完成許多其他設定和初始化任務,包括區塊物件、傳輸器和監控檢查等。
此初始化程序從 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
信號傳送給所有區塊,來處理啟動程序。