Before the data node actually starts, a number of other setup and initialization tasks must be done for the block objects, transporters, and watchdog checks, among others.
This initialization process begins in
storage/ndb/src/kernel/main.cpp with a
series of calls to
When starting ndbd with the
--nostart option there
is only one call to this method; otherwise, there are two, with
the second call actually starting the data node. The first
doStart() sends the
START_ORD signal to the
CMVMI block (see
Section 4.2, “The CMVMI Block”); the second
call to this method sends a
Section 4.14, “The NDBCNTR Block”).
START_ORD is received by the
NDBCNTR block, the signal is immediately
MISSRA sub-block, which handles the start
process by sending a
to all blocks in order as given in the array
NDBFS is permitted to run before any of the
remaining blocks are contacted, in order to make sure that it
can start the
CMVMI block's threads.