DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(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