16.6.1. MySQL Cluster Startup Phases
This section describes the steps involved when the cluster is
started.
There are several different startup types and modes, as shown
here:
Initial Start: The cluster
starts with a clean filesystem on all data nodes. This
occurs either when the cluster started for the very first
time, or when it is restarted using the
--initial
option.
System Restart: The cluster
starts and reads data stored in the data nodes. This occurs
when the cluster has been shut down after having been in
use, when it is desired for the cluster to resume operations
from the point where it left off.
Node Restart: This is the
online restart of a cluster node while the cluster itself is
running.
Initial Node Restart: This
is the same as a node restart, except that the node is
reinitialized and started with a clean filesystem.
Prior to startup, each data node (ndbd
process) must be initialized. Initialization consists of the
following steps:
Obtain a Node ID.
Fetch configuration data.
Allocate ports to be used for inter-node communications.
Allocate memory according to settings obtained from the
configuration file.
After each data node has been initialized, the cluster startup
process can proceed. The stages which the cluster goes through
during this process are listed here:
-
Stage 0
Clear the cluster filesystem. This stage occurs
only if the cluster was started with
the --initial
option.
-
Stage 1
This stage sets up Cluster connections, establishes
inter-node communications are established, and starts
Cluster heartbeats.
-
Stage 2
The arbitrator node is elected. If this is a system restart,
the cluster determines the latest restorable global
checkpoint.
-
Stage 3
This stage initializes a number of internal cluster
variables.
-
Stage 4
For an initial start or initial node restart, the redo log
files are created. The number of these files is equal to
NoOfFragmentLogFiles
.
For a system restart:
For a node restart, find the tail of the redo log.
-
Stage 5
If this is an initial start, create the
SYSTAB_0
and
NDB$EVENTS
internal system tables.
For a node restart or an initial node restart:
The node is included in transaction handling operations.
The node schema is compared with that of the master and
synchronized with it.
Synchronize data received in the form of
INSERT
from the other data nodes in
this node's node group.
In all cases, wait for complete local checkpoint as
determined by the arbitrator.
-
Stage 6
Update internal variables.
-
Stage 7
Update internal variables.
-
Stage 8
In a system restart, rebuild all indexes.
-
Stage 9
Update internal variables.
-
Stage 10
At this point in a node restart or initial node restart,
APIs may connect to the node and being to receive events.
-
Stage 11
At this point in a node restart or initial node restart,
event delivery is handed over to the node joining the
cluster. The newly-joined node takes over responsibility for
delivering its primary data to subscribers.
After this process is completed for an initial start or system
restart, transactions handling is enabled. For a node restart or
initial node restart, completion of the startup process means
that the node may now act as a transaction coordinator.