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 區塊的執行緒。