ndbmtd man page on QNX
NDBMTD(8) MySQL Database System NDBMTD(8)
ndbmtd - the MySQL Cluster data node daemon (multi-threaded version)
ndbmtd is a multi-threaded version of ndbd, the process that is used to
handle all the data in tables using the NDBCLUSTER storage engine.
ndbmtd is intended for use on host computers having multiple CPU cores.
Except where otherwise noted, ndbmtd functions in the same way as ndbd;
therefore, in this section, we concentrate on the ways in which ndbmtd
differs from ndbd, and you should consult ndbd(8), for additional
information about running MySQL Cluster data nodes that apply to both
the single-threaded and multi-threaded versions of the data node
Command-line options and configuration parameters used with ndbd also
apply to ndbmtd. For more information about these options and
parameters, see ndbd(8), and Section 22.214.171.124, “Defining MySQL Cluster
Data Nodes”, respectively.
ndbmtd is also file system-compatible with ndbd. In other words, a data
node running ndbd can be stopped, the binary replaced with ndbmtd, and
then restarted without any loss of data. (However, when doing this, you
must make sure that MaxNoOfExecutionThreads is set to an apppriate
value before restarting the node if you wish for ndbmtd to run in
multi-threaded fashion.) Similarly, an ndbmtd binary can be replaced
with ndbd simply by stopping the node and then starting ndbd in place
of the multi-threaded binary. It is not necessary when switching
between the two to start the data node binary using --initial.
Prior to MySQL Cluster NDB 7.0.6, there were known issues when using
ndbmtd with MySQL Cluster Disk Data tables. If you wish to use
multi-threaded data nodes with disk-based NDB tables, you should ensure
that you are running MySQL Cluster NDB 7.0.6 or later (see Bug#41915
Using ndbmtd differs from using ndbd in two key respects:
1. You must set an appropriate value for the MaxNoOfExecutionThreads
configuration parameter in the config.ini file. If you do not do
so, ndbmtd runs in single-threaded mode; that is, it behaves like
2. Trace files are generated by critical errors in ndbmtd processes in
a somewhat different fashion from how these are generated by ndbd
These differences are discussed in more detail in the next few
Number of execution threads. The MaxNoOfExecutionThreads configuration
parameter is used to determine the number of local query handler (LQH)
threads spawned by ndbmtd. Although this parameter is set in [ndbd] or
[ndbd default] sections of the config.ini file, it is exclusive to
ndbmtd and does not apply to ndbd.
This parameter takes an integer value from 2 to 8 inclusive. Generally,
you should set this parameter equal to the number of CPU cores on the
data node host, as shown in the following table:
│Number of Cores │ Recommended │
│ │ MaxNoOfExecutionThreads │
│ │ Value │
│2 │ 2 │
│4 │ 4 │
│8 or more │ 8 │
(It is possible to set this parameter to other values within the
permitted range, but these are automatically rounded as shown in the
Value Used column of the next table in this section.)
The multi-threaded data node process always spawns at least 4 threads,
· 1 local query handler (LQH) thread
· 1 transaction coordinator (TC) thread
· 1 transporter thread
· 1 subscription manager (SUMA) thread
Setting this parameter to a value between 4 and 8 inclusive causes
additional LQH threads to be used by ndbmtd (up to a maximum of 4 LQH
threads), as shown in the following table:
│config.ini Value │ Value Used │ Number of LQH │
│ │ │ Threads Used │
│3 │ 2 │ 1 │
│5 or 6 │ 4 │ 2 │
│7 │ 8 │ 4 │
Setting this parameter outside the permitted range of values causes the
management server to abort on startup with the error Error line number:
Illegal value value for parameter MaxNoOfExecutionThreads.
In MySQL Cluster NDB 6.4.0, it is not possible to set
MaxNoOfExecutionThreads to 2. You can safely use the value 3
instead (it is treated as 2 internally). This issue is resolved in
MySQL Cluster NDB 6.4.1.
In MySQL Cluster NDB 6.4.0 through 6.4.3, the default value for this
parameter was undefined, although the default behavior for ndbmtd was
to use 1 LQH thread, as though MaxNoOfExecutionThreads had been set to
2. Beginning with MySQL Cluster NDB 7.0.4, this parameter has an
explcit default value of 2, thus guaranteeing this default behavior.
In MySQL Cluster NDB 7.0, it is not possible to cause ndbmtd to use
more than 1 TC thread, although we plan to introduce this capability in
a future MySQL Cluster release series.
Like ndbd, ndbmtd generates a set of log files which are placed in the
directory specified by DataDir in the config.ini configuration file.
Except for trace files, these are generated in the same way and have
the same names as those generated by ndbd.
In the event of a critical error, ndbmtd generates trace files
describing what happened just prior to the error´ occurrence. These
files, which can be found in the data node´s DataDir, are useful for
analysis of problems by the MySQL Cluster Development and Support
teams. One trace file is generated for each ndbmtd thread. The names of
these files have the following pattern:
In this pattern, node_id stands for the data node´s unique node ID in
the cluster, trace_id is a trace sequence number, and thread_id is the
thread ID. For example, in the event of the failure of an ndbmtd
process running as a MySQL Cluster data node having the node ID 3 and
with MaxNoOfExecutionThreads equal to 4, four trace files are generated
in the data node´s data directory. If the is the first time this node
has failed, then these files are named ndb_3_trace.log.1_t1,
ndb_3_trace.log.1_t2, ndb_3_trace.log.1_t3, and ndb_3_trace.log.1_t4.
Internally, these trace files follow the same format as ndbd trace
The ndbd exit codes and messages that are generated when a data node
process shuts down prematurely are also used by ndbmtd. See ndbd Error
Messages, for a listing of these.
It is possible to use ndbd and ndbmtd concurrently on different
data nodes in the same MySQL Cluster. However, such configurations
have not been tested extensively; thus, we cannot not recommend
doing so in a production setting at this time.
Copyright © 1997, 2010, Oracle and/or its affiliates. All rights
This documentation is free software; you can redistribute it and/or
modify it only under the terms of the GNU General Public License as
published by the Free Software Foundation; version 2 of the License.
This documentation is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License along
with the program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or see
3. ndbd Error Messages
For more information, please refer to the MySQL Reference Manual, which
may already be installed locally and which is also available online at
Oracle Corporation (http://dev.mysql.com/).
MySQL 5.1 11/29/2010 NDBMTD(8)
_ _ _
| | | | | |
| | | | | |
__ | | __ __ | | __ __ | | __
\ \| |/ / \ \| |/ / \ \| |/ /
\ \ / / \ \ / / \ \ / /
\ / \ / \ /
\_/ \_/ \_/
More information is available in HTML format for server QNX
List of man pages available for QNX
Copyright (c) for man pages and the logo by the respective OS vendor.
For those who want to learn more, the polarhome community provides shell access and support.
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome