Author: jstephens
Date: 2007-06-09 17:24:02 +0200 (Sat, 09 Jun 2007)
New Revision: 6740
Log:
Reorganised NDB Glossary; added new terms.
More info on kernel blocks.
Modified:
trunk/ndbapi/ndb-internals.xml
Modified: trunk/ndbapi/ndb-internals.xml
===================================================================
--- trunk/ndbapi/ndb-internals.xml 2007-06-08 22:41:57 UTC (rev 6739)
+++ trunk/ndbapi/ndb-internals.xml 2007-06-09 15:24:02 UTC (rev 6740)
Changed blocks: 14, Lines Added: 333, Lines Deleted: 85; 17824 bytes
@@ -8559,6 +8559,12 @@
</itemizedlist>
</para>
+ <para>
+ <literal>CMVMI</literal> is implemented as the
+ <literal>Cmvmi</literal> class, defined in
+ <filename>storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp</filename>.
+ </para>
+
</section>
<section id="ndb-internals-kernel-blocks-dbacc">
@@ -8566,7 +8572,8 @@
<title>The <literal>DBACC</literal> Block</title>
<para>
- This is the access control and lock management module, found in
+ Also referred to as the <literal>ACC</literal> block, this is
+ the access control and lock management module, found in
<filename>storage/ndb/src/kernel/blocks/dbacc</filename>. It
contains the following files:
@@ -8593,6 +8600,32 @@
</itemizedlist>
</para>
+ <para>
+ The <literal>ACC</literal> block handles the database index
+ structures, which are stored in 8K pages. Database locks are
+ also handled in the <literal>ACC</literal> block.
+ </para>
+
+ <para>
+ When a new tuple is inserted, the <literal>TUP</literal> block
+ stores the tuple in a suitable space and returns an index (a
+ reference to the address of the tuple in memory).
+ <literal>ACC</literal> stores both the primary key and this
+ tuple index of the tuple in a hash table.
+ </para>
+
+ <para>
+ Like the <literal>TUP</literal> block, the
+ <literal>ACC</literal> block implements part of the checkpoint
+ protocol. It also performs undo logging. It is implemented by
+ the <literal>Dbacc</literal> class, which is defined in
+
<filename>storage/ndb/src/kernel/blocks/dbacc/DbaccMain.hpp</filename>.
+ </para>
+
+ <para>
+ See also <xref linkend="ndb-internals-kernel-blocks-dbtup"/>.
+ </para>
+
</section>
<section id="ndb-internals-kernel-blocks-dbdict">
@@ -8601,10 +8634,14 @@
<para>
This block, the data dictionary block, is found in
- <filename>storage/ndb/src/kernel/blocks/dbdict</filename>. It is
- responsible for managing metadata via the cluster's master node
- such as table and index definitions, as well as many Disk Data
- operations. This block contains the following files:
+ <filename>storage/ndb/src/kernel/blocks/dbdict</filename>. Data
+ dictionary information is replicated to all
+ <literal>DICT</literal> blocks in the cluster. This is the only
+ block other than <literal>DBTC</literal> to which applications
+ can send requests. <literal>DBDICT</literal> responsible for
+ managing metadata via the cluster's master node such as table
+ and index definitions, as well as many Disk Data operations.
+ This block contains the following files:
<itemizedlist>
@@ -8689,6 +8726,12 @@
</itemizedlist>
</para>
+ <para>
+ This block is implenented as the <literal>Dbdict</literal>
+ class, defined in
+ <filename>storage/ndb/src/kernel/blocks/dblqh/Dbdict.hpp</filename>.
+ </para>
+
</section>
<section id="ndb-internals-kernel-blocks-dbdih">
@@ -8754,6 +8797,12 @@
global checkpoints and system restarts.
</para>
+ <para>
+ This block is implemented as the Dbdih class, whose definition
+ may be found in the file
+ <filename>storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp</filename>.
+ </para>
+
</section>
<section id="ndb-internals-kernel-blocks-dblqh">
@@ -8762,8 +8811,13 @@
<para>
This is the local, low-level query handler block, which manages
- data and transactions local to the cluster's data nodes. It is
- made up of the following files, found in
+ data and transactions local to the cluster's data nodes, and
+ acts as a coordinator of 2-phase commits. It is responsible
+ (when called on by the transaction coordinator) for performing
+ operations on tuples, accomplishing this task with help of
+ <literal>DBACC</literal> block (which manages the index
+ structures) and <literal>DBTUP</literal> (which manages the
+ tuples). It is made up of the following files, found in
<filename>storage/ndb/src/kernel/blocks/dblqh</filename>:
<itemizedlist>
@@ -8810,6 +8864,9 @@
<literal>DBACC</literal>, <literal>DBTUP</literal>,
<literal>LGMAN</literal>, <literal>TSMAN</literal>,
<literal>PGMAN</literal>, and <literal>BACKUP</literal>
blocks.
+ It is implemented as the class <literal>Dblqh</literal>, defined
+ in the file
+ <filename>storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp</filename>.
</para>
</section>
@@ -8851,16 +8908,31 @@
<note>
<para>
- Any data may act as the transaction coordinator.
+ Any data node may act as the transaction coordinator.
</para>
</note>
</para>
<para>
- This block also handles unique indexes, which must co-ordinated
- across all data nodes simultaneously.
+ This block also handles unique indexes, which must be
+ co-ordinated across all data nodes simultaneously.
</para>
+ <para>
+ The transaction coordinator is the kernel interface to which
+ applications send their requests. It establishes connections to
+ different blocks in the system to carry out the transaction and
+ decides which node will handle each transaction, sending a
+ confirmation signal on the result to the application so that the
+ application can verify that the result received from the TUP
+ block is correct.
+ </para>
+
+ <para>
+ The <literal>DBTC</literal> block is implemented as the
+ <literal>Dbtc</literal> class.
+ </para>
+
</section>
<section id="ndb-internals-kernel-blocks-dbtup">
@@ -9178,9 +9250,10 @@
<title>The <literal>LGMAN</literal> Block</title>
<para>
- This block is responsible for handling the undo logs for Disk
- Data tables. It consists of these files in the
- <filename>storage/ndb/src/kernel/blocks</filename> directory:
+ This block, the log group manager, is responsible for handling
+ the undo logs for Disk Data tables. It consists of these files
+ in the <filename>storage/ndb/src/kernel/blocks</filename>
+ directory:
<itemizedlist>
@@ -9436,6 +9509,13 @@
startup.
</para>
+ <para>
+ The <literal>QMGR</literal> block is implemented by the
+ <literal>Qmgr</literal> class, whose definition is found in the
+ file
+ <filename>storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp</filename>.
+ </para>
+
</section>
<section id="ndb-internals-kernel-blocks-restore">
@@ -9527,11 +9607,11 @@
<title>The <literal>TRIX</literal> Block</title>
<para>
- This kernel block is responsible for the building of unique
- indexes. This block, like <literal>DBUTIL</literal>, is a
- utility block containing many helper functions for building
- indexes and handling signlas betweens nodes. It is found in the
- directory
+ This kernel block is responsible for the handling of internal
+ triggers and unique indexes. <literal>TRIX</literal>, like
+ <literal>DBUTIL</literal>, is a utility block containing many
+ helper functions for building indexes and handling signals
+ betweens nodes. It is found in the directory
<filename>storage/ndb/src/kernel/blocks/trix</filename>, and
includes these files:
@@ -9552,6 +9632,12 @@
</itemizedlist>
</para>
+ <para>
+ This block is implemented as the <literal>Trix</literal> class,
+ defined in
+ <filename>storage/ndb/src/kernel/blocks/trix/Trix.hpp</filename>.
+ </para>
+
</section>
<section id="ndb-internals-kernel-blocks-misc">
@@ -9643,108 +9729,270 @@
<itemizedlist>
<listitem>
- <para>
- <emphasis role="bold">ACC</emphasis>
- </para>
+ <formalpara>
- <para>
- <emphasis role="bold">ACC</emphasis>elerator or
- <emphasis role="bold">ACC</emphasis>ess manager. Handles hash
- indexes of primary keys, providing fast access to records.
- </para>
+ <title>ACC</title>
+
+ <para>
+ <emphasis role="bold">ACC</emphasis>elerator or
+ <emphasis role="bold">ACC</emphasis>ess manager. Handles
+ hash indexes of primary keys, providing fast access to
+ records. See
+ <xref linkend="ndb-internals-kernel-blocks-dbacc"/>.
+ </para>
+
+ </formalpara>
</listitem>
<listitem>
- <para>
- <emphasis role="bold">DBTC</emphasis>
- </para>
+ <formalpara>
- <para>
- The transaction coordinator.
- </para>
+ <title>CMVMI</title>
+
+ <para>
+ Stands for <emphasis role="bold">C</emphasis>luster
+ <emphasis role="bold">M</emphasis>anager
+ <emphasis role="bold">V</emphasis>irtual
+ <emphasis role="bold">M</emphasis>achine
+ <emphasis role="bold">I</emphasis>nterface. An
+ <literal>NDB</literal> kernel handling non-signal requests
+ to the operating system, as well as configuration
+ management, interaction with the cluster management server,
+ and interaction between various kernel blocks and the
+ <literal>NDB</literal> virtual machine. See
+ <xref linkend="ndb-internals-kernel-blocks-cmvmi"/>, for
+ more information.
+ </para>
+
+ </formalpara>
</listitem>
<listitem>
- <para>
- <emphasis role="bold">DIH</emphasis>
- </para>
+ <formalpara>
- <para>
- <emphasis role="bold">DI</emphasis>stribution
- <emphasis role="bold">H</emphasis>andler.
- </para>
+ <title>CNTR</title>
+
+ <para>
+ Stands for restart
+ <emphasis role="bold">C</emphasis>oordi<emphasis
role="bold">N</emphasis>a<emphasis
role="bold">T</emphasis>o<emphasis role="bold">R</emphasis>.
+ See <xref linkend="ndb-internals-kernel-blocks-ndbcntr"/>,
+ for more information.
+ </para>
+
+ </formalpara>
</listitem>
<listitem>
- <para>
- <emphasis role="bold">LQH</emphasis>
- </para>
+ <formalpara>
- <para>
- <emphasis role="bold">L</emphasis>ocal
- <emphasis role="bold">Q</emphasis>uery
- <emphasis role="bold">H</emphasis>andler.
- </para>
+ <title>DBTC</title>
+
+ <para>
+ The transaction coordinator (also sometimes written simply
+ as <emphasis role="bold">TC</emphasis>). See
+ <xref linkend="ndb-internals-kernel-blocks-dbtc"/>, for more
+ information.
+ </para>
+
+ </formalpara>
</listitem>
<listitem>
- <para>
- <emphasis
role="bold"><literal>SUMA</literal></emphasis>
- </para>
+ <formalpara>
- <para>
- <emphasis role="bold">SU</emphasis>bscription
- <emphasis
- role="bold">MA</emphasis>nager.
- </para>
+ <title>DICT</title>
+
+ <para>
+ The <literal>NDB</literal> data
+ <emphasis role="bold">DICT</emphasis>ionary kernel block.
+ Also <emphasis role="bold">DBDICT</emphasis>. See
+ <xref linkend="ndb-internals-kernel-blocks-dbdict"/>.
+ </para>
+
+ </formalpara>
</listitem>
<listitem>
+ <formalpara>
+
+ <title>DIH</title>
+
+ <para>
+ <emphasis role="bold">DI</emphasis>stribution
+ <emphasis role="bold">H</emphasis>andler. An
+ <literal>NDB</literal> kernel block. See
+ <xref linkend="ndb-internals-kernel-blocks-dbdih"/>.
+ </para>
+
+ </formalpara>
+ </listitem>
+
+ <listitem>
+ <formalpara>
+
+ <title>LGMAN</title>
+
+ <para>
+ The <emphasis role="bold">L</emphasis>og
+ <emphasis role="bold">G</emphasis>roup
+ <emphasis role="bold">MAN</emphasis>ager
+ <literal>NDB</literal> kernel block, used for MySQL Cluster
+ Disk Data tables. See
+ <xref linkend="ndb-internals-kernel-blocks-lgman"/>.
+ </para>
+
+ </formalpara>
+ </listitem>
+
+ <listitem>
+ <formalpara>
+
+ <title>LQH</title>
+
+ <para>
+ <emphasis role="bold">L</emphasis>ocal
+ <emphasis role="bold">Q</emphasis>uery
+ <emphasis role="bold">H</emphasis>andler.
+ <literal>NDB</literal> kernel block, discussed in
+ <xref linkend="ndb-internals-kernel-blocks-dblqh"/>.
+ </para>
+
+ </formalpara>
+ </listitem>
+
+ <listitem>
+ <formalpara>
+
+ <title>MGM</title>
+
+ <para>
+ <emphasis role="bold">M</emphasis>ana<emphasis
role="bold">G</emphasis>e<emphasis role="bold">M</emphasis>ent
+ node (or management server). Implemented as the
+ <command>ndb_mgmd</command> server daemon. Responsible for
+ passing cluster configuration information to data nodes and
+ performing functions such as starting and stopping nodes.
+ Accessed by the user by means of the cluster management
+ client (<command>ndb_mgm</command>). A discussion of
+ management nodes can be found in
+ <xref linkend="mysql-cluster-ndb-mgmd-process"/>.
+ </para>
+
+ </formalpara>
+ </listitem>
+
+ <listitem>
+ <formalpara>
+
+ <title>QMGR</title>
+
+ <para>
+ The cluster management block in the <literal>NDB</literal>
+ kernel. It responsibilities include monitoring heartbeats
+ from data and API nodes. See
+ <xref linkend="ndb-internals-kernel-blocks-qmgr"/>, for more
+ information.
+ </para>
+
+ </formalpara>
+ </listitem>
+
+ <listitem>
+ <formalpara>
+
+ <title>RBR</title>
+
+ <para>
+ <emphasis role="bold">R</emphasis>ow-<emphasis
role="bold">B</emphasis>ased
+ <emphasis role="bold">R</emphasis>eplication. MySQL Cluster
+ Replication is row-based replication. See
+ <xref linkend="mysql-cluster-replication"/>.
+ </para>
+
+ </formalpara>
+ </listitem>
+
+ <listitem>
+ <formalpara>
+
+ <title>SUMA</title>
+
+ <para>
+ The cluster <emphasis role="bold">SU</emphasis>bscription
+ <emphasis role="bold">MA</emphasis>nager. See
+ <xref linkend="ndb-internals-kernel-blocks-suma"/>.
+ </para>
+
+ </formalpara>
+ </listitem>
+
+ <listitem>
<para>
<emphasis role="bold">TC</emphasis>
</para>
- <para>
- <emphasis role="bold">T</emphasis>ransaction
- <emphasis role="bold">C</emphasis>o-ordinator
- </para>
+ <formalpara>
+
+ <title>TC</title>
+
+ <para>
+ <emphasis role="bold">T</emphasis>ransaction
+ <emphasis role="bold">C</emphasis>oordinator. See
+ <xref linkend="ndb-internals-kernel-blocks-dbtc"/>.
+ </para>
+
+ </formalpara>
</listitem>
<listitem>
- <para>
- <emphasis
role="bold"><literal>Tsman</literal></emphasis>
- </para>
+ <formalpara>
- <para>
- <emphasis role="bold">T</emphasis>able<emphasis
- role="bold">s</emphasis>pace
- <emphasis
- role="bold">m</emphasis>anager.
- </para>
+ <title>TRIX</title>
+
+ <para>
+ Stands for <emphasis role="bold">TR</emphasis>ansactions and
+ <emphasis role="bold">I</emphasis>nde<emphasis
role="bold">X</emphasis>es,
+ which are managed by the <literal>NDB</literal> kernel block
+ having this name. See
+ <xref linkend="ndb-internals-kernel-blocks-trix"/>.
+ </para>
+
+ </formalpara>
</listitem>
<listitem>
- <para>
- <emphasis role="bold">TUP</emphasis>
- </para>
+ <formalpara>
- <para>
- <emphasis role="bold">TUP</emphasis>le. Unit of data storage.
- </para>
+ <title>TSMAN</title>
+
+ <para>
+ <emphasis role="bold">T</emphasis>able
+ <emphasis role="bold">s</emphasis>pace
+ <emphasis role="bold">m</emphasis>anager. Handles
+ tablespaces for MySQL Cluster Disk Data. See
+ <xref linkend="ndb-internals-kernel-blocks-tsman"/>, for
+ more information.
+ </para>
+
+ </formalpara>
</listitem>
-<!--
- <listitem>
- <para>
- <emphasis role="bold"></emphasis>
- </para>
-
- <para>
-
- </para>
- </listitem>
- -->
+ <listitem>
+ <formalpara>
+ <title>TUP</title>
+
+ <para>
+ <emphasis role="bold">TUP</emphasis>le. Unit of data
+ storage. Also used (along with
+ <emphasis role="bold">DBTUP</emphasis>) to refer to the
+ <literal>NDB</literal> kernel's tuple management block,
+ which is discussed in
+ <xref linkend="ndb-internals-kernel-blocks-dbtup"/>.
+ </para>
+
+ </formalpara>
+ </listitem>
+
</itemizedlist>
</section>
| Thread |
|---|
| • svn commit - mysqldoc@docsrva: r6740 - trunk/ndbapi | jon | 9 Jun |