(mysql.info) ndbd-process
Info Catalog
(mysql.info) mysqld-process
(mysql.info) mysql-cluster-process-management
(mysql.info) ndb-mgmd-process
15.5.2 `ndbd', the Storage Engine Node Process
----------------------------------------------
`ndbd' is the process that is used to handle all the data in tables
using the NDB Cluster storage engine. This is the process that
empowers a storage node to accomplish distributed transaction handling,
node recovery, checkpointing to disk, online backup, and related tasks.
In a MySQL Cluster, a set of `ndbd' processes cooperate in handling
data. These processes can execute on the same computer (host) or on
different computers. The correspondences between data nodes and Cluster
hosts is completely configurable.
`ndbd' generates a set of log files which are placed in the directory
specified by `DataDir' in the `config.ini' configuration file. These
log files are listed below. Note that NODE_ID represents the node's
unique identifier. For example, `ndb_2_error.log' is the error log
generated by the storage node whose node ID is `2'.
* `ndb_NODE_ID_error.log' is a file containing records of all
crashes which the referenced `ndbd' process has encountered. Each
record in this file contains a brief error string and a reference
to a trace file for this crash. A typical entry in this file might
appear as shown here:
Date/Time: Saturday 30 July 2004 - 00:20:01
Type of error: error
Message: Internal program error (failed ndbrequire)
Fault ID: 2341
Problem data: DbtupFixAlloc.cpp
Object of reference: DBTUP (Line: 173)
ProgramName: NDB Kernel
ProcessID: 14909
TraceFile: ndb_2_trace.log.2
***EOM***
the error log file is not necessarily the newest one_ (nor is it
likely to be). Entries in the error log are _not_ listed in
chronological order; rather, they correspond to the order of the
trace files as determined in the `ndb_NODE_ID_trace.log.next' file
(see below). Error log entries are thus overwritten in a cyclical
and not sequential fashion.
* `ndb_NODE_ID_trace.log.TRACE_ID' is a trace file describing
exactly what happened just before the error occurred. This
information is useful for analysis by the MySQL Cluster
development team.
It is possible to configure the number of these trace files that
will be created before old files are overwritten. TRACE_ID is a
number which is incremented for each successive trace file.
* `ndb_NODE_ID_trace.log.next' is the file that keeps track of the
next trace file number to be assigned.
* `ndb_NODE_ID_out.log' is a file containing any data output by the
`ndbd' process. This file is created only if `ndbd' is started as
a daemon.
* `ndb_NODE_ID.pid' is a file containing the process ID of the
`ndbd' process when started as a daemon. It also functions as a
lock file to avoid the starting of nodes with the same identifier.
* `ndb_NODE_ID_signal.log' is a file used only in debug versions of
`ndbd', where it is possible to trace all incoming, outgoing, and
internal messages with their data in the `ndbd' process.
It is recommended not to use a directory mounted through NFS because in
some environments this can cause problems whereby the lock on the
`.pid' file remains in effect even after the process has terminated.
To start `ndbd', it may also be necessary to specify the hostname of
the management server and the port on which it is listening.
Optionally, one may also specify the node ID that the process is to use.
shell> ndbd --connect-string="nodeid=2;host=ndb_mgmd.mysql.com:1186"
See mysql-cluster-connectstring, for additional information
about this issue. mysql-cluster-command-options, describes
other options for `ndbd'.
When `ndbd' starts, it actually initiates two processes. The first of
these is called the `angel process'; its only job is to discover when
the execution process has been completed, and then to restart the
`ndbd' process if it is configured to do so. Thus, if you attempt to
kill `ndbd' via the Unix `kill' command, it is necessary to kill both
processes, beginning with the angel process. The preferred method of
terminating an `ndbd' process is to use the management client and stop
the process from there.
The execution process uses one thread for reading, writing, and
scanning data, as well as all other activities. This thread is
implemented asynchronously so that it can easily handle thousands of
concurrent activites. In addition, a watch-dog thread supervises the
execution thread to make sure that it does not hang in an endless loop.
A pool of threads handles file I/O, with each thread able to handle one
open file. Threads can also be used for transporter connections by the
transporters in the `ndbd' process. In a system performing a large
number of operations, including updates, the `ndbd' process can consume
up to 2 CPUs if permitted to do so. For a machine with many CPUs it is
recommended to use several `ndbd' processes which belong to different
node groups.
Info Catalog
(mysql.info) mysqld-process
(mysql.info) mysql-cluster-process-management
(mysql.info) ndb-mgmd-process
automatically generated byinfo2html