List:Commits« Previous MessageNext Message »
From:jon.stephens Date:October 11 2010 9:18am
Subject:svn commit - mysqldoc@docsrva: r23073 - trunk/refman-5.1
View as plain text  
Author: jstephens
Date: 2010-10-11 11:18:28 +0200 (Mon, 11 Oct 2010)
New Revision: 23073

Log:

De-gunking, fixed some forward-looking statements



Modified:
   trunk/refman-5.1/mysql-cluster-management.xml
   trunk/refman-5.1/mysql-cluster.xml


Modified: trunk/refman-5.1/mysql-cluster-management.xml
===================================================================
--- trunk/refman-5.1/mysql-cluster-management.xml	2010-10-11 08:13:34 UTC (rev 23072)
+++ trunk/refman-5.1/mysql-cluster-management.xml	2010-10-11 09:18:28 UTC (rev 23073)
Changed blocks: 51, Lines Added: 1443, Lines Deleted: 1439; 135428 bytes

@@ -105,120 +105,119 @@
       <title>Start types</title>
 
       <para>
-        There are several different startup types and modes, as shown
-        here:
+        There are several different startup types and modes, as shown in
+        the following list:
+      </para>
 
-        <itemizedlist>
+    </formalpara>
 
-          <listitem>
-            <formalpara>
+    <itemizedlist>
 
-              <title>Initial Start</title>
+      <listitem>
+        <formalpara>
 
-              <para>
-                The cluster starts with a clean file system on all data
-                nodes. This occurs either when the cluster started for
-                the very first time, or when all data nodes are
-                restarted using the <option>--initial</option> option.
+          <title>Initial start</title>
 
-                <note>
-                  <para>
-                    Disk Data files are not removed when restarting a
-                    node using <option>--initial</option>.
-                  </para>
-                </note>
-              </para>
+          <para>
+            The cluster starts with a clean file system on all data
+            nodes. This occurs either when the cluster started for the
+            very first time, or when all data nodes are restarted using
+            the <option>--initial</option> option.
+          </para>
 
-            </formalpara>
-          </listitem>
+        </formalpara>
 
-          <listitem>
-            <formalpara>
+        <note>
+          <para>
+            Disk Data files are not removed when restarting a node using
+            <option>--initial</option>.
+          </para>
+        </note>
+      </listitem>
 
-              <title>System Restart</title>
+      <listitem>
+        <formalpara>
 
-              <para>
-                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.
-              </para>
+          <title>System restart</title>
 
-            </formalpara>
-          </listitem>
+          <para>
+            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.
+          </para>
 
-          <listitem>
-            <formalpara>
+        </formalpara>
+      </listitem>
 
-              <title>Node Restart</title>
+      <listitem>
+        <formalpara>
 
-              <para>
-                This is the online restart of a cluster node while the
-                cluster itself is running.
-              </para>
+          <title>Node restart</title>
 
-            </formalpara>
-          </listitem>
+          <para>
+            This is the online restart of a cluster node while the
+            cluster itself is running.
+          </para>
 
-          <listitem>
-            <formalpara>
+        </formalpara>
+      </listitem>
 
-              <title>Initial Node Restart</title>
+      <listitem>
+        <formalpara>
 
-              <para>
-                This is the same as a node restart, except that the node
-                is reinitialized and started with a clean file system.
-              </para>
+          <title>Initial node restart</title>
 
-            </formalpara>
-          </listitem>
+          <para>
+            This is the same as a node restart, except that the node is
+            reinitialized and started with a clean file system.
+          </para>
 
-        </itemizedlist>
-      </para>
+        </formalpara>
+      </listitem>
 
-    </formalpara>
+    </itemizedlist>
 
     <formalpara>
 
-      <title>Setup and initialization (Phase -1)</title>
+      <title>Setup and initialization (phase -1)</title>
 
       <para>
         Prior to startup, each data node (<command>ndbd</command>
         process) must be initialized. Initialization consists of the
         following steps:
+      </para>
 
-        <orderedlist>
+    </formalpara>
 
-          <listitem>
-            <para>
-              Obtain a node ID
-            </para>
-          </listitem>
+    <orderedlist>
 
-          <listitem>
-            <para>
-              Fetch configuration data
-            </para>
-          </listitem>
+      <listitem>
+        <para>
+          Obtain a node ID
+        </para>
+      </listitem>
 
-          <listitem>
-            <para>
-              Allocate ports to be used for inter-node communications
-            </para>
-          </listitem>
+      <listitem>
+        <para>
+          Fetch configuration data
+        </para>
+      </listitem>
 
-          <listitem>
-            <para>
-              Allocate memory according to settings obtained from the
-              configuration file
-            </para>
-          </listitem>
+      <listitem>
+        <para>
+          Allocate ports to be used for inter-node communications
+        </para>
+      </listitem>
 
-        </orderedlist>
-      </para>
+      <listitem>
+        <para>
+          Allocate memory according to settings obtained from the
+          configuration file
+        </para>
+      </listitem>
 
-    </formalpara>
+    </orderedlist>
 
     <para>
       When a data node or SQL node first connects to the management

@@ -265,237 +264,235 @@
       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:
+    </para>
 
-      <itemizedlist>
+    <itemizedlist>
 
-        <listitem>
-          <formalpara>
+      <listitem>
+        <formalpara>
 
-            <title>Phase 0</title>
+          <title>Phase 0</title>
 
-            <para>
-              The <literal>NDBFS</literal> and
-              <literal>NDBCNTR</literal> blocks start (see
-              <xref linkend="ndb-internals-kernel-blocks"/>). The
-              cluster file system is cleared, if the cluster was started
-              with the <option>--initial</option> option.
-            </para>
+          <para>
+            The <literal>NDBFS</literal> and <literal>NDBCNTR</literal>
+            blocks start (see
+            <xref linkend="ndb-internals-kernel-blocks"/>). The cluster
+            file system is cleared, if the cluster was started with the
+            <option>--initial</option> option.
+          </para>
 
-          </formalpara>
-        </listitem>
+        </formalpara>
+      </listitem>
 
-        <listitem>
-          <formalpara>
+      <listitem>
+        <formalpara>
 
-            <title>Phase 1</title>
+          <title>Phase 1</title>
 
-            <para>
-              In this stage, all remaining
-              <literal role="se">NDB</literal> kernel blocks are
-              started. Cluster connections are set up, inter-block
-              communications are established, and Cluster heartbeats are
-              started. In the case of a node restart, API node
-              connections are also checked.
+          <para>
+            In this stage, all remaining
+            <literal role="se">NDB</literal> kernel blocks are started.
+            Cluster connections are set up, inter-block communications
+            are established, and Cluster heartbeats are started. In the
+            case of a node restart, API node connections are also
+            checked.
+          </para>
 
-              <note>
-                <para>
-                  When one or more nodes hang in Phase 1 while the
-                  remaining node or nodes hang in Phase 2, this often
-                  indicates network problems. One possible cause of such
-                  issues is one or more cluster hosts having multiple
-                  network interfaces. Another common source of problems
-                  causing this condition is the blocking of TCP/IP ports
-                  needed for communications between cluster nodes. In
-                  the latter case, this is often due to a misconfigured
-                  firewall.
-                </para>
-              </note>
-            </para>
+        </formalpara>
 
-          </formalpara>
-        </listitem>
+        <note>
+          <para>
+            When one or more nodes hang in Phase 1 while the remaining
+            node or nodes hang in Phase 2, this often indicates network
+            problems. One possible cause of such issues is one or more
+            cluster hosts having multiple network interfaces. Another
+            common source of problems causing this condition is the
+            blocking of TCP/IP ports needed for communications between
+            cluster nodes. In the latter case, this is often due to a
+            misconfigured firewall.
+          </para>
+        </note>
+      </listitem>
 
-        <listitem>
-          <formalpara>
+      <listitem>
+        <formalpara>
 
-            <title>Phase 2</title>
+          <title>Phase 2</title>
 
-            <para>
-              The <literal>NDBCNTR</literal> kernel block checks the
-              states of all existing nodes. The master node is chosen,
-              and the cluster schema file is initialized.
-            </para>
+          <para>
+            The <literal>NDBCNTR</literal> kernel block checks the
+            states of all existing nodes. The master node is chosen, and
+            the cluster schema file is initialized.
+          </para>
 
-          </formalpara>
-        </listitem>
+        </formalpara>
+      </listitem>
 
-        <listitem>
-          <formalpara>
+      <listitem>
+        <formalpara>
 
-            <title>Phase 3</title>
+          <title>Phase 3</title>
 
-            <para>
-              The <literal>DBLQH</literal> and <literal>DBTC</literal>
-              kernel blocks set up communications between them. The
-              startup type is determined; if this is a restart, the
-              <literal>DBDIH</literal> block obtains permission to
-              perform the restart.
-            </para>
+          <para>
+            The <literal>DBLQH</literal> and <literal>DBTC</literal>
+            kernel blocks set up communications between them. The
+            startup type is determined; if this is a restart, the
+            <literal>DBDIH</literal> block obtains permission to perform
+            the restart.
+          </para>
 
-          </formalpara>
-        </listitem>
+        </formalpara>
+      </listitem>
 
-        <listitem>
-          <formalpara>
+      <listitem>
+        <formalpara>
 
-            <title>Phase 4</title>
+          <title>Phase 4</title>
 
+          <para>
+            For an initial start or initial node restart, the redo log
+            files are created. The number of these files is equal to
+            <literal>NoOfFragmentLogFiles</literal>.
+          </para>
+
+        </formalpara>
+
+        <para>
+          For a system restart:
+        </para>
+
+        <itemizedlist>
+
+          <listitem>
             <para>
-              For an initial start or initial node restart, the redo log
-              files are created. The number of these files is equal to
-              <literal>NoOfFragmentLogFiles</literal>.
+              Read schema or schemas.
             </para>
+          </listitem>
 
-          </formalpara>
+          <listitem>
+            <para>
+              Read data from the local checkpoint.
+            </para>
+          </listitem>
 
-          <para>
-            For a system restart:
-          </para>
+          <listitem>
+            <para>
+              Apply all redo information until the latest restorable
+              global checkpoint has been reached.
+            </para>
+          </listitem>
 
-          <itemizedlist>
+        </itemizedlist>
 
-            <listitem>
-              <para>
-                Read schema or schemas.
-              </para>
-            </listitem>
+        <para>
+          For a node restart, find the tail of the redo log.
+        </para>
+      </listitem>
 
-            <listitem>
-              <para>
-                Read data from the local checkpoint.
-              </para>
-            </listitem>
+      <listitem>
+        <formalpara>
 
-            <listitem>
-              <para>
-                Apply all redo information until the latest restorable
-                global checkpoint has been reached.
-              </para>
-            </listitem>
+          <title>Phase 5</title>
 
-          </itemizedlist>
-
           <para>
-            For a node restart, find the tail of the redo log.
+            Most of the database-related portion of a data node start is
+            performed during this phase. For an initial start or system
+            restart, a local checkpoint is executed, followed by a
+            global checkpoint. Periodic checks of memory usage begin
+            during this phase, and any required node takeovers are
+            performed.
           </para>
-        </listitem>
 
-        <listitem>
-          <formalpara>
+        </formalpara>
+      </listitem>
 
-            <title>Phase 5</title>
+      <listitem>
+        <formalpara>
 
-            <para>
-              Most of the database-related portion of a data node start
-              is performed during this phase. For an initial start or
-              system restart, a local checkpoint is executed, followed
-              by a global checkpoint. Periodic checks of memory usage
-              begin during this phase, and any required node takeovers
-              are performed.
-            </para>
+          <title>Phase 6</title>
 
-          </formalpara>
-        </listitem>
+          <para>
+            In this phase, node groups are defined and set up.
+          </para>
 
-        <listitem>
-          <formalpara>
+        </formalpara>
+      </listitem>
 
-            <title>Phase 6</title>
+      <listitem>
+        <formalpara>
 
-            <para>
-              In this phase, node groups are defined and set up.
-            </para>
+          <title>Phase 7</title>
 
-          </formalpara>
-        </listitem>
+          <para>
+            The arbitrator node is selected and begins to function. The
+            next backup ID is set, as is the backup disk write speed.
+            Nodes reaching this start phase are marked as
+            <literal>Started</literal>. It is now possible for API nodes
+            (including SQL nodes) to connect to the cluster. connect.
+          </para>
 
-        <listitem>
-          <formalpara>
+        </formalpara>
+      </listitem>
 
-            <title>Phase 7</title>
+      <listitem>
+        <formalpara>
 
-            <para>
-              The arbitrator node is selected and begins to function.
-              The next backup ID is set, as is the backup disk write
-              speed. Nodes reaching this start phase are marked as
-              <literal>Started</literal>. It is now possible for API
-              nodes (including SQL nodes) to connect to the cluster.
-              connect.
-            </para>
+          <title>Phase 8</title>
 
-          </formalpara>
-        </listitem>
+          <para>
+            If this is a system restart, all indexes are rebuilt (by
+            <literal>DBDIH</literal>).
+          </para>
 
-        <listitem>
-          <formalpara>
+        </formalpara>
+      </listitem>
 
-            <title>Phase 8</title>
+      <listitem>
+        <formalpara>
 
-            <para>
-              If this is a system restart, all indexes are rebuilt (by
-              <literal>DBDIH</literal>).
-            </para>
+          <title>Phase 9</title>
 
-          </formalpara>
-        </listitem>
+          <para>
+            The node internal startup variables are reset.
+          </para>
 
-        <listitem>
-          <formalpara>
+        </formalpara>
+      </listitem>
 
-            <title>Phase 9</title>
+      <listitem>
+        <formalpara>
 
-            <para>
-              The node internal startup variables are reset.
-            </para>
+          <title>Phase 100 (<emphasis>OBSOLETE</emphasis>)</title>
 
-          </formalpara>
-        </listitem>
+          <para>
+            Formerly, it was at this point during a node restart or
+            initial node restart that API nodes could connect to the
+            node and begin to receive events. Currently, this phase is
+            empty.
+          </para>
 
-        <listitem>
-          <formalpara>
+        </formalpara>
+      </listitem>
 
-            <title>Phase 100 (<emphasis>OBSOLETE</emphasis>)</title>
+      <listitem>
+        <formalpara>
 
-            <para>
-              Formerly, it was at this point during a node restart or
-              initial node restart that API nodes could connect to the
-              node and begin to receive events. Currently, this phase is
-              empty.
-            </para>
+          <title>Phase 101</title>
 
-          </formalpara>
-        </listitem>
+          <para>
+            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. This phase is
+            also referred to as <firstterm><literal>SUMA</literal>
+            handover phase</firstterm>.
+          </para>
 
-        <listitem>
-          <formalpara>
+        </formalpara>
+      </listitem>
 
-            <title>Phase 101</title>
+    </itemizedlist>
 
-            <para>
-              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. This phase
-              is also referred to as <firstterm><literal>SUMA</literal>
-              handover phase</firstterm>.
-            </para>
-
-          </formalpara>
-        </listitem>
-
-      </itemizedlist>
-    </para>
-
     <para>
       After this process is completed for an initial start or system
       restart, transaction handling is enabled. For a node restart or

@@ -1370,12 +1367,14 @@
           <para>
             If <literal>NOWAIT</literal> is specified, the management
             client displays a prompt immediately, as seen here:
+          </para>
 
 <programlisting>
 ndb_mgm&gt; <userinput>START BACKUP NOWAIT</userinput>
 ndb_mgm&gt;
 </programlisting>
 
+          <para>
             In this case, the management client can be used even while
             it prints progress information from the backup process.
           </para>

@@ -1395,6 +1394,7 @@
             With <literal>WAIT STARTED</literal> the management client
             waits until the backup has started before returning control
             to the user, as shown here:
+          </para>
 
 <programlisting>
 ndb_mgm&gt; <userinput>START BACKUP WAIT STARTED</userinput>

@@ -1402,7 +1402,6 @@
 Node 2: Backup 3 started from node 1
 ndb_mgm&gt;
 </programlisting>
-          </para>
         </listitem>
 
         <listitem>

@@ -1488,21 +1487,23 @@
       <para>
         The procedure for creating a backup consists of the following
         steps:
+      </para>
 
-        <orderedlist>
+      <orderedlist>
 
-          <listitem>
-            <para>
-              Start the management client (<command>ndb_mgm</command>),
-              if it not running already.
-            </para>
-          </listitem>
+        <listitem>
+          <para>
+            Start the management client (<command>ndb_mgm</command>), if
+            it not running already.
+          </para>
+        </listitem>
 
-          <listitem>
-            <para>
-              Execute the <userinput>START BACKUP</userinput> command.
-              This produces several lines of output indicating the
-              progress of the backup, as shown here:
+        <listitem>
+          <para>
+            Execute the <userinput>START BACKUP</userinput> command.
+            This produces several lines of output indicating the
+            progress of the backup, as shown here:
+          </para>
 
 <programlisting>
 ndb_mgm&gt; <userinput>START BACKUP</userinput>

@@ -1514,62 +1515,66 @@
  Data: 453648 bytes Log: 0 bytes
 ndb_mgm&gt;
 </programlisting>
-            </para>
-          </listitem>
+        </listitem>
 
-          <listitem>
-            <indexterm>
-              <primary>native backup and restore</primary>
-              <secondary>backup identifiers</secondary>
-            </indexterm>
+        <listitem>
+          <indexterm>
+            <primary>native backup and restore</primary>
+            <secondary>backup identifiers</secondary>
+          </indexterm>
 
-            <indexterm>
-              <primary>backup identifiers</primary>
-              <secondary>native backup and restore</secondary>
-            </indexterm>
+          <indexterm>
+            <primary>backup identifiers</primary>
+            <secondary>native backup and restore</secondary>
+          </indexterm>
 
-            <para>
-              When the backup has started the management client displays
-              this message:
+          <para>
+            When the backup has started the management client displays
+            this message:
+          </para>
 
 <programlisting>
 Backup <replaceable>backup_id</replaceable> started from node <replaceable>node_id</replaceable>
 </programlisting>
 
-              <replaceable>backup_id</replaceable> is the unique
-              identifier for this particular backup. This identifier is
-              saved in the cluster log, if it has not been configured
-              otherwise. <replaceable>node_id</replaceable> is the
-              identifier of the management server that is coordinating
-              the backup with the data nodes. At this point in the
-              backup process the cluster has received and processed the
-              backup request. It does not mean that the backup has
-              finished. An example of this statement is shown here:
+          <para>
+            <replaceable>backup_id</replaceable> is the unique
+            identifier for this particular backup. This identifier is
+            saved in the cluster log, if it has not been configured
+            otherwise. <replaceable>node_id</replaceable> is the
+            identifier of the management server that is coordinating the
+            backup with the data nodes. At this point in the backup
+            process the cluster has received and processed the backup
+            request. It does not mean that the backup has finished. An
+            example of this statement is shown here:
+          </para>
 
 <programlisting>	
 Node 2: Backup 1 started from node 1
 </programlisting>
-            </para>
-          </listitem>
+        </listitem>
 
-          <listitem>
-            <para>
-              The management client indicates with a message like this
-              one that the backup has started:
+        <listitem>
+          <para>
+            The management client indicates with a message like this one
+            that the backup has started:
+          </para>
 
 <programlisting>
 Backup <replaceable>backup_id</replaceable> started from node <replaceable>node_id</replaceable> completed
 </programlisting>
 
-              As is the case for the notification that the backup has
-              started, <replaceable>backup_id</replaceable> is the
-              unique identifier for this particular backup, and
-              <replaceable>node_id</replaceable> is the node ID of the
-              management server that is coordinating the backup with the
-              data nodes. This output is accompanied by additional
-              information including relevant global checkpoints, the
-              number of records backed up, and the size of the data, as
-              shown here:
+          <para>
+            As is the case for the notification that the backup has
+            started, <replaceable>backup_id</replaceable> is the unique
+            identifier for this particular backup, and
+            <replaceable>node_id</replaceable> is the node ID of the
+            management server that is coordinating the backup with the
+            data nodes. This output is accompanied by additional
+            information including relevant global checkpoints, the
+            number of records backed up, and the size of the data, as
+            shown here:
+          </para>
 
 <programlisting>	
 Node 2: Backup 1 started from node 1 completed

@@ -1577,11 +1582,9 @@
  #Records: 7362 #LogRecords: 0
  Data: 453648 bytes Log: 0 bytes
 </programlisting>
-            </para>
-          </listitem>
+        </listitem>
 
-        </orderedlist>
-      </para>
+      </orderedlist>
 
       <para>
         It is also possible to perform a backup from the system shell by

@@ -3205,258 +3208,262 @@
         <para>
           Each transaction has one transaction coordinator, which is
           chosen by one of the following methods:
+        </para>
 
-          <itemizedlist>
+      </formalpara>
 
-            <listitem>
-              <para>
-                In a round-robin fashion
-              </para>
-            </listitem>
+      <itemizedlist>
 
-            <listitem>
-              <para>
-                By communication proximity
-              </para>
-            </listitem>
+        <listitem>
+          <para>
+            In a round-robin fashion
+          </para>
+        </listitem>
 
-            <listitem>
-              <para>
-                (<emphasis>Beginning with MySQL Cluster NDB
-                6.3.4</emphasis>:) By supplying a data placement hint
-                when the transaction is started
-              </para>
-            </listitem>
+        <listitem>
+          <para>
+            By communication proximity
+          </para>
+        </listitem>
 
-          </itemizedlist>
+        <listitem>
+          <para>
+            (<emphasis>Beginning with MySQL Cluster NDB
+            6.3.4</emphasis>:) By supplying a data placement hint when
+            the transaction is started
+          </para>
+        </listitem>
 
-          <note>
-            <para>
-              You can determine which TC selection method is used for
-              transactions started from a given SQL node using the
-              <literal role="sysvar">ndb_optimized_node_selection</literal>
-              system variable.
-            </para>
-          </note>
+      </itemizedlist>
 
-          All operations within the same transaction use the same
-          transaction coordinator, which reports the following
-          statistics:
+      <note>
+        <para>
+          You can determine which TC selection method is used for
+          transactions started from a given SQL node using the
+          <literal role="sysvar">ndb_optimized_node_selection</literal>
+          system variable.
+        </para>
+      </note>
 
-          <itemizedlist>
+      <para>
+        All operations within the same transaction use the same
+        transaction coordinator, which reports the following statistics:
+      </para>
 
-            <listitem>
-              <formalpara>
+      <itemizedlist>
 
-                <title><literal>Trans count</literal></title>
+        <listitem>
+          <formalpara>
 
-                <para>
-                  This is the number transactions started in the last
-                  interval using this TC as the transaction coordinator.
-                  Any of these transactions may have committed, have
-                  been aborted, or remain uncommitted at the end of the
-                  reporting interval.
+            <title><literal>Trans count</literal></title>
 
-                  <note>
-                    <para>
-                      Transactions do not migrate between TCs.
-                    </para>
-                  </note>
-                </para>
+            <para>
+              This is the number transactions started in the last
+              interval using this TC as the transaction coordinator. Any
+              of these transactions may have committed, have been
+              aborted, or remain uncommitted at the end of the reporting
+              interval.
+            </para>
 
-              </formalpara>
-            </listitem>
+          </formalpara>
 
-            <listitem>
-              <formalpara>
+          <note>
+            <para>
+              Transactions do not migrate between TCs.
+            </para>
+          </note>
+        </listitem>
 
-                <title><literal>Commit count</literal></title>
+        <listitem>
+          <formalpara>
 
-                <para>
-                  This is the number of transactions using this TC as
-                  the transaction coordinator that were committed in the
-                  last reporting interval. Because some transactions
-                  committed in this reporting interval may have started
-                  in a previous reporting interval, it is possible for
-                  <literal>Commit count</literal> to be greater than
-                  <literal>Trans count</literal>.
-                </para>
+            <title><literal>Commit count</literal></title>
 
-              </formalpara>
-            </listitem>
+            <para>
+              This is the number of transactions using this TC as the
+              transaction coordinator that were committed in the last
+              reporting interval. Because some transactions committed in
+              this reporting interval may have started in a previous
+              reporting interval, it is possible for <literal>Commit
+              count</literal> to be greater than <literal>Trans
+              count</literal>.
+            </para>
 
-            <listitem>
-              <formalpara>
+          </formalpara>
+        </listitem>
 
-                <title><literal>Read count</literal></title>
+        <listitem>
+          <formalpara>
 
-                <para>
-                  This is the number of primary key read operations
-                  using this TC as the transaction coordinator that were
-                  started in the last reporting interval, including
-                  simple reads. This count also includes reads performed
-                  as part of unique index operations. A unique index
-                  read operation generates 2 primary key read
-                  operations&mdash;1 for the hidden unique index table,
-                  and 1 for the table on which the read takes place.
-                </para>
+            <title><literal>Read count</literal></title>
 
-              </formalpara>
-            </listitem>
+            <para>
+              This is the number of primary key read operations using
+              this TC as the transaction coordinator that were started
+              in the last reporting interval, including simple reads.
+              This count also includes reads performed as part of unique
+              index operations. A unique index read operation generates
+              2 primary key read operations&mdash;1 for the hidden
+              unique index table, and 1 for the table on which the read
+              takes place.
+            </para>
 
-            <listitem>
-              <formalpara>
+          </formalpara>
+        </listitem>
 
-                <title><literal>Simple read count</literal></title>
+        <listitem>
+          <formalpara>
 
-                <para>
-                  This is the number of simple read operations using
-                  this TC as the transaction coordinator that were
-                  started in the last reporting interval. This is a
-                  subset of <literal>Read count</literal>. Because the
-                  value of <literal>Simple read count</literal> is
-                  incremented at a different point in time from
-                  <literal>Read count</literal>, it can lag behind
-                  <literal>Read count</literal> slightly, so it is
-                  conceivable that <literal>Simple read count</literal>
-                  is not equal to <literal>Read count</literal> for a
-                  given reporting interval, even if all reads made
-                  during that time were in fact simple reads.
-                </para>
+            <title><literal>Simple read count</literal></title>
 
-              </formalpara>
-            </listitem>
+            <para>
+              This is the number of simple read operations using this TC
+              as the transaction coordinator that were started in the
+              last reporting interval. This is a subset of <literal>Read
+              count</literal>. Because the value of <literal>Simple read
+              count</literal> is incremented at a different point in
+              time from <literal>Read count</literal>, it can lag behind
+              <literal>Read count</literal> slightly, so it is
+              conceivable that <literal>Simple read count</literal> is
+              not equal to <literal>Read count</literal> for a given
+              reporting interval, even if all reads made during that
+              time were in fact simple reads.
+            </para>
 
-            <listitem>
-              <formalpara>
+          </formalpara>
+        </listitem>
 
-                <title><literal>Write count</literal></title>
+        <listitem>
+          <formalpara>
 
-                <para>
-                  This is the number of primary key write operations
-                  using this TC as the transaction coordinator that were
-                  started in the last reporting interval. This includes
-                  all inserts, updates, writes and deletes, as well as
-                  writes performed as part of unique index operations.
+            <title><literal>Write count</literal></title>
 
-                  <note>
-                    <para>
-                      A unique index update operation can generate
-                      multiple PK read and write operations on the index
-                      table and on the base table.
-                    </para>
-                  </note>
-                </para>
+            <para>
+              This is the number of primary key write operations using
+              this TC as the transaction coordinator that were started
+              in the last reporting interval. This includes all inserts,
+              updates, writes and deletes, as well as writes performed
+              as part of unique index operations.
+            </para>
 
-              </formalpara>
-            </listitem>
+          </formalpara>
 
-            <listitem>
-              <formalpara>
+          <note>
+            <para>
+              A unique index update operation can generate multiple PK
+              read and write operations on the index table and on the
+              base table.
+            </para>
+          </note>
+        </listitem>
 
-                <title><literal>AttrInfoCount</literal></title>
+        <listitem>
+          <formalpara>
 
-                <para>
-                  This is the number of 32-bit data words received in
-                  the last reporting interval for primary key operations
-                  using this TC as the transaction coordinator. For
-                  reads, this is proportional to the number of columns
-                  requested. For inserts and updates, this is
-                  proportional to the number of columns written, and the
-                  size of their data. For delete operations, this is
-                  usually zero. Unique index operations generate
-                  multiple PK operations and so increase this count.
-                  However, data words sent to describe the PK operation
-                  itself, and the key information sent, are
-                  <emphasis>not</emphasis> counted here. Attribute
-                  information sent to describe columns to read for
-                  scans, or to describe ScanFilters, is also not counted
-                  in <literal>AttrInfoCount</literal>.
-                </para>
+            <title><literal>AttrInfoCount</literal></title>
 
-              </formalpara>
-            </listitem>
+            <para>
+              This is the number of 32-bit data words received in the
+              last reporting interval for primary key operations using
+              this TC as the transaction coordinator. For reads, this is
+              proportional to the number of columns requested. For
+              inserts and updates, this is proportional to the number of
+              columns written, and the size of their data. For delete
+              operations, this is usually zero.
+            </para>
 
-            <listitem>
-              <formalpara>
+          </formalpara>
 
-                <title><literal>Concurrent Operations</literal></title>
+          <para>
+            Unique index operations generate multiple PK operations and
+            so increase this count. However, data words sent to describe
+            the PK operation itself, and the key information sent, are
+            <emphasis>not</emphasis> counted here. Attribute information
+            sent to describe columns to read for scans, or to describe
+            ScanFilters, is also not counted in
+            <literal>AttrInfoCount</literal>.
+          </para>
+        </listitem>
 
-                <para>
-                  This is the number of primary key or scan operations
-                  using this TC as the transaction coordinator that were
-                  started during the last reporting interval but that
-                  were not completed. Operations increment this counter
-                  when they are started and decrement it when they are
-                  completed; this occurs after the transaction commits.
-                  Dirty reads and writes&mdash;as well as failed
-                  operations&mdash;decrement this counter. The maximum
-                  value that <literal>Concurrent Operations</literal>
-                  can have is the maximum number of operations that a TC
-                  block can support; currently, this is <literal>(2 *
-                  MaxNoOfConcurrentOperations) + 16 +
-                  MaxNoOfConcurrentTransactions</literal>. (For more
-                  information about these configuration parameters, see
-                  the <citetitle>Transaction Parameters</citetitle>
-                  section of
-                  <xref linkend="mysql-cluster-ndbd-definition"/>.)
-                </para>
+        <listitem>
+          <formalpara>
 
-              </formalpara>
-            </listitem>
+            <title><literal>Concurrent Operations</literal></title>
 
-            <listitem>
-              <formalpara>
+            <para>
+              This is the number of primary key or scan operations using
+              this TC as the transaction coordinator that were started
+              during the last reporting interval but that were not
+              completed. Operations increment this counter when they are
+              started and decrement it when they are completed; this
+              occurs after the transaction commits. Dirty reads and
+              writes&mdash;as well as failed operations&mdash;decrement
+              this counter.
+            </para>
 
-                <title><literal>Abort count</literal></title>
+          </formalpara>
 
-                <para>
-                  This is the number of transactions using this TC as
-                  the transaction coordinator that were aborted during
-                  the last reporting interval. Because some transactions
-                  that were aborted in the last reporting interval may
-                  have started in a previous reporting interval,
-                  <literal>Abort count</literal> can sometimes be
-                  greater than <literal>Trans count</literal>.
-                </para>
+          <para>
+            The maximum value that <literal>Concurrent
+            Operations</literal> can have is the maximum number of
+            operations that a TC block can support; currently, this is
+            <literal>(2 * MaxNoOfConcurrentOperations) + 16 +
+            MaxNoOfConcurrentTransactions</literal>. (For more
+            information about these configuration parameters, see the
+            <citetitle>Transaction Parameters</citetitle> section of
+            <xref linkend="mysql-cluster-ndbd-definition"/>.)
+          </para>
+        </listitem>
 
-              </formalpara>
-            </listitem>
+        <listitem>
+          <formalpara>
 
-            <listitem>
-              <formalpara>
+            <title><literal>Abort count</literal></title>
 
-                <title><literal>Scans</literal></title>
+            <para>
+              This is the number of transactions using this TC as the
+              transaction coordinator that were aborted during the last
+              reporting interval. Because some transactions that were
+              aborted in the last reporting interval may have started in
+              a previous reporting interval, <literal>Abort
+              count</literal> can sometimes be greater than
+              <literal>Trans count</literal>.
+            </para>
 
-                <para>
-                  This is the number of table scans using this TC as the
-                  transaction coordinator that were started during the
-                  last reporting interval. This does not include range
-                  scans (that is, ordered index scans).
-                </para>
+          </formalpara>
+        </listitem>
 
-              </formalpara>
-            </listitem>
+        <listitem>
+          <formalpara>
 
-            <listitem>
-              <formalpara>
+            <title><literal>Scans</literal></title>
 
-                <title><literal>Range scans</literal></title>
+            <para>
+              This is the number of table scans using this TC as the
+              transaction coordinator that were started during the last
+              reporting interval. This does not include range scans
+              (that is, ordered index scans).
+            </para>
 
-                <para>
-                  This is the number of ordered index scans using this
-                  TC as the transaction coordinator that were started in
-                  the last reporting interval.
-                </para>
+          </formalpara>
+        </listitem>
 
-              </formalpara>
-            </listitem>
+        <listitem>
+          <formalpara>
 
-          </itemizedlist>
-        </para>
+            <title><literal>Range scans</literal></title>
 
-      </formalpara>
+            <para>
+              This is the number of ordered index scans using this TC as
+              the transaction coordinator that were started in the last
+              reporting interval.
+            </para>
 
+          </formalpara>
+        </listitem>
+
+      </itemizedlist>
+
       <formalpara>
 
         <title>Local query handler statistics (<literal>Operations</literal>)</title>

@@ -3465,155 +3472,160 @@
           There is 1 cluster event per local query handler block (that
           is, 1 per data node process). Operations are recorded in the
           LQH where the data they are operating on resides.
+        </para>
 
-          <remark role="note">
-            [js] Commented out the following sentence because we
-            currently only support 1 type of partitioning on NDB tables.
-          </remark>
+      </formalpara>
 
+      <para>
+        <remark role="note">
+          [js] Commented out the following because we currently only
+          support 1 type of partitioning on NDB tables.
+        </remark>
+
 <!--
-          Data placement depends on the partitioning or fragmentation
-          scheme used when the table was defined.
+          Data placement depends on the partitioning or
+          fragmentation scheme used when the table was defined.
 -->
+      </para>
 
-          <note>
-            <para>
-              A single transaction may operate on data stored in
-              multiple LQH blocks.
-            </para>
-          </note>
-
-          The <literal>Operations</literal> statistic provides the
-          number of local operations performed by this LQH block in the
-          last reporting interval, and includes all types of read and
-          write operations (insert, update, write, and delete
-          operations). This also includes operations used to replicate
-          writes&mdash;for example, in a 2-replica cluster, the write to
-          the primary replica is recorded in the primary LQH, and the
-          write to the backup will be recorded in the backup LQH. Unique
-          key operations may result in multiple local operations;
-          however, this does <emphasis>not</emphasis> include local
-          operations generated as a result of a table scan or ordered
-          index scan, which are not counted.
+      <note>
+        <para>
+          A single transaction may operate on data stored in multiple
+          LQH blocks.
         </para>
+      </note>
 
-      </formalpara>
+      <para>
+        The <literal>Operations</literal> statistic provides the number
+        of local operations performed by this LQH block in the last
+        reporting interval, and includes all types of read and write
+        operations (insert, update, write, and delete operations). This
+        also includes operations used to replicate writes. For example,
+        in a 2-replica cluster, the write to the primary replica is
+        recorded in the primary LQH, and the write to the backup will be
+        recorded in the backup LQH. Unique key operations may result in
+        multiple local operations; however, this does
+        <emphasis>not</emphasis> include local operations generated as a
+        result of a table scan or ordered index scan, which are not
+        counted.
+      </para>
 
       <formalpara>
 
         <title>Process scheduler statistics</title>
 
         <para>
+          <indexterm>
+            <primary>MySQL Cluster</primary>
+            <secondary>ndbd process</secondary>
+          </indexterm>
+
           In addition to the statistics reported by the transaction
           coordinator and local query handler, each
           <command>ndbd</command> process has a scheduler which also
           provides useful metrics relating to the performance of a MySQL
           Cluster. This scheduler runs in an infinite loop; during each
           loop the scheduler performs the following tasks:
+        </para>
 
-          <indexterm>
-            <primary>MySQL Cluster</primary>
-            <secondary>ndbd process</secondary>
-          </indexterm>
+      </formalpara>
 
-          <orderedlist>
+      <orderedlist>
 
-            <listitem>
-              <para>
-                Read any incoming messages from sockets into a job
-                buffer.
-              </para>
-            </listitem>
+        <listitem>
+          <para>
+            Read any incoming messages from sockets into a job buffer.
+          </para>
+        </listitem>
 
-            <listitem>
-              <para>
-                Check whether there are any timed messages to be
-                executed; if so, put these into the job buffer as well.
-              </para>
-            </listitem>
+        <listitem>
+          <para>
+            Check whether there are any timed messages to be executed;
+            if so, put these into the job buffer as well.
+          </para>
+        </listitem>
 
-            <listitem>
-              <para>
-                Execute (in a loop) any messages in the job buffer.
-              </para>
-            </listitem>
+        <listitem>
+          <para>
+            Execute (in a loop) any messages in the job buffer.
+          </para>
+        </listitem>
 
-            <listitem>
-              <para>
-                Send any distributed messages that were generated by
-                executing the messages in the job buffer.
-              </para>
-            </listitem>
+        <listitem>
+          <para>
+            Send any distributed messages that were generated by
+            executing the messages in the job buffer.
+          </para>
+        </listitem>
 
-            <listitem>
-              <para>
-                Wait for any new incoming messages.
-              </para>
-            </listitem>
+        <listitem>
+          <para>
+            Wait for any new incoming messages.
+          </para>
+        </listitem>
 
-          </orderedlist>
+      </orderedlist>
 
-          Process scheduler statistics include the following:
+      <para>
+        Process scheduler statistics include the following:
+      </para>
 
-          <itemizedlist>
+      <itemizedlist>
 
-            <listitem>
-              <formalpara>
+        <listitem>
+          <formalpara>
 
-                <title><literal>Mean Loop Counter</literal></title>
+            <title><literal>Mean Loop Counter</literal></title>
 
-                <para>
-                  This is the number of loops executed in the third step
-                  from the preceding list. This statistic increases in
-                  size as the utilization of the TCP/IP buffer improves.
-                  You can use this to monitor changes in performance as
-                  you add new data node processes.
-                </para>
+            <para>
+              This is the number of loops executed in the third step
+              from the preceding list. This statistic increases in size
+              as the utilization of the TCP/IP buffer improves. You can
+              use this to monitor changes in performance as you add new
+              data node processes.
+            </para>
 
-              </formalpara>
-            </listitem>
+          </formalpara>
+        </listitem>
 
-            <listitem>
-              <formalpara>
+        <listitem>
+          <formalpara>
 
-                <title><literal>Mean send size</literal> and <literal>Mean receive
-                  size</literal></title>
+            <title><literal>Mean send size</literal> and <literal>Mean receive
+              size</literal></title>
 
-                <para>
-                  These statistics enable you to gauge the efficiency
-                  of, respectively writes and reads between nodes. The
-                  values are given in bytes. Higher values mean a lower
-                  cost per byte sent or received; the maximum value is
-                  64K.
-                </para>
+            <para>
+              These statistics enable you to gauge the efficiency of,
+              respectively writes and reads between nodes. The values
+              are given in bytes. Higher values mean a lower cost per
+              byte sent or received; the maximum value is 64K.
+            </para>
 
-              </formalpara>
-            </listitem>
+          </formalpara>
+        </listitem>
 
-          </itemizedlist>
-        </para>
+      </itemizedlist>
 
-      </formalpara>
-
       <para>
         To cause all cluster log statistics to be logged, you can use
         the following command in the <literal role="se">NDB</literal>
         management client:
+      </para>
 
 <programlisting>
 ndb_mgm&gt; <userinput>ALL CLUSTERLOG STATISTICS=15</userinput>
 </programlisting>
 
-        <note>
-          <para>
-            Setting the threshold for <literal>STATISTICS</literal> to
-            15 causes the cluster log to become very verbose, and to
-            grow quite rapidly in size, in direct proportion to the
-            number of cluster nodes and the amount of activity in the
-            MySQL Cluster.
-          </para>
-        </note>
+      <note>
+        <para>
+          Setting the threshold for <literal>STATISTICS</literal> to 15
+          causes the cluster log to become very verbose, and to grow
+          quite rapidly in size, in direct proportion to the number of
+          cluster nodes and the amount of activity in the MySQL Cluster.
+        </para>
+      </note>
 
+      <para>
         For more information about MySQL Cluster management client
         commands relating to logging and reporting, see
         <xref linkend="mysql-cluster-logging-management-commands"/>.

@@ -7520,7 +7532,6 @@
     </section>
 
 <!--
-    
 
     <section id="mysql-cluster-log-startup-messages">
 

@@ -7529,6 +7540,7 @@
     <para>
       Possible startup messages with descriptions are provided in the
       following list:
+    </para>
 
       <itemizedlist>
 

@@ -7601,9 +7613,9 @@
         </listitem>
 
       </itemizedlist>
-    </para>
 
   </section>
+
 -->
 
     <section id="mysql-cluster-ndb-transporter-errors">

@@ -8060,6 +8072,7 @@
           scripts. For example, the following query shows whether the
           server was built with <literal role="se">NDB</literal> support
           and, if so, whether it is enabled:
+        </para>
 
 <programlisting>
 mysql&gt; <userinput>SELECT SUPPORT FROM INFORMATION_SCHEMA.ENGINES</userinput>

@@ -8070,7 +8083,6 @@
 | ENABLED |
 +---------+
 </programlisting>
-        </para>
 
         <para>
           See <xref linkend="engines-table"/>, for more information.

@@ -8135,6 +8147,7 @@
           <literal role="ndb_mgm_cmd">SHOW</literal> command described
           in the previous item, and provides almost identical output, as
           shown here:
+        </para>
 
 <programlisting>
 mysql&gt; <userinput>SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES</userinput>

@@ -8157,9 +8170,11 @@
 +-------------------------------------+----------------+
 </programlisting>
 
+        <para>
           Unlike the case with the
           <literal role="ndb_mgm_cmd">SHOW</literal> command, it is
           possible to select individual columns. For example:
+        </para>
 
 <programlisting>
 mysql&gt; <userinput>SELECT VARIABLE_VALUE </userinput>

@@ -8171,7 +8186,6 @@
 | ON             |
 +----------------+
 </programlisting>
-        </para>
 
         <para>
           See <xref linkend="variables-table"/>, and

@@ -8196,6 +8210,7 @@
           the MySQL server's cluster node ID, the host name and port for
           the cluster management server to which it is connected, and
           the number of data nodes in the cluster, as shown here:
+        </para>
 
 <programlisting>
 mysql&gt; <userinput>SHOW STATUS LIKE 'NDB%';</userinput>

@@ -8209,9 +8224,11 @@
 +--------------------------+---------------+
 </programlisting>
 
+        <para>
           If the MySQL server was built with clustering support, but it
           is not connected to a cluster, all rows in the output of this
           statement contain a zero or an empty string:
+        </para>
 
 <programlisting>
 mysql&gt; <userinput>SHOW STATUS LIKE 'NDB%';</userinput>

@@ -8224,7 +8241,6 @@
 | Ndb_number_of_data_nodes | 0     |
 +--------------------------+-------+
 </programlisting>
-        </para>
 
         <para>
           See also <xref linkend="show-status"/>.

@@ -8956,13 +8972,6 @@
         file.
       </para>
 
-      <remark role="note">
-        [js] Jonas says the following discrepancy is to be expected. I
-        say it's a bug (cf. BUG#50926). Following commented out until
-        this is resolved.
-      </remark>
-
-<!--
       <para>
         Suppose that the cluster has 2 data nodes having node IDs
         <literal>1</literal> and <literal>2</literal>, and the

@@ -8982,14 +8991,14 @@
 <programlisting>
 mysql&gt; <userinput>SELECT node_id, memory_type, total</userinput> 
      &gt; <userinput>FROM ndbinfo.memoryusage;</userinput>
-+&ddash;&ddash;&ddash;&ddash;-+&ddash;&ddash;&ddash;&ddash;&ddash;&ddash;&ddash;+&ddash;&ddash;&ddash;&ddash;&ddash;-+
++---------+--------------+-----------+
 | node_id | memory_type  | total     |
-+&ddash;&ddash;&ddash;&ddash;-+&ddash;&ddash;&ddash;&ddash;&ddash;&ddash;&ddash;+&ddash;&ddash;&ddash;&ddash;&ddash;-+
++---------+--------------+-----------+
 |       1 | Data memory  | 104857600 |
 |       1 | Index memory | 105119744 |
 |       2 | Data memory  | 104857600 |
 |       2 | Index memory | 105119744 |
-+&ddash;&ddash;&ddash;&ddash;-+&ddash;&ddash;&ddash;&ddash;&ddash;&ddash;&ddash;+&ddash;&ddash;&ddash;&ddash;&ddash;-+
++---------+--------------+-----------+
 4 rows in set (0.30 sec)
 </programlisting>
 

@@ -8998,7 +9007,6 @@
         index memory are slightly higher than the value set of
         <literal>IndexMemory</literal> due to internal rounding.
       </para>
--->
 
       <para>
         For the <literal>used_pages</literal> and

@@ -9501,11 +9509,6 @@
 8 rows in set (0.29 sec)
 </programlisting>
 
-      <remark role="todo">
-        [js] Descriptions of (some) individual pools might be useful
-        here.
-      </remark>
-
     </section>
 
     <section id="mysql-cluster-ndbinfo-resources">

@@ -9762,7 +9765,7 @@
     </para>
 
     <para>
-      Topics to be covered in this chapter include the following:
+      Topics covered in this section include the following:
     </para>
 
     <itemizedlist>

@@ -9839,89 +9842,86 @@
       <para>
         In addition, there is no checking of the source IP address for
         either of the following when accessing the cluster:
+      </para>
 
-        <itemizedlist>
+      <itemizedlist>
 
-          <listitem>
-            <para>
-              SQL or API nodes using <quote>free slots</quote> created
-              by empty <literal>[mysqld]</literal> or
-              <literal>[api]</literal> sections in the
-              <filename>config.ini</filename> file
-            </para>
+        <listitem>
+          <para>
+            SQL or API nodes using <quote>free slots</quote> created by
+            empty <literal>[mysqld]</literal> or
+            <literal>[api]</literal> sections in the
+            <filename>config.ini</filename> file
+          </para>
 
+          <para>
+            This means that, if there are any empty
+            <literal>[mysqld]</literal> or <literal>[api]</literal>
+            sections in the <filename>config.ini</filename> file, then
+            any API nodes (including SQL nodes) that know the management
+            server's host name (or IP address) and port can connect to
+            the cluster and access its data without restriction. (See
+            <xref linkend="mysql-cluster-security-mysql-privileges"/>,
+            for more information about this and related issues.)
+          </para>
+
+          <note>
             <para>
-              This means that, if there are any empty
-              <literal>[mysqld]</literal> or <literal>[api]</literal>
-              sections in the <filename>config.ini</filename> file, then
-              any API nodes (including SQL nodes) that know the
-              management server's host name (or IP address) and port can
-              connect to the cluster and access its data without
-              restriction. (See
-              <xref linkend="mysql-cluster-security-mysql-privileges"/>,
-              for more information about this and related issues.)
-            </para>
+              <indexterm>
+                <primary>MySQL Cluster</primary>
+                <secondary>security</secondary>
+                <tertiary>and HostName parameter</tertiary>
+              </indexterm>
 
-            <note>
-              <para>
-                <indexterm>
-                  <primary>MySQL Cluster</primary>
-                  <secondary>security</secondary>
-                  <tertiary>and HostName parameter</tertiary>
-                </indexterm>
+              <indexterm>
+                <primary>MySQL Cluster</primary>
+                <secondary>HostName parameter</secondary>
+                <tertiary>and security</tertiary>
+              </indexterm>
 
-                <indexterm>
-                  <primary>MySQL Cluster</primary>
-                  <secondary>HostName parameter</secondary>
-                  <tertiary>and security</tertiary>
-                </indexterm>
+              <indexterm>
+                <primary>HostName (MySQL Cluster)</primary>
+              </indexterm>
 
-                <indexterm>
-                  <primary>HostName (MySQL Cluster)</primary>
-                </indexterm>
-
-                You can exercise some control over SQL and API node
-                access to the cluster by specifying a
-                <literal>HostName</literal> parameter for all
-                <literal>[mysqld]</literal> and <literal>[api]</literal>
-                sections in the <filename>config.ini</filename> file.
-                However, this also means that, should you wish to
-                connect an API node to the cluster from a previously
-                unused host, you need to add an <literal>[api]</literal>
-                section containing its host name to the
-                <filename>config.ini</filename> file.
-              </para>
-
-              <para>
-                More information is available
-                <link linkend="ndbparam-api-hostname">elsewhere in this
-                chapter</link> about the <literal>HostName</literal>
-                parameter. Also see
-                <xref linkend="mysql-cluster-quick"/>, for configuration
-                examples using <literal>HostName</literal> with API
-                nodes.
-              </para>
-            </note>
-          </listitem>
-
-          <listitem>
-            <para>
-              Any <command>ndb_mgm</command> client
+              You can exercise some control over SQL and API node access
+              to the cluster by specifying a <literal>HostName</literal>
+              parameter for all <literal>[mysqld]</literal> and
+              <literal>[api]</literal> sections in the
+              <filename>config.ini</filename> file. However, this also
+              means that, should you wish to connect an API node to the
+              cluster from a previously unused host, you need to add an
+              <literal>[api]</literal> section containing its host name
+              to the <filename>config.ini</filename> file.
             </para>
 
             <para>
-              This means that any cluster management client that is
-              given the management server's host name (or IP address)
-              and port (if not the standard port) can connect to the
-              cluster and execute any management client command. This
-              includes commands such as <literal>ALL STOP</literal> and
-              <literal>SHUTDOWN</literal>.
+              More information is available
+              <link linkend="ndbparam-api-hostname">elsewhere in this
+              chapter</link> about the <literal>HostName</literal>
+              parameter. Also see <xref linkend="mysql-cluster-quick"/>,
+              for configuration examples using
+              <literal>HostName</literal> with API nodes.
             </para>
-          </listitem>
+          </note>
+        </listitem>
 
-        </itemizedlist>
-      </para>
+        <listitem>
+          <para>
+            Any <command>ndb_mgm</command> client
+          </para>
 
+          <para>
+            This means that any cluster management client that is given
+            the management server's host name (or IP address) and port
+            (if not the standard port) can connect to the cluster and
+            execute any management client command. This includes
+            commands such as <literal>ALL STOP</literal> and
+            <literal>SHUTDOWN</literal>.
+          </para>
+        </listitem>
+
+      </itemizedlist>
+
       <para>
         <indexterm>
           <primary>MySQL Cluster</primary>

@@ -9940,251 +9940,258 @@
         one which isolates connections between Cluster nodes from any
         other network communications. This can be accomplished by any of
         the following methods:
+      </para>
 
-        <orderedlist>
+      <orderedlist>
 
-          <listitem>
-            <para>
-              Keeping Cluster nodes on a network that is physically
-              separate from any public networks. This option is the most
-              dependable; however, it is the most expensive to
-              implement.
-            </para>
+        <listitem>
+          <para>
+            Keeping Cluster nodes on a network that is physically
+            separate from any public networks. This option is the most
+            dependable; however, it is the most expensive to implement.
+          </para>
 
-            <para>
-              We show an example of a MySQL Cluster setup using such a
-              physically segregated network here:
+          <para>
+            We show an example of a MySQL Cluster setup using such a
+            physically segregated network here:
+          </para>
 
-              <mediaobject>
-                <imageobject>
-                  <imagedata contentwidth="550" contentdepth="347"
+          <mediaobject>
+            <imageobject>
+              <imagedata contentwidth="550" contentdepth="347"
                   fileref="../refman-common/images/published/cluster-security-network-1.png" format="PNG"/>
-                </imageobject>
-                <textobject>
-                  <phrase lang="en">MySQL Cluster on a private network
-                  protected with a hardware firewall</phrase>
-                </textobject>
-              </mediaobject>
+            </imageobject>
+            <textobject>
+              <phrase lang="en">MySQL Cluster on a private network
+              protected with a hardware firewall</phrase>
+            </textobject>
+          </mediaobject>
 
-              This setup has two networks, one private (solid box) for
-              the Cluster management servers and data nodes, and one
-              public (dotted box) where the SQL nodes reside. (We show
-              the management and data nodes connected using a gigabit
-              switch since this provides the best performance.) Both
-              networks are protected from the outside by a hardware
-              firewall, sometimes also known as a
-              <firstterm>network-based firewall</firstterm>.
-            </para>
+          <para>
+            This setup has two networks, one private (solid box) for the
+            Cluster management servers and data nodes, and one public
+            (dotted box) where the SQL nodes reside. (We show the
+            management and data nodes connected using a gigabit switch
+            since this provides the best performance.) Both networks are
+            protected from the outside by a hardware firewall, sometimes
+            also known as a <firstterm>network-based
+            firewall</firstterm>.
+          </para>
 
+          <para>
+            This network setup is safest because no packets can reach
+            the cluster's management or data nodes from outside the
+            network&mdash;and none of the cluster's internal
+            communications can reach the outside&mdash;without going
+            through the SQL nodes, as long as the SQL nodes do not
+            permit any packets to be forwarded. This means, of course,
+            that all SQL nodes must be secured against hacking attempts.
+          </para>
+
+          <important>
             <para>
-              This network setup is safest because no packets can reach
-              the cluster's management or data nodes from outside the
-              network&mdash;and none of the cluster's internal
-              communications can reach the outside&mdash;without going
-              through the SQL nodes, as long as the SQL nodes do not
-              permit any packets to be forwarded. This means, of course,
-              that all SQL nodes must be secured against hacking
-              attempts.
+              With regard to potential security vulnerabilities, an SQL
+              node is no different from any other MySQL server. See
+              <xref linkend="security-against-attack"/>, for a
+              description of techniques you can use to secure MySQL
+              servers.
             </para>
+          </important>
+        </listitem>
 
-            <important>
-              <para>
-                With regard to potential security vulnerabilities, an
-                SQL node is no different from any other MySQL server.
-                See <xref linkend="security-against-attack"/>, for a
-                description of techniques you can use to secure MySQL
-                servers.
-              </para>
-            </important>
-          </listitem>
+        <listitem>
+          <para>
+            <indexterm>
+              <primary>MySQL Cluster</primary>
+              <secondary>security</secondary>
+              <tertiary>and firewalls</tertiary>
+            </indexterm>
 
-          <listitem>
-            <para>
-              <indexterm>
-                <primary>MySQL Cluster</primary>
-                <secondary>security</secondary>
-                <tertiary>and firewalls</tertiary>
-              </indexterm>
+            <indexterm>
+              <primary>firewalls (software)</primary>
+              <secondary>and MySQL Cluster</secondary>
+            </indexterm>
 
-              <indexterm>
-                <primary>firewalls (software)</primary>
-                <secondary>and MySQL Cluster</secondary>
-              </indexterm>
+            Using one or more software firewalls (also known as
+            <firstterm>host-based firewalls</firstterm>) to control
+            which packets pass through to the cluster from portions of
+            the network that do not require access to it. In this type
+            of setup, a software firewall must be installed on every
+            host in the cluster which might otherwise be accessible from
+            outside the local network.
+          </para>
 
-              Using one or more software firewalls (also known as
-              <firstterm>host-based firewalls</firstterm>) to control
-              which packets pass through to the cluster from portions of
-              the network that do not require access to it. In this type
-              of setup, a software firewall must be installed on every
-              host in the cluster which might otherwise be accessible
-              from outside the local network.
-            </para>
+          <para>
+            The host-based option is the least expensive to implement,
+            but relies purely on software to provide protection and so
+            is the most difficult to keep secure.
+          </para>
 
-            <para>
-              The host-based option is the least expensive to implement,
-              but relies purely on software to provide protection and so
-              is the most difficult to keep secure.
-            </para>
+          <para>
+            This type of network setup for MySQL Cluster is illustrated
+            here:
+          </para>
 
-            <para>
-              This type of network setup for MySQL Cluster is
-              illustrated here:
+          <mediaobject>
+            <imageobject>
+              <imagedata contentwidth="550" contentdepth="489" fileref="../refman-common/images/published/cluster-security-network-2.png" format="PNG"/>
+            </imageobject>
+            <textobject>
+              <phrase lang="en">MySQL Cluster deployed on a network
+              using software firewalls to create public and private
+              zones</phrase>
+            </textobject>
+          </mediaobject>
 
-              <mediaobject>
-                <imageobject>
-                  <imagedata contentwidth="550" contentdepth="489" fileref="../refman-common/images/published/cluster-security-network-2.png" format="PNG"/>
-                </imageobject>
-                <textobject>
-                  <phrase lang="en">MySQL Cluster deployed on a network
-                  using software firewalls to create public and private
-                  zones</phrase>
-                </textobject>
-              </mediaobject>
+          <para>
+            Using this type of network setup means that there are two
+            zones of MySQL Cluster hosts. Each cluster host must be able
+            to communicate with all of the other machines in the
+            cluster, but only those hosting SQL nodes (dotted box) can
+            be permitted to have any contact with the outside, while
+            those in the zone containing the data nodes and management
+            nodes (solid box) must be isolated from any machines that
+            are not part of the cluster. Applications using the cluster
+            and user of those applications must <emphasis>not</emphasis>
+            be permitted to have direct access to the management and
+            data node hosts.
+          </para>
 
-              Using this type of network setup means that there are two
-              zones of MySQL Cluster hosts. Each cluster host must be
-              able to communicate with all of the other machines in the
-              cluster, but only those hosting SQL nodes (dotted box) can
-              be permitted to have any contact with the outside, while
-              those in the zone containing the data nodes and management
-              nodes (solid box) must be isolated from any machines that
-              are not part of the cluster. Applications using the
-              cluster and user of those applications must
-              <emphasis>not</emphasis> be permitted to have direct
-              access to the management and data node hosts.
-            </para>
+          <para>
+            To accomplish this, you must set up software firewalls that
+            limit the traffic to the type or types shown in the
+            following table, according to the type of node that is
+            running on each cluster host computer:
+          </para>
 
-            <para>
-              To accomplish this, you must set up software firewalls
-              that limit the traffic to the type or types shown in the
-              following table, according to the type of node that is
-              running on each cluster host computer:
+          <informaltable>
+            <tgroup cols="2">
+              <colspec colwidth="25*"/>
+              <colspec colwidth="75*"/>
+              <thead>
+                <row>
+                  <entry>Type of Node to be Accessed</entry>
+                  <entry>Traffic to Permit</entry>
+                </row>
+              </thead>
+              <tbody>
+                <row>
+                  <entry>SQL or API node</entry>
+                  <entry><itemizedlist>
 
-              <informaltable>
-                <tgroup cols="2">
-                  <colspec colwidth="25*"/>
-                  <colspec colwidth="75*"/>
-                  <thead>
-                    <row>
-                      <entry>Type of Node to be Accessed</entry>
-                      <entry>Traffic to Permit</entry>
-                    </row>
-                  </thead>
-                  <tbody>
-                    <row>
-                      <entry>SQL or API node</entry>
-                      <entry><itemizedlist>
+                      <listitem>
+                        <para>
+                          It originates from the IP address of a
+                          management or data node (using any TCP or UDP
+                          port).
+                        </para>
+                      </listitem>
 
-                          <listitem>
-                            <para>
-                              It originates from the IP address of a
-                              management or data node (using any TCP or
-                              UDP port).
-                            </para>
-                          </listitem>
+                      <listitem>
+                        <para>
+                          It originates from within the network in which
+                          the cluster resides and is on the port that
+                          your application is using.
+                        </para>
+                      </listitem>
 
-                          <listitem>
-                            <para>
-                              It originates from within the network in
-                              which the cluster resides and is on the
-                              port that your application is using.
-                            </para>
-                          </listitem>
+                    </itemizedlist></entry>
+                </row>
+                <row>
+                  <entry>Data node or Management node</entry>
+                  <entry><itemizedlist>
 
-                        </itemizedlist></entry>
-                    </row>
-                    <row>
-                      <entry>Data node or Management node</entry>
-                      <entry><itemizedlist>
+                      <listitem>
+                        <para>
+                          It originates from the IP address of a
+                          management or data node (using any TCP or UDP
+                          port).
+                        </para>
+                      </listitem>
 
-                          <listitem>
-                            <para>
-                              It originates from the IP address of a
-                              management or data node (using any TCP or
-                              UDP port).
-                            </para>
-                          </listitem>
+                      <listitem>
+                        <para>
+                          It originates from the IP address of an SQL or
+                          API node.
+                        </para>
+                      </listitem>
 
-                          <listitem>
-                            <para>
-                              It originates from the IP address of an
-                              SQL or API node.
-                            </para>
-                          </listitem>
+                    </itemizedlist></entry>
+                </row>
+              </tbody>
+            </tgroup>
+          </informaltable>
 
-                        </itemizedlist></entry>
-                    </row>
-                  </tbody>
-                </tgroup>
-              </informaltable>
+          <para>
+            Any traffic other than that shown in the table for a given
+            node type should be denied.
+          </para>
 
-              Any traffic other than that shown in the table for a given
-              node type should be denied.
-            </para>
+          <para>
+            The specifics of configuring a firewall vary from firewall
+            application to firewall application, and are beyond the
+            scope of this Manual. <command>iptables</command> is a very
+            common and reliable firewall application, which is often
+            used with <command>APF</command> as a front end to make
+            configuration easier. You can (and should) consult the
+            documentation for the software firewall that you employ,
+            should you choose to implement a MySQL Cluster network setup
+            of this type, or of a <quote>mixed</quote> type as discussed
+            under the next item.
+          </para>
+        </listitem>
 
-            <para>
-              The specifics of configuring a firewall vary from firewall
-              application to firewall application, and are beyond the
-              scope of this Manual. <command>iptables</command> is a
-              very common and reliable firewall application, which is
-              often used with <command>APF</command> as a front end to
-              make configuration easier. You can (and should) consult
-              the documentation for the software firewall that you
-              employ, should you choose to implement a MySQL Cluster
-              network setup of this type, or of a <quote>mixed</quote>
-              type as discussed under the next item.
-            </para>
-          </listitem>
+        <listitem>
+          <para>
+            <indexterm>
+              <primary>MySQL Cluster</primary>
+              <secondary>security</secondary>
+              <tertiary>and firewalls</tertiary>
+            </indexterm>
 
-          <listitem>
-            <para>
-              <indexterm>
-                <primary>MySQL Cluster</primary>
-                <secondary>security</secondary>
-                <tertiary>and firewalls</tertiary>
-              </indexterm>
+            <indexterm>
+              <primary>firewalls (software)</primary>
+              <secondary>and MySQL Cluster</secondary>
+            </indexterm>
 
-              <indexterm>
-                <primary>firewalls (software)</primary>
-                <secondary>and MySQL Cluster</secondary>
-              </indexterm>
+            It is also possible to employ a combination of the first two
+            methods, using both hardware and software to secure the
+            cluster&mdash;that is, using both network-based and
+            host-based firewalls. This is between the first two schemes
+            in terms of both security level and cost. This type of
+            network setup keeps the cluster behind the hardware
+            firewall, but permits incoming packets to travel beyond the
+            router connecting all cluster hosts to reach the SQL nodes.
+          </para>
 
-              It is also possible to employ a combination of the first
-              two methods, using both hardware and software to secure
-              the cluster&mdash;that is, using both network-based and
-              host-based firewalls. This is between the first two
-              schemes in terms of both security level and cost. This
-              type of network setup keeps the cluster behind the
-              hardware firewall, but permits incoming packets to travel
-              beyond the router connecting all cluster hosts to reach
-              the SQL nodes.
-            </para>
+          <para>
+            One possible network deployment of a MySQL Cluster using
+            hardware and software firewalls in combination is shown
+            here:
+          </para>
 
-            <para>
-              One possible network deployment of a MySQL Cluster using
-              hardware and software firewalls in combination is shown
-              here:
+          <mediaobject>
+            <imageobject>
+              <imagedata contentwidth="550" contentdepth="410" fileref="../refman-common/images/published/cluster-security-network-3.png" format="PNG"/>
+            </imageobject>
+            <textobject>
+              <phrase lang="en">Network setup for MySQL Cluster using a
+              combination of hardware and software firewalls to provide
+              protection</phrase>
+            </textobject>
+          </mediaobject>
 
-              <mediaobject>
-                <imageobject>
-                  <imagedata contentwidth="550" contentdepth="410" fileref="../refman-common/images/published/cluster-security-network-3.png" format="PNG"/>
-                </imageobject>
-                <textobject>
-                  <phrase lang="en">Network setup for MySQL Cluster
-                  using a combination of hardware and software firewalls
-                  to provide protection</phrase>
-                </textobject>
-              </mediaobject>
+          <para>
+            In this case, you can set the rules in the hardware firewall
+            to deny any external traffic except to SQL nodes and API
+            nodes, and then permit traffic to them only on the ports
+            required by your application.
+          </para>
+        </listitem>
 
-              In this case, you can set the rules in the hardware
-              firewall to deny any external traffic except to SQL nodes
-              and API nodes, and then permit traffic to them only on the
-              ports required by your application.
-            </para>
-          </listitem>
+      </orderedlist>
 
-        </orderedlist>
-
+      <para>
         Whatever network configuration you use, remember that your
         objective from the viewpoint of keeping the cluster secure
         remains the same&mdash;to prevent any unessential traffic from

@@ -10304,12 +10311,14 @@
         on server <emphasis role="bold">A</emphasis> that creates a new
         user <literal>jon@localhost</literal> and grants this user the
         <literal role="priv">SELECT</literal> privilege on that table:
+      </para>
 
 <programlisting>
 mysql&gt; <userinput>GRANT SELECT ON mydb.mytable</userinput>
     -&gt;   <userinput>TO jon@localhost IDENTIFIED BY 'mypass';</userinput>
 </programlisting>
 
+      <para>
         This user is <emphasis>not</emphasis> created on server
         <emphasis role="bold">B</emphasis>. For this to take place, the
         statement must also be run on server

@@ -10354,177 +10363,176 @@
         of the <filename>config.ini</filename> file, this account can be
         especially dangerous. To understand why, consider the following
         scenario:
+      </para>
 
-        <itemizedlist>
+      <itemizedlist>
 
-          <listitem>
-            <para>
-              The <filename>config.ini</filename> file contains at least
-              one empty <literal>[mysqld]</literal> or
-              <literal>[api]</literal> section. This means that the
-              Cluster management server performs no checking of the host
-              from which a MySQL Server (or other API node) accesses the
-              MySQL Cluster.
-            </para>
-          </listitem>
+        <listitem>
+          <para>
+            The <filename>config.ini</filename> file contains at least
+            one empty <literal>[mysqld]</literal> or
+            <literal>[api]</literal> section. This means that the MySQL
+            Cluster management server performs no checking of the host
+            from which a MySQL Server (or other API node) accesses the
+            MySQL Cluster.
+          </para>
+        </listitem>
 
-          <listitem>
-            <para>
-              There is no firewall, or the firewall fails to protect
-              against access to the Cluster from hosts external to the
-              network.
-            </para>
-          </listitem>
+        <listitem>
+          <para>
+            There is no firewall, or the firewall fails to protect
+            against access to the MySQL Cluster from hosts external to
+            the network.
+          </para>
+        </listitem>
 
-          <listitem>
-            <para>
-              The host name or IP address of the Cluster's management
-              server is known or can be determined from outside the
-              network.
-            </para>
-          </listitem>
+        <listitem>
+          <para>
+            The host name or IP address of the MySQL Cluster's
+            management server is known or can be determined from outside
+            the network.
+          </para>
+        </listitem>
 
-        </itemizedlist>
+      </itemizedlist>
 
+      <para>
         If these conditions are true, then anyone, anywhere can start a
         MySQL Server with <option>--ndbcluster
         --ndb-connectstring=<replaceable>management_host</replaceable></option>
         and access the Cluster. Using the MySQL <literal>root</literal>
         account, this person can then perform the following actions:
+      </para>
 
-        <itemizedlist>
+      <itemizedlist>
 
-          <listitem>
-            <para>
-              Execute a <literal role="stmt">SHOW DATABASES</literal>
-              statement to obtain a list of all databases that exist in
-              the cluster
-            </para>
-          </listitem>
+        <listitem>
+          <para>
+            Execute a <literal role="stmt">SHOW DATABASES</literal>
+            statement to obtain a list of all databases that exist in
+            the cluster
+          </para>
+        </listitem>
 
-          <listitem>
-            <para>
-              Execute a <literal>SHOW TABLES FROM
-              <replaceable>some_database</replaceable></literal>
-              statement to obtain a list of all
-              <literal role="se">NDB</literal> tables in a given
-              database
-            </para>
-          </listitem>
+        <listitem>
+          <para>
+            Execute a <literal>SHOW TABLES FROM
+            <replaceable>some_database</replaceable></literal> statement
+            to obtain a list of all <literal role="se">NDB</literal>
+            tables in a given database
+          </para>
+        </listitem>
 
-          <listitem>
-            <para>
-              <indexterm>
-                <primary>malicious SQL statements</primary>
-                <secondary>and MySQL Cluster</secondary>
-              </indexterm>
+        <listitem>
+          <para>
+            <indexterm>
+              <primary>malicious SQL statements</primary>
+              <secondary>and MySQL Cluster</secondary>
+            </indexterm>
 
-              <indexterm>
-                <primary>security</primary>
-                <secondary>and malicious SQL statements</secondary>
-              </indexterm>
+            <indexterm>
+              <primary>security</primary>
+              <secondary>and malicious SQL statements</secondary>
+            </indexterm>
 
-              Run any legal MySQL statements on any of those tables,
-              such as:
+            Run any legal MySQL statements on any of those tables, such
+            as:
 
-              <itemizedlist>
+            <itemizedlist>
 
-                <listitem>
-                  <para>
-                    <literal>SELECT * FROM
-                    <replaceable>some_table</replaceable></literal> to
-                    read all the data from any table
-                  </para>
-                </listitem>
+              <listitem>
+                <para>
+                  <literal>SELECT * FROM
+                  <replaceable>some_table</replaceable></literal> to
+                  read all the data from any table
+                </para>
+              </listitem>
 
-                <listitem>
-                  <para>
-                    <literal>DELETE FROM
-                    <replaceable>some_table</replaceable></literal> to
-                    delete all the data from a table
-                  </para>
-                </listitem>
+              <listitem>
+                <para>
+                  <literal>DELETE FROM
+                  <replaceable>some_table</replaceable></literal> to
+                  delete all the data from a table
+                </para>
+              </listitem>
 
-                <listitem>
-                  <para>
-                    <literal>DESCRIBE
-                    <replaceable>some_table</replaceable></literal> or
-                    <literal>SHOW CREATE TABLE
-                    <replaceable>some_table</replaceable></literal> to
-                    determine the table schema
-                  </para>
-                </listitem>
+              <listitem>
+                <para>
+                  <literal>DESCRIBE
+                  <replaceable>some_table</replaceable></literal> or
+                  <literal>SHOW CREATE TABLE
+                  <replaceable>some_table</replaceable></literal> to
+                  determine the table schema
+                </para>
+              </listitem>
 
-                <listitem>
-                  <para>
-                    <literal>UPDATE
-                    <replaceable>some_table</replaceable> SET
-                    <replaceable>column1</replaceable> =
-                    <replaceable>any_value1</replaceable></literal> to
-                    fill a table column with <quote>garbage</quote>
-                    data; this could actually cause much greater damage
-                    than simply deleting all the data
-                  </para>
+              <listitem>
+                <para>
+                  <literal>UPDATE <replaceable>some_table</replaceable>
+                  SET <replaceable>column1</replaceable> =
+                  <replaceable>any_value1</replaceable></literal> to
+                  fill a table column with <quote>garbage</quote> data;
+                  this could actually cause much greater damage than
+                  simply deleting all the data
+                </para>
 
-                  <para>
-                    Even more insidious variations might include
-                    statements like these:
+                <para>
+                  Even more insidious variations might include
+                  statements like these:
 
 <programlisting>
 UPDATE <replaceable>some_table</replaceable> SET <replaceable>an_int_column</replaceable> = <replaceable>an_int_column</replaceable> + 1
 </programlisting>
 
-                    or
+                  or
 
 <programlisting>
 UPDATE <replaceable>some_table</replaceable> SET <replaceable>a_varchar_column</replaceable> = REVERSE(<replaceable>a_varchar_column</replaceable>)
 </programlisting>
 
-                    Such malicious statements are limited only by the
-                    imagination of the attacker.
-                  </para>
-                </listitem>
+                  Such malicious statements are limited only by the
+                  imagination of the attacker.
+                </para>
+              </listitem>
 
-              </itemizedlist>
+            </itemizedlist>
 
-              The only tables that would be safe from this sort of
-              mayhem would be those tables that were created using
-              storage engines other than
-              <literal role="se">NDB</literal>, and so not visible to a
-              <quote>rogue</quote> SQL node.
-            </para>
+            The only tables that would be safe from this sort of mayhem
+            would be those tables that were created using storage
+            engines other than <literal role="se">NDB</literal>, and so
+            not visible to a <quote>rogue</quote> SQL node.
+          </para>
 
-            <note>
-              <para>
-                <indexterm>
-                  <primary>INFORMATION_SCHEMA</primary>
-                  <secondary>and security issues</secondary>
-                </indexterm>
+          <note>
+            <para>
+              <indexterm>
+                <primary>INFORMATION_SCHEMA</primary>
+                <secondary>and security issues</secondary>
+              </indexterm>
 
-                <indexterm>
-                  <primary>MySQL Cluster</primary>
-                  <secondary>and INFORMATION_SCHEMA</secondary>
-                </indexterm>
+              <indexterm>
+                <primary>MySQL Cluster</primary>
+                <secondary>and INFORMATION_SCHEMA</secondary>
+              </indexterm>
 
-                A user who can log in as <literal>root</literal> can
-                also access the <literal>INFORMATION_SCHEMA</literal>
-                database and its tables, and so obtain information about
-                databases, tables, stored routines, scheduled events,
-                and any other database objects for which metadata is
-                stored in <literal>INFORMATION_SCHEMA</literal>.
-              </para>
-            </note>
-
-            <para>
-              It is also a very good idea to use different passwords for
-              the <literal>root</literal> accounts on different cluster
-              SQL nodes.
+              A user who can log in as <literal>root</literal> can also
+              access the <literal>INFORMATION_SCHEMA</literal> database
+              and its tables, and so obtain information about databases,
+              tables, stored routines, scheduled events, and any other
+              database objects for which metadata is stored in
+              <literal>INFORMATION_SCHEMA</literal>.
             </para>
-          </listitem>
+          </note>
 
-        </itemizedlist>
-      </para>
+          <para>
+            It is also a very good idea to use different passwords for
+            the <literal>root</literal> accounts on different cluster
+            SQL nodes.
+          </para>
+        </listitem>
 
+      </itemizedlist>
+
       <para>
         In sum, you cannot have a safe MySQL Cluster if it is directly
         accessible from outside your local network.

@@ -10552,8 +10560,7 @@
         other database objects cease to function if these tables are
         changed to use any storage engine other than
         <literal>MyISAM</literal></emphasis>. This is a consequence of
-        various MySQL Server internals which are not expected to change
-        in the foreseeable future.
+        various MySQL Server internals.
       </para>
 
       <para>

@@ -10570,37 +10577,37 @@
         <para>
           The two most important points to remember regarding the MySQL
           privilege system with regard to MySQL Cluster are:
+        </para>
 
-          <orderedlist>
+      </formalpara>
 
-            <listitem>
-              <para>
-                Users and privileges established on one SQL node do not
-                automatically exist or take effect on other SQL nodes in
-                the cluster.
-              </para>
+      <orderedlist>
 
-              <para>
-                Conversely, removing a user or privilege on one SQL node
-                in the cluster does not remove the user or privilege
-                from any other SQL nodes.
-              </para>
-            </listitem>
+        <listitem>
+          <para>
+            Users and privileges established on one SQL node do not
+            automatically exist or take effect on other SQL nodes in the
+            cluster.
+          </para>
 
-            <listitem>
-              <para>
-                Once a MySQL user is granted privileges on an
-                <literal role="se">NDB</literal> table from one SQL node
-                in a MySQL Cluster, that user can <quote>see</quote> any
-                data in that table regardless of the SQL node from which
-                the data originated.
-              </para>
-            </listitem>
+          <para>
+            Conversely, removing a user or privilege on one SQL node in
+            the cluster does not remove the user or privilege from any
+            other SQL nodes.
+          </para>
+        </listitem>
 
-          </orderedlist>
-        </para>
+        <listitem>
+          <para>
+            Once a MySQL user is granted privileges on an
+            <literal role="se">NDB</literal> table from one SQL node in
+            a MySQL Cluster, that user can <quote>see</quote> any data
+            in that table regardless of the SQL node from which the data
+            originated.
+          </para>
+        </listitem>
 
-      </formalpara>
+      </orderedlist>
 
     </section>
 

@@ -10634,6 +10641,7 @@
         that the <command>mysqld</command> process is running as the
         system user <literal>mysql</literal> by using the system command
         such as the one shown here:
+      </para>
 
 <programlisting>
 shell&gt; <userinput>ps aux | grep mysql</userinput>

@@ -10647,6 +10655,7 @@
 jon      10579  0.0  0.0   2736   688 pts/0    S+   11:54   0:00 grep mysql
 </programlisting>
 
+      <para>
         If the <command>mysqld</command> process is running as any other
         user than <literal>mysql</literal>, you should immediately shut
         it down and restart it as the <literal>mysql</literal> user. If

@@ -10688,6 +10697,7 @@
         as you have it running. You should also delete the anonymous
         user account that is installed by default. You can accomplish
         these tasks using the following statements:
+      </para>
 
 <programlisting>
 shell&gt; <userinput>mysql -u root</userinput>

@@ -10702,6 +10712,7 @@
 mysql&gt; <userinput>FLUSH PRIVILEGES;</userinput>
 </programlisting>
 
+      <para>
         Be very careful when executing the
         <literal role="stmt">DELETE</literal> statement not to omit the
         <literal>WHERE</literal> clause, or you risk deleting

@@ -10767,12 +10778,6 @@
       <see>MySQL Cluster Disk Data</see>
     </indexterm>
 
-    <remark role="note">
-      Author: Jon Stephens, based on information supplied by Mikael
-      Ronström and Stewart Smith. Additional assistance provided by Jeb
-      Miller.
-    </remark>
-
     <para>
       Beginning with MySQL 5.1.6, it is possible to store the nonindexed
       columns of <literal role="se">NDB</literal> tables on disk, rather

@@ -11416,12 +11421,14 @@
         as <filename>/data0</filename>, <filename>/data1</filename>, and
         <filename>/data2</filename>, and that the cluster's
         <filename>config.ini</filename> includes the following:
+      </para>
 
 <programlisting>
 [ndbd default]
 DataDir= /data0
 </programlisting>
 
+      <para>
         Our objective is to place all Disk Data log files in
         <filename>/data1</filename>, and all Disk Data data files in
         <filename>/data2</filename>, on each data node host.

@@ -11438,13 +11445,14 @@
 
       <para>
         To accomplish this, perform the following steps:
+      </para>
 
-        <itemizedlist>
+      <itemizedlist>
 
-          <listitem>
-            <para>
-              Under the data node file system create symbolic links
-              pointing to the other drives:
+        <listitem>
+          <para>
+            Under the data node file system create symbolic links
+            pointing to the other drives:
 
 <programlisting>
 shell&gt; <userinput>cd /data0/ndb_2_fs</userinput>

@@ -11454,7 +11462,7 @@
 shell&gt; <userinput>ln -s /data1 dndata</userinput>
 </programlisting>
 
-              You should now have two symbolic links:
+            You should now have two symbolic links:
 
 <programlisting>
 shell&gt; <userinput>ls -l --hide=D*</userinput>

@@ -11462,18 +11470,17 @@
 lrwxrwxrwx 1 user group   30 2007-03-19 13:59 dnlogs -> /data2
 </programlisting>
 
-              We show this only for the data node with node ID 2;
-              however, you must do this for <emphasis>each</emphasis>
-              data node.
-            </para>
-          </listitem>
+            We show this only for the data node with node ID 2; however,
+            you must do this for <emphasis>each</emphasis> data node.
+          </para>
+        </listitem>
 
-          <listitem>
-            <para>
-              Now, in the <command>mysql</command> client, create a log
-              file group and tablespace using the symbolic links, as
-              shown here:
-            </para>
+        <listitem>
+          <para>
+            Now, in the <command>mysql</command> client, create a log
+            file group and tablespace using the symbolic links, as shown
+            here:
+          </para>
 
 <programlisting>
 mysql&gt; <userinput>CREATE LOGFILE GROUP lg1</userinput>

@@ -11489,10 +11496,10 @@
     -&gt;    <userinput>ENGINE=NDBCLUSTER;</userinput>
 </programlisting>
 
-            <para>
-              Verify that the files were created and placed correctly as
-              shown here:
-            </para>
+          <para>
+            Verify that the files were created and placed correctly as
+            shown here:
+          </para>
 
 <programlisting>
 shell&gt; <userinput>cd /data1</userinput>

@@ -11505,20 +11512,19 @@
 total 2099304
 -rw-rw-r&ddash;  1 user group 1073741824 2007-03-19 14:02 data1.dat
 </programlisting>
-          </listitem>
+        </listitem>
 
-          <listitem>
-            <para>
-              If you are running multiple data nodes on one host, you
-              must take care to avoid having them try to use the same
-              space for Disk Data files. You can make this easier by
-              creating a symbolic link in each data node filesystem.
-              Suppose you are using <filename>/data0</filename> for both
-              data node filesystems, but you wish to have the Disk Data
-              files for both nodes on <filename>/data1</filename>. In
-              this case, you can do something similar to what is shown
-              here:
-            </para>
+        <listitem>
+          <para>
+            If you are running multiple data nodes on one host, you must
+            take care to avoid having them try to use the same space for
+            Disk Data files. You can make this easier by creating a
+            symbolic link in each data node filesystem. Suppose you are
+            using <filename>/data0</filename> for both data node
+            filesystems, but you wish to have the Disk Data files for
+            both nodes on <filename>/data1</filename>. In this case, you
+            can do something similar to what is shown here:
+          </para>
 
 <programlisting>
 shell&gt; <userinput>cd /data0</userinput>

@@ -11529,11 +11535,13 @@
 shell&gt; <userinput>ls -l --hide=D* ndb_3_fs</userinput>
 lrwxrwxrwx 1 user group   30 2007-03-19 14:22 dd -> /data1/dn3
 </programlisting>
+        </listitem>
 
-            <para>
-              Now you can create a logfile group and tablespace using
-              the symbolic link, like this:
-            </para>
+        <listitem>
+          <para>
+            Now you can create a logfile group and tablespace using the
+            symbolic link, like this:
+          </para>
 
 <programlisting>
 mysql&gt; <userinput>CREATE LOGFILE GROUP lg1</userinput>

@@ -11549,10 +11557,10 @@
     -&gt;    <userinput>ENGINE=NDBCLUSTER;</userinput>
 </programlisting>
 
-            <para>
-              Verify that the files were created and placed correctly as
-              shown here:
-            </para>
+          <para>
+            Verify that the files were created and placed correctly as
+            shown here:
+          </para>
 
 <programlisting>
 shell&gt; <userinput>cd /data1</userinput>

@@ -11563,10 +11571,9 @@
 shell&gt; <userinput>ls dn3</userinput>
 undo1.log        data1.log
 </programlisting>
-          </listitem>
+        </listitem>
 
-        </itemizedlist>
-      </para>
+      </itemizedlist>
 
     </section>
 

@@ -11581,63 +11588,63 @@
         </indexterm>
 
         The following items apply to Disk Data storage requirements:
+      </para>
 
-        <itemizedlist>
+      <itemizedlist>
 
-          <listitem>
-            <para>
-              Variable-length columns of Disk Data tables take up a
-              fixed amount of space. For each row, this is equal to the
-              space required to store the largest possible value for
-              that column.
-            </para>
+        <listitem>
+          <para>
+            Variable-length columns of Disk Data tables take up a fixed
+            amount of space. For each row, this is equal to the space
+            required to store the largest possible value for that
+            column.
+          </para>
 
-            <para>
-              For general information about calculating these values,
-              see <xref linkend="storage-requirements"/>.
-            </para>
+          <para>
+            For general information about calculating these values, see
+            <xref linkend="storage-requirements"/>.
+          </para>
 
+          <para>
+            You can obtain an estimate the amount of space available in
+            data files and undo log files by querying the
+            <literal role="is">INFORMATION_SCHEMA.FILES</literal> table.
+            For more information and examples, see
+            <xref linkend="files-table"/>.
+          </para>
+
+          <note>
             <para>
-              You can obtain an estimate the amount of space available
-              in data files and undo log files by querying the
-              <literal role="is">INFORMATION_SCHEMA.FILES</literal>
-              table. For more information and examples, see
-              <xref linkend="files-table"/>.
+              The <literal role="stmt">OPTIMIZE TABLE</literal>
+              statement does not have any effect on Disk Data tables.
             </para>
+          </note>
+        </listitem>
 
-            <note>
-              <para>
-                The <literal role="stmt">OPTIMIZE TABLE</literal>
-                statement does not have any effect on Disk Data tables.
-              </para>
-            </note>
-          </listitem>
+        <listitem>
+          <para>
+            In a Disk Data table, the first 256 bytes of a
+            <literal role="type">TEXT</literal> or
+            <literal role="type">BLOB</literal> column are stored in
+            memory; only the remainder is stored on disk.
+          </para>
+        </listitem>
 
-          <listitem>
-            <para>
-              In a Disk Data table, the first 256 bytes of a
-              <literal role="type">TEXT</literal> or
-              <literal role="type">BLOB</literal> column are stored in
-              memory; only the remainder is stored on disk.
-            </para>
-          </listitem>
+        <listitem>
+          <para>
+            Each row in a Disk Data table uses 8 bytes in memory to
+            point to the data stored on disk. This means that, in some
+            cases, converting an in-memory column to the disk-based
+            format can actually result in greater memory usage. For
+            example, convering a <literal>CHAR(4)</literal> column from
+            memory-based to disk-based format increases the amount of
+            <literal>DataMemory</literal> used per row from 4 to 8
+            bytes.
+          </para>
+        </listitem>
 
-          <listitem>
-            <para>
-              Each row in a Disk Data table uses 8 bytes in memory to
-              point to the data stored on disk. This means that, in some
-              cases, converting an in-memory column to the disk-based
-              format can actually result in greater memory usage. For
-              example, convering a <literal>CHAR(4)</literal> column
-              from memory-based to disk-based format increases the
-              amount of <literal>DataMemory</literal> used per row from
-              4 to 8 bytes.
-            </para>
-          </listitem>
+      </itemizedlist>
 
-        </itemizedlist>
-      </para>
-
       <important>
         <para>
           Starting the cluster with the <option>--initial</option>

@@ -11693,20 +11700,22 @@
           in-memory and Disk Data tables is supported. This
           redistribution does not currently include unique indexes (only
           ordered indexes are redistributed) or <literal>BLOB</literal>
-          table data, but we are working to add redistibution of these
-          in the near future. The redistribution for
-          <literal role="se">NDBCLUSTER</literal> tables already
-          existing before the new data nodes were added is not
-          automatic, but can be accomplished using simple SQL statements
-          in <command>mysql</command> or another MySQL client
-          application. However, all data and indexes added to tables
-          created after a new node group has been added are distributed
-          automatically among all cluster data nodes, including those
-          added as part of the new node group.
+          table data.
         </para>
 
       </formalpara>
 
+      <para>
+        The redistribution for <literal role="se">NDBCLUSTER</literal>
+        tables already existing before the new data nodes were added is
+        not automatic, but can be accomplished using simple SQL
+        statements in <command>mysql</command> or another MySQL client
+        application. However, all data and indexes added to tables
+        created after a new node group has been added are distributed
+        automatically among all cluster data nodes, including those
+        added as part of the new node group.
+      </para>
+
       <formalpara>
 
         <title>Partial starts</title>

@@ -11750,334 +11759,330 @@
         <para>
           Failures of data nodes during node group creation and table
           reorganization are handled as hown in the following table:
+        </para>
 
-          <informaltable>
-            <tgroup cols="4">
-              <colspec colwidth="25*"/>
-              <colspec colwidth="25*" colname="2"/>
-              <colspec colwidth="25*"/>
-              <colspec colwidth="25*" colname="4"/>
-              <spanspec namest="2" nameend="4" spanname="title"/>
-              <thead>
-                <row>
-                  <entry morerows="1">Failure occurs during:</entry>
-                  <entry spanname="title">Failure occurs in:</entry>
-                </row>
-                <row>
-                  <entry><quote>Old</quote> data nodes</entry>
-                  <entry><quote>New</quote> data nodes</entry>
-                  <entry>System</entry>
-                </row>
-              </thead>
-              <tbody>
-                <row>
-                  <entry>Node group creation</entry>
-                  <entry><itemizedlist>
+      </formalpara>
 
-                      <listitem>
-                        <formalpara>
+      <informaltable>
+        <tgroup cols="4">
+          <colspec colwidth="25*"/>
+          <colspec colwidth="25*" colname="2"/>
+          <colspec colwidth="25*"/>
+          <colspec colwidth="25*" colname="4"/>
+          <spanspec namest="2" nameend="4" spanname="title"/>
+          <thead>
+            <row>
+              <entry morerows="1">Failure occurs during:</entry>
+              <entry spanname="title">Failure occurs in:</entry>
+            </row>
+            <row>
+              <entry><quote>Old</quote> data nodes</entry>
+              <entry><quote>New</quote> data nodes</entry>
+              <entry>System</entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>Node group creation</entry>
+              <entry><itemizedlist>
 
-                          <title>If a node other than the master fails:</title>
+                  <listitem>
+                    <formalpara>
 
-                          <para>
-                            The creation of the node group is always
-                            rolled forward.
-                          </para>
+                      <title>If a node other than the master fails:</title>
 
-                        </formalpara>
-                      </listitem>
+                      <para>
+                        The creation of the node group is always rolled
+                        forward.
+                      </para>
 
-                      <listitem>
-                        <formalpara>
+                    </formalpara>
+                  </listitem>
 
-                          <title>If the master fails:</title>
+                  <listitem>
+                    <formalpara>
 
-                          <para>
-                            <itemizedlist>
+                      <title>If the master fails:</title>
 
-                              <listitem>
-                                <formalpara>
+                      <para>
+                        <itemizedlist>
 
-                                  <title>If the internal commit point has been reached:</title>
+                          <listitem>
+                            <formalpara>
 
-                                  <para>
-                                    The creation of the node group is
-                                    rolled forward.
-                                  </para>
+                              <title>If the internal commit point has been reached:</title>
 
-                                </formalpara>
-                              </listitem>
+                              <para>
+                                The creation of the node group is rolled
+                                forward.
+                              </para>
 
-                              <listitem>
-                                <formalpara>
+                            </formalpara>
+                          </listitem>
 
-                                  <title>If the internal commit point has not yet been reached</title>
+                          <listitem>
+                            <formalpara>
 
-                                  <para>
-                                    The creation of the node group is
-                                    rolled back
-                                  </para>
+                              <title>If the internal commit point has not yet been reached</title>
 
-                                </formalpara>
-                              </listitem>
+                              <para>
+                                The creation of the node group is rolled
+                                back
+                              </para>
 
-                            </itemizedlist>
-                          </para>
+                            </formalpara>
+                          </listitem>
 
-                        </formalpara>
-                      </listitem>
+                        </itemizedlist>
+                      </para>
 
-                    </itemizedlist></entry>
-                  <entry><itemizedlist>
+                    </formalpara>
+                  </listitem>
 
-                      <listitem>
-                        <formalpara>
+                </itemizedlist></entry>
+              <entry><itemizedlist>
 
-                          <title>If a node other than the master fails:</title>
+                  <listitem>
+                    <formalpara>
 
-                          <para>
-                            The creation of the node group is always
-                            rolled forward.
-                          </para>
+                      <title>If a node other than the master fails:</title>
 
-                        </formalpara>
-                      </listitem>
+                      <para>
+                        The creation of the node group is always rolled
+                        forward.
+                      </para>
 
-                      <listitem>
-                        <formalpara>
+                    </formalpara>
+                  </listitem>
 
-                          <title>If the master fails:</title>
+                  <listitem>
+                    <formalpara>
 
-                          <para>
-                            <itemizedlist>
+                      <title>If the master fails:</title>
 
-                              <listitem>
-                                <formalpara>
+                      <para>
+                        <itemizedlist>
 
-                                  <title>If the internal commit point has been reached:</title>
+                          <listitem>
+                            <formalpara>
 
-                                  <para>
-                                    The creation of the node group is
-                                    rolled forward.
-                                  </para>
+                              <title>If the internal commit point has been reached:</title>
 
-                                </formalpara>
-                              </listitem>
+                              <para>
+                                The creation of the node group is rolled
+                                forward.
+                              </para>
 
-                              <listitem>
-                                <formalpara>
+                            </formalpara>
+                          </listitem>
 
-                                  <title>If the internal commit point has not yet been reached</title>
+                          <listitem>
+                            <formalpara>
 
-                                  <para>
-                                    The creation of the node group is
-                                    rolled back
-                                  </para>
+                              <title>If the internal commit point has not yet been reached</title>
 
-                                </formalpara>
-                              </listitem>
+                              <para>
+                                The creation of the node group is rolled
+                                back
+                              </para>
 
-                            </itemizedlist>
-                          </para>
+                            </formalpara>
+                          </listitem>
 
-                        </formalpara>
-                      </listitem>
+                        </itemizedlist>
+                      </para>
 
-                    </itemizedlist></entry>
-                  <entry><itemizedlist>
+                    </formalpara>
+                  </listitem>
 
-                      <listitem>
-                        <formalpara>
+                </itemizedlist></entry>
+              <entry><itemizedlist>
 
-                          <title>If the execution of <literal>CREATE NODEGROUP</literal> has reached the
-                            internal commit point:</title>
+                  <listitem>
+                    <formalpara>
 
-                          <para>
-                            When restarted, the cluster includes the new
-                            node group. Otherwise it without.
-                          </para>
+                      <title>If the execution of <literal>CREATE NODEGROUP</literal> has reached the
+                        internal commit point:</title>
 
-                        </formalpara>
-                      </listitem>
+                      <para>
+                        When restarted, the cluster includes the new
+                        node group. Otherwise it without.
+                      </para>
 
-                      <listitem>
-                        <formalpara>
+                    </formalpara>
+                  </listitem>
 
-                          <title>If the execution of <literal>CREATE NODEGROUP</literal> has not yet
-                            reached the internal commit point:</title>
+                  <listitem>
+                    <formalpara>
 
-                          <para>
-                            When restarted, the cluster does not include
-                            the new node group.
-                          </para>
+                      <title>If the execution of <literal>CREATE NODEGROUP</literal> has not yet
+                        reached the internal commit point:</title>
 
-                        </formalpara>
-                      </listitem>
+                      <para>
+                        When restarted, the cluster does not include the
+                        new node group.
+                      </para>
 
-                    </itemizedlist></entry>
-                </row>
-                <row>
-                  <entry>Table reorganization</entry>
-                  <entry><itemizedlist>
+                    </formalpara>
+                  </listitem>
 
-                      <listitem>
-                        <formalpara>
+                </itemizedlist></entry>
+            </row>
+            <row>
+              <entry>Table reorganization</entry>
+              <entry><itemizedlist>
 
-                          <title>If a node other than the master fails:</title>
+                  <listitem>
+                    <formalpara>
 
-                          <para>
-                            The table reorganization is always rolled
-                            forward.
-                          </para>
+                      <title>If a node other than the master fails:</title>
 
-                        </formalpara>
-                      </listitem>
+                      <para>
+                        The table reorganization is always rolled
+                        forward.
+                      </para>
 
-                      <listitem>
-                        <formalpara>
+                    </formalpara>
+                  </listitem>
 
-                          <title>If the master fails:</title>
+                  <listitem>
+                    <formalpara>
 
-                          <para>
-                            <itemizedlist>
+                      <title>If the master fails:</title>
 
-                              <listitem>
-                                <formalpara>
+                      <para>
+                        <itemizedlist>
 
-                                  <title>If the internal commit point has been reached:</title>
+                          <listitem>
+                            <formalpara>
 
-                                  <para>
-                                    The table reorganization is rolled
-                                    forward.
-                                  </para>
+                              <title>If the internal commit point has been reached:</title>
 
-                                </formalpara>
-                              </listitem>
+                              <para>
+                                The table reorganization is rolled
+                                forward.
+                              </para>
 
-                              <listitem>
-                                <formalpara>
+                            </formalpara>
+                          </listitem>
 
-                                  <title>If the internal commit point has not yet been reached</title>
+                          <listitem>
+                            <formalpara>
 
-                                  <para>
-                                    The table reorganization is rolled
-                                    back.
-                                  </para>
+                              <title>If the internal commit point has not yet been reached</title>
 
-                                </formalpara>
-                              </listitem>
+                              <para>
+                                The table reorganization is rolled back.
+                              </para>
 
-                            </itemizedlist>
-                          </para>
+                            </formalpara>
+                          </listitem>
 
-                        </formalpara>
-                      </listitem>
+                        </itemizedlist>
+                      </para>
 
-                    </itemizedlist></entry>
-                  <entry><itemizedlist>
+                    </formalpara>
+                  </listitem>
 
-                      <listitem>
-                        <formalpara>
+                </itemizedlist></entry>
+              <entry><itemizedlist>
 
-                          <title>If a node other than the master fails:</title>
+                  <listitem>
+                    <formalpara>
 
-                          <para>
-                            The table reorganization is always rolled
-                            forward.
-                          </para>
+                      <title>If a node other than the master fails:</title>
 
-                        </formalpara>
-                      </listitem>
+                      <para>
+                        The table reorganization is always rolled
+                        forward.
+                      </para>
 
-                      <listitem>
-                        <formalpara>
+                    </formalpara>
+                  </listitem>
 
-                          <title>If the master fails:</title>
+                  <listitem>
+                    <formalpara>
 
-                          <para>
-                            <itemizedlist>
+                      <title>If the master fails:</title>
 
-                              <listitem>
-                                <formalpara>
+                      <para>
+                        <itemizedlist>
 
-                                  <title>If the internal commit point has been reached:</title>
+                          <listitem>
+                            <formalpara>
 
-                                  <para>
-                                    The table reorganization is rolled
-                                    forward.
-                                  </para>
+                              <title>If the internal commit point has been reached:</title>
 
-                                </formalpara>
-                              </listitem>
+                              <para>
+                                The table reorganization is rolled
+                                forward.
+                              </para>
 
-                              <listitem>
-                                <formalpara>
+                            </formalpara>
+                          </listitem>
 
-                                  <title>If the internal commit point has not yet been reached</title>
+                          <listitem>
+                            <formalpara>
 
-                                  <para>
-                                    The table reorganization is rolled
-                                    back.
-                                  </para>
+                              <title>If the internal commit point has not yet been reached</title>
 
-                                </formalpara>
-                              </listitem>
+                              <para>
+                                The table reorganization is rolled back.
+                              </para>
 
-                            </itemizedlist>
-                          </para>
+                            </formalpara>
+                          </listitem>
 
-                        </formalpara>
-                      </listitem>
+                        </itemizedlist>
+                      </para>
 
-                    </itemizedlist></entry>
-                  <entry><itemizedlist>
+                    </formalpara>
+                  </listitem>
 
-                      <listitem>
-                        <formalpara>
+                </itemizedlist></entry>
+              <entry><itemizedlist>
 
-                          <title>If the execution of an <literal>ALTER ONLINE TABLE
-                            <replaceable>table</replaceable> REORGANIZE
-                            PARTITION</literal> statement has reached
-                            the internal commit point:</title>
+                  <listitem>
+                    <formalpara>
 
-                          <para>
-                            When the cluster is restarted, the data and
-                            indexes belonging to
-                            <replaceable>table</replaceable> are
-                            distributed using the <quote>new</quote>
-                            data nodes.
-                          </para>
+                      <title>If the execution of an <literal>ALTER ONLINE TABLE
+                        <replaceable>table</replaceable> REORGANIZE
+                        PARTITION</literal> statement has reached the
+                        internal commit point:</title>
 
-                        </formalpara>
-                      </listitem>
+                      <para>
+                        When the cluster is restarted, the data and
+                        indexes belonging to
+                        <replaceable>table</replaceable> are distributed
+                        using the <quote>new</quote> data nodes.
+                      </para>
 
-                      <listitem>
-                        <formalpara>
+                    </formalpara>
+                  </listitem>
 
-                          <title>If the execution of an <literal>ALTER ONLINE TABLE
-                            <replaceable>table</replaceable> REORGANIZE
-                            PARTITION</literal> statement has not yet
-                            reached the internal commit point:</title>
+                  <listitem>
+                    <formalpara>
 
-                          <para>
-                            When the cluster is restarted, the data and
-                            indexes belonging to
-                            <replaceable>table</replaceable> are
-                            distributed using only the
-                            <quote>old</quote> data nodes.
-                          </para>
+                      <title>If the execution of an <literal>ALTER ONLINE TABLE
+                        <replaceable>table</replaceable> REORGANIZE
+                        PARTITION</literal> statement has not yet
+                        reached the internal commit point:</title>
 
-                        </formalpara>
-                      </listitem>
+                      <para>
+                        When the cluster is restarted, the data and
+                        indexes belonging to
+                        <replaceable>table</replaceable> are distributed
+                        using only the <quote>old</quote> data nodes.
+                      </para>
 
-                    </itemizedlist></entry>
-                </row>
-              </tbody>
-            </tgroup>
-          </informaltable>
-        </para>
+                    </formalpara>
+                  </listitem>
 
-      </formalpara>
+                </itemizedlist></entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
 
       <formalpara>
 

@@ -12090,37 +12095,36 @@
           data. Since there is currently no way to <quote>empty</quote>
           a specific data node or node group, this command works only
           the following two cases:
+        </para>
 
-          <orderedlist>
+      </formalpara>
 
-            <listitem>
-              <para>
-                After issuing <literal>CREATE NODEGROUP</literal> in the
-                <command>ndb_mgm</command> client, but before issuing
-                any <literal role="stmt" condition="alter-table">ALTER
-                ONLINE TABLE ... REORGANIZE PARTITION</literal>
-                statements in the <command>mysql</command> client.
-              </para>
-            </listitem>
+      <orderedlist>
 
-            <listitem>
-              <para>
-                After dropping all
-                <literal role="se">NDBCLUSTER</literal> tables using
-                <literal>DROP TABLE</literal>.
-              </para>
+        <listitem>
+          <para>
+            After issuing <literal>CREATE NODEGROUP</literal> in the
+            <command>ndb_mgm</command> client, but before issuing any
+            <literal role="stmt" condition="alter-table">ALTER ONLINE
+            TABLE ... REORGANIZE PARTITION</literal> statements in the
+            <command>mysql</command> client.
+          </para>
+        </listitem>
 
-              <para>
-                <literal role="stmt">TRUNCATE TABLE</literal> does not
-                work for this purpose because the data nodes continue to
-                store the table definitions.
-              </para>
-            </listitem>
+        <listitem>
+          <para>
+            After dropping all <literal role="se">NDBCLUSTER</literal>
+            tables using <literal>DROP TABLE</literal>.
+          </para>
 
-          </orderedlist>
-        </para>
+          <para>
+            <literal role="stmt">TRUNCATE TABLE</literal> does not work
+            for this purpose because the data nodes continue to store
+            the table definitions.
+          </para>
+        </listitem>
 
-      </formalpara>
+      </orderedlist>
 
     </section>
 

@@ -12882,11 +12886,11 @@
       </note>
 
       <para>
-        Also, for each table, the <literal>ALTER ONLINE TABLE</literal>
-        statement should be followed by an <literal>OPTIMIZE
-        TABLE</literal> to reclaim wasted space. You can obtain a list
-        of all <literal role="se">NDBCLUSTER</literal> tables using the
-        following query against the
+        In addition, for each table, the <literal>ALTER ONLINE
+        TABLE</literal> statement should be followed by an
+        <literal>OPTIMIZE TABLE</literal> to reclaim wasted space. You
+        can obtain a list of all <literal role="se">NDBCLUSTER</literal>
+        tables using the following query against the
         <literal>INFORMATION_SCHEMA.TABLES</literal> table:
       </para>
 


Modified: trunk/refman-5.1/mysql-cluster.xml
===================================================================
--- trunk/refman-5.1/mysql-cluster.xml	2010-10-11 08:13:34 UTC (rev 23072)
+++ trunk/refman-5.1/mysql-cluster.xml	2010-10-11 09:18:28 UTC (rev 23073)
Changed blocks: 7, Lines Added: 124, Lines Deleted: 143; 12285 bytes

@@ -26,17 +26,6 @@
     <see>MySQL Cluster</see>
   </indexterm>
 
-  <remark>
-    Authors: Arjen Lentz, Lars Thalmann, Mikael Ronström, and Jon
-    Stephens (Cluster FAQ, Cluster How-To, Cluster Glossary). Also
-    integrates "MySQL Cluster for MySQL users" by Anders Karlsson.
-    Additional information and feedback provided by Tomas Ulin, Pekka
-    Nousiainen, Stewart Smith, Jörg Brühe, Harrison Fisk. Additional
-    technical review and real-world testing by JD Duncan, Jeb Miller,
-    Hartmut Holzgraefe, Carsten Pedersen, and Roland Bouman. Rewrite
-    editor: Jon Stephens; Supervising editor: Stefan Hinz.
-  </remark>
-
   <para>
     This chapter contains information about <firstterm>MySQL
     Cluster</firstterm>, which is a high-availability, high-redundancy

@@ -90,18 +79,6 @@
     previous GA release series; although these are still supported, we
     recommend that new deployments use MySQL Cluster NDB 7.0 or MySQL
     Cluster NDB 7.1.
-
-    <remark role="note">
-      [js] Next sentence commented out until we have a successor to NDB
-      7.1.x.
-    </remark>
-
-<!--
-    MySQL Cluster NDB
-    7.2 is currently under development; we expect to make source and
-    binaries built from the MySQL Cluster NDB 7.1 available for
-    evaluation and testing purposes in the near future.
--->
   </para>
 
   <para>

@@ -180,20 +157,24 @@
     <para>
       The version string displayed by MySQL Cluster NDB 6.x and 7.x
       software uses this format:
+    </para>
 
+  </formalpara>
+
 <programlisting>
 mysql-<replaceable>mysql_server_version</replaceable>-ndb-<replaceable>ndbcluster_engine_version</replaceable>
 </programlisting>
 
-      <replaceable>mysql_server_version</replaceable> represents the
-      version of the MySQL Server on which the MySQL Cluster release is
-      based. For all MySQL Cluster NDB 6.x and 7.x releases, this is
-      <quote>5.1</quote>.
-      <replaceable>ndbcluster_engine_version</replaceable> is the
-      version of the <literal role="es">NDBCLUSTER</literal> storage
-      engine used by this release of the MySQL Cluster software. You can
-      see this format used in the <command>mysql</command> client, as
-      shown here:
+  <para>
+    <replaceable>mysql_server_version</replaceable> represents the
+    version of the MySQL Server on which the MySQL Cluster release is
+    based. For all MySQL Cluster NDB 6.x and 7.x releases, this is
+    <quote>5.1</quote>.
+    <replaceable>ndbcluster_engine_version</replaceable> is the version
+    of the <literal role="es">NDBCLUSTER</literal> storage engine used
+    by this release of the MySQL Cluster software. You can see this
+    format used in the <command>mysql</command> client, as shown here:
+  </para>
 
 <programlisting>
 shell&gt; <userinput>mysql</userinput>

@@ -209,9 +190,11 @@
 1 row in set (0.00 sec)
 </programlisting>
 
-      This version string is also displayed in the output of the
-      <literal>SHOW</literal> command in the <command>ndb_mgm</command>
-      client:
+  <para>
+    This version string is also displayed in the output of the
+    <literal>SHOW</literal> command in the <command>ndb_mgm</command>
+    client:
+  </para>
 
 <programlisting>
 ndb_mgm&gt; <userinput>SHOW</userinput>

@@ -230,43 +213,41 @@
 id=5 (not connected, accepting connect from any host)
 </programlisting>
 
-      The version string identifies the mainline MySQL version from
-      which the MySQL Cluster release was branched and the version of
-      the <literal role="se">NDBCLUSTER</literal> storage engine used.
-      For example, the full version string for MySQL Cluster NDB 7.0.5
-      (the first GA MySQL Cluster NDB 7.0 binary release) was
-      <literal>mysql-5.1.32-ndb-7.0.5</literal>. From this we can
-      determine the following:
+  <para>
+    The version string identifies the mainline MySQL version from which
+    the MySQL Cluster release was branched and the version of the
+    <literal role="se">NDBCLUSTER</literal> storage engine used. For
+    example, the full version string for MySQL Cluster NDB 7.0.5 (the
+    first GA MySQL Cluster NDB 7.0 binary release) was
+    <literal>mysql-5.1.32-ndb-7.0.5</literal>. From this we can
+    determine the following:
+  </para>
 
-      <itemizedlist>
+  <itemizedlist>
 
-        <listitem>
-          <para>
-            Since the portion of the version string preceding
-            <quote><literal>-ndb-</literal></quote> is the base MySQL
-            Server version, this means that MySQL Cluster NDB 7.0.5
-            derives from the MySQL 5.1.32, and contains all feature
-            enhancements and bugfixes from MySQL 5.1 up to and including
-            MySQL 5.1.32.
-          </para>
-        </listitem>
+    <listitem>
+      <para>
+        Since the portion of the version string preceding
+        <quote><literal>-ndb-</literal></quote> is the base MySQL Server
+        version, this means that MySQL Cluster NDB 7.0.5 derives from
+        the MySQL 5.1.32, and contains all feature enhancements and
+        bugfixes from MySQL 5.1 up to and including MySQL 5.1.32.
+      </para>
+    </listitem>
 
-        <listitem>
-          <para>
-            Since the portion of the version string following
-            <quote><literal>-ndb-</literal></quote> represents the
-            version number of the <literal role="se">NDB</literal> (or
-            <literal role="se">NDBCLUSTER</literal>) storage engine,
-            MySQL Cluster NDB 7.0.5 uses version 7.0.5 of the
-            <literal role="se">NDBCLUSTER</literal> storage engine.
-          </para>
-        </listitem>
+    <listitem>
+      <para>
+        Since the portion of the version string following
+        <quote><literal>-ndb-</literal></quote> represents the version
+        number of the <literal role="se">NDB</literal> (or
+        <literal role="se">NDBCLUSTER</literal>) storage engine, MySQL
+        Cluster NDB 7.0.5 uses version 7.0.5 of the
+        <literal role="se">NDBCLUSTER</literal> storage engine.
+      </para>
+    </listitem>
 
-      </itemizedlist>
-    </para>
+  </itemizedlist>
 
-  </formalpara>
-
   <para>
     New MySQL Cluster releases are numbered according to updates in the
     <literal>NDB</literal> storage engine, and do not necessarily

@@ -310,51 +291,51 @@
     <para>
       MySQL Cluster development trees can also be accessed from
       <ulink url="https://code.launchpad.net/~mysql/"/>:
+    </para>
 
-      <itemizedlist>
+  </formalpara>
 
-        <listitem>
-          <para>
-            <literal><ulink url="https://code.launchpad.net/~mysql/mysql-server/mysql-5.1-telco-6.1">MySQL
-            Cluster NDB 6.1</ulink></literal>
-            (<emphasis>OBSOLETE&mdash;no longer maintained</emphasis>)
-          </para>
-        </listitem>
+  <itemizedlist>
 
-        <listitem>
-          <para>
-            <literal><ulink url="https://code.launchpad.net/~mysql/mysql-server/mysql-5.1-telco-6.2">MySQL
-            Cluster NDB 6.2</ulink></literal> (<emphasis>PAST
-            CURRENT</emphasis>; continues to be maintained)
-          </para>
-        </listitem>
+    <listitem>
+      <para>
+        <literal><ulink url="https://code.launchpad.net/~mysql/mysql-server/mysql-5.1-telco-6.1">MySQL
+        Cluster NDB 6.1</ulink></literal> (<emphasis>OBSOLETE&mdash;no
+        longer maintained</emphasis>)
+      </para>
+    </listitem>
 
-        <listitem>
-          <para>
-            <literal><ulink url="https://code.launchpad.net/~mysql/mysql-server/mysql-5.1-telco-6.3">MySQL
-            Cluster NDB 6.3</ulink></literal>
-            (<emphasis>CURRENT</emphasis>)
-          </para>
-        </listitem>
+    <listitem>
+      <para>
+        <literal><ulink url="https://code.launchpad.net/~mysql/mysql-server/mysql-5.1-telco-6.2">MySQL
+        Cluster NDB 6.2</ulink></literal> (<emphasis>PAST
+        CURRENT</emphasis>; continues to be maintained)
+      </para>
+    </listitem>
 
-        <listitem>
-          <para>
-            <literal><ulink url="https://code.launchpad.net/~mysql/mysql-server/mysql-cluster-7.0">MySQL
-            Cluster NDB 7.0</ulink></literal>
-            (<emphasis>CURRENT</emphasis>)
-          </para>
-        </listitem>
+    <listitem>
+      <para>
+        <literal><ulink url="https://code.launchpad.net/~mysql/mysql-server/mysql-5.1-telco-6.3">MySQL
+        Cluster NDB 6.3</ulink></literal> (<emphasis>CURRENT</emphasis>)
+      </para>
+    </listitem>
 
-      </itemizedlist>
+    <listitem>
+      <para>
+        <literal><ulink url="https://code.launchpad.net/~mysql/mysql-server/mysql-cluster-7.0">MySQL
+        Cluster NDB 7.0</ulink></literal> (<emphasis>CURRENT</emphasis>)
+      </para>
+    </listitem>
 
-      The MySQL Cluster development sources maintained at
-      <ulink url="https://code.launchpad.net/~mysql/"/> are licensed
-      under the GPL. For information about obtaining MySQL sources using
-      Bazaar and building them yourself, see
-      <xref linkend="installing-source-tree"/>.
-    </para>
+  </itemizedlist>
 
-  </formalpara>
+  <para>
+    The MySQL Cluster development sources maintained at
+    <ulink url="https://code.launchpad.net/~mysql/"/> are licensed under
+    the GPL. For information about obtaining MySQL sources using Bazaar
+    and building them yourself, see
+    <xref linkend="installing-source-tree"/>.
+  </para>
 
   <para>
     Currently, MySQL Cluster NDB 6.3, MySQL Cluster NDB 7.0, and MySQL

@@ -383,53 +364,53 @@
 
     <para>
       More information may be found in the following places:
+    </para>
 
-      <itemizedlist>
+  </formalpara>
 
-        <listitem>
-          <para>
-            Answers to some commonly asked questions about Cluster may
-            be found in the <xref linkend="faqs-mysql-cluster"/>.
-          </para>
-        </listitem>
+  <itemizedlist>
 
-        <listitem>
-          <para>
-            The MySQL Cluster mailing list:
-            <ulink url="http://lists.mysql.com/cluster"/>.
-          </para>
-        </listitem>
+    <listitem>
+      <para>
+        Answers to some commonly asked questions about Cluster may be
+        found in the <xref linkend="faqs-mysql-cluster"/>.
+      </para>
+    </listitem>
 
-        <listitem>
-          <para>
-            The MySQL Cluster Forum:
-            <ulink url="&base-url-forum-list;?25"/>.
-          </para>
-        </listitem>
+    <listitem>
+      <para>
+        The MySQL Cluster mailing list:
+        <ulink url="http://lists.mysql.com/cluster"/>.
+      </para>
+    </listitem>
 
-        <listitem>
-          <para>
-            Many MySQL Cluster users and some of the MySQL Cluster
-            developers blog about their experiences with Cluster, and
-            make feeds of these available through
-            <ulink url="http://www.planetmysql.org/">PlanetMySQL</ulink>.
-          </para>
-        </listitem>
+    <listitem>
+      <para>
+        The MySQL Cluster Forum:
+        <ulink url="&base-url-forum-list;?25"/>.
+      </para>
+    </listitem>
 
-        <listitem>
-          <para>
-            If you are new to MySQL Cluster, you may find our Developer
-            Zone article
-            <citetitle><ulink url="http://dev.mysql.com/tech-resources/articles/mysql-cluster-for-two-servers.html">
-            How to set up a MySQL Cluster for two
-            servers</ulink></citetitle> to be helpful.
-          </para>
-        </listitem>
+    <listitem>
+      <para>
+        Many MySQL Cluster users and some of the MySQL Cluster
+        developers blog about their experiences with Cluster, and make
+        feeds of these available through
+        <ulink url="http://www.planetmysql.org/">PlanetMySQL</ulink>.
+      </para>
+    </listitem>
 
-      </itemizedlist>
-    </para>
+    <listitem>
+      <para>
+        If you are new to MySQL Cluster, you may find our Developer Zone
+        article
+        <citetitle><ulink url="http://dev.mysql.com/tech-resources/articles/mysql-cluster-for-two-servers.html">
+        How to set up a MySQL Cluster for two
+        servers</ulink></citetitle> to be helpful.
+      </para>
+    </listitem>
 
-  </formalpara>
+  </itemizedlist>
 
   <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="mysql-cluster-overview.xml"/>
 


Thread
svn commit - mysqldoc@docsrva: r23073 - trunk/refman-5.1jon.stephens11 Oct