MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:jon Date:May 21 2008 3:12pm
Subject:svn commit - mysqldoc@docsrva: r10799 - in trunk: it/refman-5.1 pt/refman-5.1 refman-5.1 refman-5.1-maria
View as plain text  
Author: jstephens
Date: 2008-05-21 17:12:31 +0200 (Wed, 21 May 2008)
New Revision: 10799

Log:

Rewrite of 5.1/NDB 6.x Cluster Features (mysql-cluster-roadmap)

  - Changed titles (to help avoid confusion with changelogs)
  - Cut items of no major importance
  - Restructured with <formalpara>s (for inline titles)
  - Expanded descriptions
  - Added links for most items to more info in main part of 
    Cluster chapter
  - Added new item descriptions:
    - Distribution Awareness
    - Realtime Extensions
    - Epoll Support on Linux

Updated dependencies



Modified:
   trunk/it/refman-5.1/Makefile.depends
   trunk/it/refman-5.1/mysql-cluster-roadmap.xml
   trunk/pt/refman-5.1/Makefile.depends
   trunk/pt/refman-5.1/mysql-cluster-roadmap.xml
   trunk/refman-5.1-maria/Makefile.depends
   trunk/refman-5.1/Makefile.depends
   trunk/refman-5.1/mysql-cluster-roadmap.xml


Modified: trunk/it/refman-5.1/Makefile.depends
===================================================================
--- trunk/it/refman-5.1/Makefile.depends	2008-05-21 12:39:50 UTC (rev 10798)
+++ trunk/it/refman-5.1/Makefile.depends	2008-05-21 15:12:31 UTC (rev 10799)
Changed blocks: 3, Lines Added: 9, Lines Deleted: 0; 1882 bytes

@@ -1754,6 +1754,7 @@
 	../../ndbapi/metadata/class-ndboperation.idmap \
 	../../ndbapi/metadata/class-ndbtransaction.idmap \
 	../../ndbapi/metadata/class-table.idmap \
+	../../ndbapi/metadata/interface-ndbrecord.idmap \
 	../../ndbapi/metadata/mgm-api.idmap \
 	../../ndbapi/metadata/ndb-errors.idmap \
 	../../ndbapi/metadata/ndb-internals.idmap \

@@ -2194,9 +2195,16 @@
 mysql_cluster_roadmap_IMAGES =
 mysql_cluster_roadmap_SOURCES = mysql-cluster-roadmap.xml $(mysql_cluster_roadmap_INCLUDES)
 mysql_cluster_roadmap_IDMAPS = \
+	../../ndbapi/metadata/interface-ndbrecord.idmap \
+	../../ndbapi/metadata/ndb-internals.idmap \
+	../../refman-5.1/metadata/mysql-cluster-backup.idmap \
+	../../refman-5.1/metadata/mysql-cluster-configuration.idmap \
 	../../refman-5.1/metadata/mysql-cluster-disk-data.idmap \
 	../../refman-5.1/metadata/mysql-cluster-limitations.idmap \
+	../../refman-5.1/metadata/mysql-cluster-management.idmap \
 	../../refman-5.1/metadata/mysql-cluster-news-core.idmap \
+	../../refman-5.1/metadata/mysql-cluster-optvar-core.idmap \
+	../../refman-5.1/metadata/mysql-cluster-process-management.idmap \
 	../../refman-5.1/metadata/mysql-cluster-replication.idmap \
 	../../refman-5.1/metadata/mysql-cluster-roadmap.idmap \
 	../../refman-5.1/metadata/partitioning.idmap \

@@ -2358,6 +2366,7 @@
 	../../ndbapi/metadata/class-dictionary.idmap \
 	../../ndbapi/metadata/class-ndb-cluster-connection.idmap \
 	../../ndbapi/metadata/class-ndb.idmap \
+	../../ndbapi/metadata/interface-ndbrecord.idmap \
 	../../ndbapi/metadata/mgm-api.idmap \
 	../../ndbapi/metadata/ndb-errors.idmap \
 	../../ndbapi/metadata/ndb-internals.idmap \


Modified: trunk/it/refman-5.1/mysql-cluster-roadmap.xml
===================================================================
--- trunk/it/refman-5.1/mysql-cluster-roadmap.xml	2008-05-21 12:39:50 UTC (rev 10798)
+++ trunk/it/refman-5.1/mysql-cluster-roadmap.xml	2008-05-21 15:12:31 UTC (rev 10799)
Changed blocks: 12, Lines Added: 866, Lines Deleted: 551; 66769 bytes

@@ -19,11 +19,6 @@
     <primary>New features in MySQL Cluster</primary>
   </indexterm>
 
-  <remark role="todo">
-    [js] Update to get rid of items already implemented that were listed
-    as "future" items here. (Waiting on feedback from Jeb, et al.)
-  </remark>
-
   <remark role="note">
     [js] Altered previously version-specific section ID, title.
   </remark>

@@ -31,35 +26,143 @@
   <remark>
     Author: Jon Stephens. Based on Mikael Ronström's "Cluster News"
     announcement of 2005-04-06 and other info from Mikael Ronström,
-    Jonas Oreland, et al.
+    Jonas Oreland, et al. Updated with information from NDB developers
+    and support staff; May 2008 reorganisation inspired and assisted by
+    Johan Andersson.
   </remark>
 
-  <remark role="todo">
-    [pd] I see nothing for next-series. [js] Commented out reference for
-    now.
-  </remark>
-
   <para>
     In this section, we discuss changes in the implementation of MySQL
     Cluster in MySQL &current-series; and &mccge-series; as compared to
     MySQL &previous-series;.
+  </para>
 
-<!-- 
-      We also discuss our roadmap for further improvements to MySQL Cluster 
-      as currently planned for MySQL &next-series;. 
+<!--  
+  <para>
+    
+    <remark role="TODO">
+      [js] Uncomment and expand this para when we have some likely future
+      improvements to describe, or possibly add new section for these. 
+    </remark>
+    We also discuss our roadmap for further improvements to MySQL Cluster 
+    as currently planned for MySQL &next-series;.
+  </para>
 -->
-  </para>
 
   <para>
     There are a number of significant changes in the implementation of
-    the <literal>NDBCLUSTER</literal> storage engine in MySQL 5.1 as
-    compared to that in MySQL 5.0. For an overview of these changes, see
-    <xref linkend="mysql-cluster-changes-5-1"/>
+    the <literal>NDBCLUSTER</literal> storage engine in mainline MySQL
+    5.1 releases up to and including MySQL 5.1.23 as compared to that in
+    MySQL 5.0; &mccge-series; makes further changes and improvements in
+    MySQL Cluster in addition to these. The changes and features most
+    likely to be of interest are shown in the following table:
+
+    <remark role="TODO">
+      [js] Add IDs to items in subsections and make entries in this
+      table links to these...
+    </remark>
+
+    <informaltable>
+      <tgroup cols="1">
+        <colspec colwidth="50*"/>
+        <thead>
+          <row>
+            <entry><link linkend="mysql-cluster-changes-5-1">MySQL 5.1 (through
+              5.1.23)</link></entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+            <entry>MySQL Cluster Replication</entry>
+          </row>
+          <row>
+            <entry>Disk Data storage</entry>
+          </row>
+          <row>
+            <entry>Variable-size columns</entry>
+          </row>
+          <row>
+            <entry>User-defined partitioning</entry>
+          </row>
+          <row>
+            <entry>Autodiscovery of table schema changes</entry>
+          </row>
+        </tbody>
+      </tgroup>
+      <tgroup cols="1">
+        <colspec colwidth="50*"/>
+        <thead>
+          <row>
+            <entry><link linkend="mysql-cluster-changes-5-1-ndb-6-1">&mccge-series;
+              6.1</link></entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+            <entry>Greater number of cluster nodes</entry>
+          </row>
+          <row>
+            <entry>Disabling of arbitration</entry>
+          </row>
+          <row>
+            <entry>Additional <literal>DUMP</literal> commands</entry>
+          </row>
+          <row>
+            <entry>Faster Disk Data backups</entry>
+          </row>
+          <row>
+            <entry>Batched slave updates</entry>
+          </row>
+        </tbody>
+      </tgroup>
+      <tgroup cols="1">
+        <colspec colwidth="50*"/>
+        <thead>
+          <row>
+            <entry><link linkend="mysql-cluster-changes-5-1-ndb-6-2">&mccge-series;
+              6.2</link></entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+            <entry>y</entry>
+          </row>
+          <row>
+            <entry>y</entry>
+          </row>
+          <row>
+            <entry>x</entry>
+            <entry>y</entry>
+          </row>
+        </tbody>
+      </tgroup>
+      <tgroup cols="1">
+        <colspec colwidth="50*"/>
+        <thead>
+          <row>
+            <entry><link linkend="mysql-cluster-changes-5-1-ndb-6-3">&mccge-series;
+              6.3</link></entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+            <entry>y</entry>
+          </row>
+          <row>
+            <entry>y</entry>
+          </row>
+          <row>
+            <entry>x</entry>
+            <entry>y</entry>
+          </row>
+        </tbody>
+      </tgroup>
+    </informaltable>
   </para>
 
   <section id="mysql-cluster-changes-5-1">
 
-    <title>MySQL Cluster Changes in MySQL 5.1</title>
+    <title>Features Added in MySQL 5.1 Cluster</title>
 
     <indexterm>
       <primary>MySQL Cluster</primary>

@@ -68,7 +171,10 @@
 
     <para>
       A number of new features for MySQL Cluster have been implemented
-      in MySQL 5.1:
+      in MySQL 5.1 through MySQL 5.1.23, when support for MySQL Cluster
+      was moved to &mccge-series;. All of the features in the following
+      list are also available in all &mccge-series; (6.1 and later)
+      releases.
     </para>
 
     <itemizedlist>

@@ -79,11 +185,21 @@
           <title>Integration of MySQL Cluster into MySQL Replication</title>
 
           <para>
-            This makes it possible to update from any MySQL Server in
-            the cluster and still have the MySQL Replication handled by
-            one of the MySQL Servers in the cluster, with the state of
-            the slave side remaining consistent with the cluster acting
-            as the master.
+            MySQL Cluster Replication makes it possible to replicate
+            from one MySQL Cluster to another. Updates on any SQL node
+            (MySQL server) in the cluster acting as the master are
+            replicated to the slave cluster; the state of the slave side
+            remains consistent with the cluster acting as the master.
+            This is sometimes referred to as <firstterm>asynchronous
+            replication</firstterm> between clusters, providing
+            <firstterm>geographic redundancy</firstterm>. It is also
+            possible to replicate from a MySQL Cluster acting as the
+            master to a standalone MySQL server acting as the slave, or
+            from a standalone MySQL master server to to a slave cluster;
+            in either of these cases, the standalone MySQL server uses a
+            storage engine other than <literal>NDBCLUSTER</literal>.
+            Multi-master replication setups such as circular replication
+            are also supported.
           </para>
 
         </formalpara>

@@ -96,12 +212,13 @@
       <listitem>
         <formalpara>
 
-          <title>Support for disk-based records</title>
+          <title>Support for storage of rows on disk</title>
 
           <para>
-            Records on disk are now supported. Indexed columns,
-            including the primary key hash index, must still be stored
-            in RAM; however, all other columns can be stored on disk.
+            Storage of <literal>NDBCLUSTER</literal> table data on disk
+            is now supported. Indexed columns, including the primary key
+            hash index, must still be stored in RAM; however, all other
+            columns can be stored on disk.
           </para>
 
         </formalpara>

@@ -114,16 +231,17 @@
       <listitem>
         <formalpara>
 
-          <title>Variable-sized records</title>
+          <title>Variable-size columns</title>
 
           <para>
-            A column defined as <literal>VARCHAR(255)</literal>
-            currently uses 260 bytes of storage independent of what is
-            stored in any particular record. In MySQL 5.1 Cluster
-            tables, only the portion of the column actually taken up by
-            the record will be stored. This will make possible a
-            reduction in space requirements for such columns by a factor
-            of 5 in many cases.
+            In MySQL 5.0, an <literal>NDBCLUSTER</literal> table column
+            defined as <literal>VARCHAR(255)</literal> used 260 bytes of
+            storage independent of what was stored in any particular
+            record. In MySQL 5.1 Cluster tables, only the portion of the
+            column actually taken up by the record is stored. This makes
+            possible a significant reduction in space requirements for
+            such columns as compared to previous release series &mdash;
+            by a factor of up to 5 in many cases.
           </para>
 
         </formalpara>

@@ -157,8 +275,10 @@
         <para>
           The MySQL Server can also determine whether it is possible to
           <quote>prune away</quote> some of the partitions from the
-          <literal>WHERE</literal> clause. See
-          <xref linkend="partitioning-pruning"/>.
+          <literal>WHERE</literal> clause, which can greatly speed up
+          some queries. See <xref linkend="partitioning-pruning"/>, for
+          information about designing tables and queries to take
+          advantage of partition pruning.
         </para>
       </listitem>
 

@@ -168,25 +288,104 @@
           <title>Autodiscovery of table schema changes</title>
 
           <para>
-            In MySQL 5.1, you no longer need to issue <literal>FLUSH
-            TABLES</literal> or a <quote>dummy</quote>
+            In MySQL 5.0, it was necessary to issue a <literal>FLUSH
+            TABLES</literal> statement or a <quote>dummy</quote>
             <literal>SELECT</literal> in order for new
-            <literal>NDB</literal> tables or changes made to schemas of
-            existing <literal>NDB</literal> tables on one SQL node to be
-            visible on the cluster's other SQL nodes.
+            <literal>NDBCLUSTER</literal> tables or changes made to
+            schemas of existing <literal>NDBCLUSTER</literal> tables on
+            one SQL node to be visible on the cluster&apos;s other SQL
+            nodes. In MySQL 5.1, this is no longer necessary; new
+            Cluster tables and changes in the definitions of existing
+            <literal>NDBCLUSTER</literal> tables made on one SQL node
+            are immediately visible to all SQL nodes connected to the
+            cluster.
           </para>
 
         </formalpara>
 
         <note>
           <para>
-            When creating a new database, it is still necessary to issue
-            a <literal>CREATE DATABASE</literal> or <literal>CREATE
-            SCHEMA</literal> statement on each SQL node in the cluster.
+            When creating a new database, it is still necessary in MySQL
+            5.1 to issue a <literal>CREATE DATABASE</literal> or
+            <literal>CREATE SCHEMA</literal> statement on each SQL node
+            in the cluster.
           </para>
         </note>
       </listitem>
 
+      <listitem>
+        <formalpara>
+
+          <title>Distribution awareness (NDB API)</title>
+
+          <para id="mysql-cluster-changes-5-1-distribution-awareness">
+            <firstterm>Distribution awareness</firstterm> is a mechanism
+            by which the best data node is automatically selected to be
+            queried for information. (Conceptually, it is similar in
+            some ways to partition pruning (see
+            <xref linkend="partitioning-pruning"/>). To take advantage
+            of distribution awareness, you should do the following:
+
+            <orderedlist>
+
+              <listitem>
+                <para>
+                  Determine which table column is most likely to be used
+                  for finding matching records.
+                </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  Make this column part of the table&apos;s primary key.
+                </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  Explicitly partition the table by
+                  <literal>KEY</literal>, using this column as the
+                  table&apos; partitioning key.
+                </para>
+              </listitem>
+
+            </orderedlist>
+
+            Following these steps causes records with the same value for
+            the partitioning column to be stored on the same partition
+            (that is, in the same node group). When reading data,
+            transactions are begun on the data node actually having the
+            desired rows instead of this node being determined by the
+            usual round-robin mechanism.
+
+            <important>
+              <para>
+                In order to see a measureable impact on performance, the
+                cluster must have at least four data nodes, since, with
+                only two data nodes, both data nodes have exactly the
+                same data.
+              </para>
+            </important>
+
+            Using distribution awareness can yield performance increase
+            of as great as 45% when using four data nodes, and possibly
+            more when using a greater number of data nodes.
+
+            <note>
+              <para>
+                In mainline MySQL 5.1 releases, distribution awareness
+                was supported only when using the NDB API; support was
+                added for SQL and API nodes in &mccge-series; 6.3 (see
+                <xref linkend="mysql-cluster-changes-5-1-ndb-6-3"/>,
+                which includes an example showing how to create a table
+                in order to take advantage of distribution awareness).
+              </para>
+            </note>
+          </para>
+
+        </formalpara>
+      </listitem>
+
     </itemizedlist>
 
     <para>

@@ -215,126 +414,97 @@
 
   </section>
 
-<section id="mysql-cluster-changes-5-1-ndb-6-1">
+  <section id="mysql-cluster-changes-5-1-ndb-6-1">
 
-    <title>Overview of MySQL Cluster Changes in &mccge-series; 6.1.x</title>
+    <title>Features Added in &mccge-series; 6.1</title>
 
     <para>
       The following list provides an overview of significant feature
-      additions and changes made in &mccge-series; 6.1.x releases. For
-      detailed information, see
-      <xref linkend="mysql-cluster-news-6-1"/>.
+      additions and changes made in &mccge-series; 6.1. All of the
+      changes in this list are also available in &mccge-series; 6.2 and
+      6.3 releases. For detailed information about all changes made in
+      &mccge-series; 6.1, see <xref linkend="mysql-cluster-news-6-1"/>.
 
       <itemizedlist>
 
         <listitem>
-          <para>
-            Enhanced backup status reporting, aided in part by the
-            introduction of a <literal>BackupReportFrequency</literal>
-            configuration parameter (MySQL 5.1.14-ndb-6.1.0).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            Maximum number of all nodes in a cluster increased to 255
-            (MySQL 5.1.14-ndb-6.1.1).
-          </para>
-        </listitem>
+            <title>Increased number of cluster nodes</title>
 
-        <listitem>
-          <para>
-            Addition of the <literal>NDB</literal> API
-            <literal>Dictionary::listEvents()</literal> method (MySQL
-            5.1.15-ndb-6.1.3).
-          </para>
-        </listitem>
+            <para>
+              The maximum number of all nodes in a MySQL Cluster has
+              been increased to 255. For more information, see
+              <xref linkend="mysql-cluster-limitations-multiple-nodes"/>.
+            </para>
 
-        <listitem>
-          <para>
-            Ability to disable arbitration, by setting
-            <literal>ArbitrationRank=0</literal> on all nodes (MySQL
-            5.1.15-ndb-6.1.3).
-          </para>
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Inclusion of the <command>ndbd_redo_log_reader</command>
-            utility in the default build (MySQL 5.1.15-ndb-6.1.3).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            New methods of the <literal>Ndb_cluster_connection</literal>
-            class, making it possible to iterate over all existing
-            <literal>Ndb</literal> objects (MySQL 5.1.15-ndb-6.1.4).
-          </para>
-        </listitem>
+            <title>Disabling arbitration</title>
 
-        <listitem>
-          <para>
-            <option>--ndb-wait-connected</option> option for
-            <command>mysqld</command>, causing <command>mysqld</command>
-            wait a specified amount of time to be connected to the
-            cluster before starting to accept client connections (MySQL
-            5.1.15-ndb-6.1.4).
-          </para>
-        </listitem>
+            <para>
+              It is now possible to disable arbitration by setting
+              <literal>ArbitrationRank=0</literal> on all cluster
+              management and SQL nodes. For more information, see
+              <link linkend="mysql-cluster-param-mgm-definition-arbitrationrank"><citetitle>Defining
+              the Management Server:
+              <literal>ArbitrationRank</literal></citetitle></link> and
+              <link linkend="mysql-cluster-param-api-definition-arbitrationrank"><citetitle>Defining
+              SQL and Other API Nodes:
+              <literal>ArbitrationRank</literal></citetitle></link>.
+            </para>
 
-        <listitem>
-          <para>
-            Improved data node memory allocation (MySQL
-            5.1.15-ndb-6.1.4).
-          </para>
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Ability to pipe output of <command>ndb_restore</command> to
-            CSV file (MySQL 5.1.15-ndb-6.1.5).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            A new <literal>FragmentLogFileSize</literal> configuration
-            parameter makes it possible to set the size of redo log
-            files (MySQL 5.1.15-ndb-6.1.11).
-          </para>
+            <title>Additional <literal>DUMP</literal> commands</title>
+
+            <para>
+              New management client <literal>DUMP</literal> commands
+              provide help with tracking transactions, scan operations,
+              and locks. See
+              <xref linkend="mysql-cluster-mgm-client-commands"/>, and
+              <xref linkend="ndb-internals-dump-commands"/>, for more
+              information.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            <literal>MaxAllocate</literal> configuration parameter makes
-            it possible to set the maximum size of the allocation unit
-            used for table memory (MySQL 5.1.15-ndb-6.1.12).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            New management client <literal>DUMP</literal> commands
-            providing help with tracking transactions, scan operations,
-            and locks (MySQL 5.1.15-ndb-6.1.12).
-          </para>
+            <title>Faster Disk Data backups</title>
+
+            <para>
+              Improvements in backups of Disk Data tables can yield a 10
+              to 15% increase in backup speed of Disk Data tables.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Improvements in backups of Disk Data tables resulted in a 10
-            to 15% increase in backup speed of Disk Data tables (MySQL
-            5.1.15-ndb-6.1.13).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            Batching of updates on cluster replication slaves, enabled
-            using the <option>--slave-allow-batching</option> option for
-            <command>mysqld</command> (MySQL 5.1.15-ndb-6.1.17).
-          </para>
+            <title>Batched slave updates</title>
+
+            <para>
+              Batching of updates on cluster replication slaves, enabled
+              using the <option>--slave-allow-batching</option> option
+              for <command>mysqld</command>, increases replication
+              efficiency. For more information, see
+              <xref linkend="mysql-cluster-replication-starting"/>.
+            </para>
+
+          </formalpara>
         </listitem>
 
       </itemizedlist>

@@ -344,213 +514,281 @@
 
   <section id="mysql-cluster-changes-5-1-ndb-6-2">
 
-    <title>Overview of MySQL Cluster Changes in &mccge-series; 6.2.x</title>
+    <title>Features Added in &mccge-series; 6.2</title>
 
     <para>
       The following list provides an overview of significant feature
-      additions and changes made in &mccge-series; 6.2.x releases. For
-      detailed information, see
+      additions and changes made in &mccge-series; 6.2. All of the
+      changes in this list are also available in &mccge-series; 6.3 .
+      For more detailed information about all feature changes and
+      bugfixes made in &mccge-series; 6.2, see
       <xref linkend="mysql-cluster-news-6-2"/>.
 
       <itemizedlist>
 
         <listitem>
-          <para>
-            Mutliple cluster connections by a single MySQL server using
-            the <option>--ndb-cluster-connection-pool</option> startup
-            option for <command>mysqld</command> (MySQL
-            5.1.18-ndb-6.2.2).
-          </para>
+          <formalpara>
+
+            <title>Enhanced backup status reporting</title>
+
+            <para>
+              Backup status reporting has been improved, aided in part
+              by the introduction of a
+              <literal>BackupReportFrequency</literal> configuration
+              parameter; see
+              <link linkend="mysql-cluster-param-ndbd-definition-backupreportfrequency"><citetitle>Defining
+              Data Nodes:
+              <literal>BackupReportFrequency</literal></citetitle></link>,
+              for more information.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            New management client <literal>DUMP</literal> commands
-            providing help with tracking transactions, scan operations,
-            and locks (MySQL 5.1.18-ndb-6.2.2).
-          </para>
+          <formalpara>
+
+            <title>Multiple cluster connections per SQL node</title>
+
+            <para>
+              A single MySQL server acting as a MySQL Cluster SQL node
+              can employ multiple connections to the cluster using the
+              <option>--ndb-cluster-connection-pool</option> startup
+              option for <command>mysqld</command>. This option is
+              described in
+              <link linkend="option_mysqld_ndb-cluster-connection-pool"><citetitle>MySQL
+              Cluster-Related Command Options for
+              <command>mysqld</command>:
+              <option>--ndb-cluster-connection-pool</option>
+              option</citetitle></link>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            The addition of the <literal>NdbRecord</literal> interface
-            and handler for the <literal>NDB</literal> API (MySQL
-            5.1.19-ndb-6.2.3).
-          </para>
+          <formalpara>
+
+            <title>New data access interface</title>
+
+            <para>
+              The <literal>NdbRecord</literal> interface provides a new
+              and simplified data handler for use in NDB API
+              applications. See <xref linkend="interface-ndbrecord"/>,
+              for more information.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Enhanced reporting, aided in part by the introduction of a
-            <literal>BackupReportFrequency</literal> configuration
-            parameter as well as new management client <literal>REPORT
-            BackupStatus</literal> and <literal>REPORT
-            MemoryUsage</literal> commands (MySQL 5.1.19-ndb-6.2.3).
-          </para>
+          <formalpara>
+
+            <title>New reporting commands</title>
+
+            <para>
+              The new management client <literal>REPORT
+              BackupStatus</literal> and <literal>REPORT
+              MemoryUsage</literal> commands provide better access to
+              information about the status of MySQL Cluster backups and
+              how much memory is being used by MySQL Cluster for data
+              and index storage. See
+              <xref linkend="mysql-cluster-mgm-client-commands"/>, for
+              more information about the <literal>REPORT</literal>
+              commands. In addition, in-progress status reporting is
+              provided by the <command>ndb_restore</command> utility;
+              see <xref linkend="mysql-cluster-restore"/>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            In-progress status reporting by
-            <command>ndb_restore</command> (MySQL 5.1.19-ndb-6.2.3).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            Batching of updates on cluster replication slaves, enabled
-            using the <option>--slave-allow-batching</option> option for
-            <command>mysqld</command> (MySQL 5.1.19-ndb-6.2.3).
-          </para>
+            <title>Improved memory allocation and configuration</title>
+
+            <para>
+              Memory is now allocated by the <literal>NDB</literal>
+              kernel to tables on a page-by-page basis, which
+              significantly reduces the memory overhead required for
+              maintaining <literal>NDBCLUSTER</literal> tables. In
+              addition, the <literal>MaxAllocate</literal> configuration
+              parameter now makes it possible to set the maximum size of
+              the allocation unit used for table memory; for more
+              information about this configuratin parameter, see
+              <link linkend="mysql-cluster-param-ndbd-definition-maxallocate"><citetitle>Defining
+              Data Nodes:
+              <literal>MaxAllocate</literal></citetitle></link>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Improved memory allocation in the <literal>NDB</literal>
-            kernel (MySQL 5.1.19-ndb-6.2.3).
-          </para>
+          <para></para>
         </listitem>
 
         <listitem>
-          <para>
-            Improvements in backups of Disk Data tables resulted in a 10
-            to 15% increase in backup speed of Disk Data tables (MySQL
-            5.1.19-ndb-6.2.3).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            <literal>MaxAllocate</literal> configuration parameter makes
-            it possible to set the maximum size of the allocation unit
-            used for table memory (MySQL 5.1.19-ndb-6.2.3).
-          </para>
+            <title>Choice of fixed-width or variable-width columns</title>
+
+            <para>
+              You can control whether fixed-width or variable-width
+              storage is used for a given column of an
+              <literal>NDB</literal> table by employing of the
+              <literal>COLUMN_FORMAT</literal> specifier as part of the
+              column&apos;s definition in a <literal>CREATE
+              TABLE</literal> or <literal>ALTER TABLE</literal>
+              statement. In addition, the ability to control whether a
+              given column of an <literal>NDB</literal> table is stored
+              in memory or on disk, using the <literal>STORAGE</literal>
+              specifier as part of the column's definition in a
+              <literal>CREATE TABLE</literal> or <literal>ALTER
+              TABLE</literal> statement. For more information, see
+              <xref linkend="create-table"/>, and
+              <xref linkend="alter-table"/>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            The ability to control whether fixed-width or variable-width
-            storage is used for a given column of an
-            <literal>NDB</literal> table by means of the
-            <literal>COLUMN_FORMAT</literal> specifier as part of the
-            column's definition in a <literal>CREATE TABLE</literal> or
-            <literal>ALTER TABLE</literal> statement. In addition, the
-            ability to control whether a given column of an
-            <literal>NDB</literal> table is stored in memory or on disk,
-            using the <literal>STORAGE</literal> specifier as part of
-            the column's definition in a <literal>CREATE TABLE</literal>
-            or <literal>ALTER TABLE</literal> statement. (MySQL
-            5.1.19-ndb-6.2.5)
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            The <option>--bind-address</option> cluster management
-            server startup option makes it possible to restrict
-            management client connections to <command>ndb_mgmd</command>
-            to a single host (IP address or hostname) and port. (MySQL
-            5.1.19-ndb-6.2.5)
-          </para>
+            <title>Controlling management client connections</title>
+
+            <para>
+              The <option>--bind-address</option> cluster management
+              server startup option makes it possible to restrict
+              management client connections to
+              <command>ndb_mgmd</command> to a single host (IP address
+              or hostname) and port, which can make MySQL Cluster
+              management operations more secure. For more information
+              about this option, see
+              <xref linkend="mysql-cluster-ndb-mgmd-command-options"/>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Due to a change in the protocol for handling of global
-            checkpoints (GCPs handled in this manner sometimes being
-            referred to as <quote>micro-GCPs</quote>), it is now
-            possible to control how often the GCI number is updated, and
-            how often global checkpoints are written to disk, using the
-            <literal>TimeBetweenEpochs</literal> configuration
-            parameter. This improves the reliability and performance of
-            MySQL Cluster Replication. (MySQL 5.1.22-ndb-6.2.5)
-          </para>
+          <formalpara>
 
-          <para>
-            Additional fine-tuning of micro-GCPs is made possible using
-            the <literal>TimeBetweenEpochsTimeout</literal> confiuration
-            parameter. (MySQL 5.1.22-ndb-6.2.7)
-          </para>
+            <title>Micro-GCPs</title>
+
+            <para>
+              Due to a change in the protocol for handling of global
+              checkpoints (GCPs handled in this manner sometimes being
+              referred to as <quote>micro-GCPs</quote>), it is now
+              possible to control how often the GCI number is updated,
+              and how often global checkpoints are written to disk,
+              using the <literal>TimeBetweenEpochs</literal>
+              configuration parameter. This improves the reliability and
+              performance of MySQL Cluster Replication. For more
+              information, see
+              <link linkend="mysql-cluster-param-ndbd-definition-timebetweenepochs"><citetitle>Defining
+              Data Nodes:
+              <literal>TimeBetweenEpochs</literal></citetitle></link>
+              and
+              <link linkend="mysql-cluster-param-ndbd-definition-timebetweenepochstimeout"><citetitle>Defining
+              Data Nodes:
+              <literal>TimeBetweenEpochsTimeout</literal></citetitle></link>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Support for the online <literal>ALTER TABLE</literal>
-            operations <literal>ADD COLUMN</literal>, <literal>ADD
-            INDEX</literal>, and <literal>DROP INDEX</literal> is
-            available. When the <literal>ONLINE</literal> keyword is
-            used, the <literal>ALTER TABLE</literal> is non-copying,
-            which means that indexes do not have to be re-created, which
-            provides these benefits:
+          <formalpara>
 
-            <itemizedlist>
+            <title>Core online schema change support</title>
 
-              <listitem>
-                <para>
-                  Single user mode is no longer required for
-                  <literal>ALTER TABLE</literal> operations that can be
-                  performed online.
-                </para>
-              </listitem>
+            <para>
+              Support for the online <literal>ALTER TABLE</literal>
+              operations <literal>ADD COLUMN</literal>, <literal>ADD
+              INDEX</literal>, and <literal>DROP INDEX</literal> is
+              available. When the <literal>ONLINE</literal> keyword is
+              used, the <literal>ALTER TABLE</literal> is non-copying,
+              which means that indexes do not have to be re-created,
+              which provides these benefits:
 
-              <listitem>
-                <para>
-                  Transactions can continue during <literal>ALTER
-                  TABLE</literal> operations that can be performed
-                  online.
-                </para>
-              </listitem>
+              <itemizedlist>
 
-              <listitem>
-                <para>
-                  Tables being altered online are not locked.
-                </para>
-              </listitem>
+                <listitem>
+                  <para>
+                    Single user mode is no longer required for
+                    <literal>ALTER TABLE</literal> operations that can
+                    be performed online.
+                  </para>
+                </listitem>
 
-            </itemizedlist>
+                <listitem>
+                  <para>
+                    Transactions can continue during <literal>ALTER
+                    TABLE</literal> operations that can be performed
+                    online.
+                  </para>
+                </listitem>
 
-            Online <literal>CREATE INDEX</literal> and <literal>DROP
-            INDEX</literal> statements are also supported. Online
-            changes can be suppressed using the
-            <literal>OFFLINE</literal> key word. See
-            <xref linkend="alter-table"/>,
-            <xref linkend="create-index"/>, and
-            <xref linkend="drop-index"/>, for more detailed information.
-            (MySQL 5.1.22-ndb-6.2.5)
-          </para>
+                <listitem>
+                  <para>
+                    Tables being altered online are not locked.
+                  </para>
+                </listitem>
 
-          <para>
-            Additional checks against unsupported
-            <literal>ONLINE</literal> operations were implemented, and
-            unnecessary checks were removed. (MySQL 5.1.22-ndb-6.2.7)
-          </para>
+              </itemizedlist>
+
+              Online <literal>CREATE INDEX</literal> and <literal>DROP
+              INDEX</literal> statements are also supported. Online
+              changes can be suppressed using the
+              <literal>OFFLINE</literal> key word. See
+              <xref linkend="alter-table"/>,
+              <xref linkend="create-index"/>, and
+              <xref linkend="drop-index"/>, for more detailed
+              information.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            More information has been added to the
-            <literal>mysql.ndb_binlog_index</literal> table so that it
-            is possible to determine which originating epochs have been
-            applied inside an epoch. This is useful in 3-way
-            replication. (MySQL 5.1.22-ndb-6.2.6)
-          </para>
+          <formalpara>
+
+            <title><literal>mysql.ndb_binlog_index</literal> improvements</title>
+
+            <para>
+              More information has been added to the
+              <literal>mysql.ndb_binlog_index</literal> table so that it
+              is possible to determine which originating epochs have
+              been applied inside an epoch. This is particularly useful
+              for 3-way replication. See
+              <xref linkend="mysql-cluster-replication-schema"/>, for
+              more information.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            <literal>DUMP 8011</literal> provides subscription data in
-            the cluster log. (MySQL 5.1.22-ndb-6.2.9)
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            The <literal>MaxBufferedEpochs</literal> data node
-            configuration parameter provides control over the maximum
-            number of unprocessed epochs by which a subscribing node can
-            lag. Subscribers which exceed this number are disconnected
-            and forced to reconnect. (MySQL 5.1.23-ndb-6.2.14)
-          </para>
+            <title>Epoch lag control</title>
+
+            <para>
+              The <literal>MaxBufferedEpochs</literal> data node
+              configuration parameter provides a means to control the
+              maximum number of unprocessed epochs by which a
+              subscribing node can lag. Subscribers which exceed this
+              number are disconnected and forced to reconnect. For a
+              discussion of this configuration parameter, see
+              <link linkend="mysql-cluster-param-ndbd-definition-maxbufferedepochs"><citetitle>Defining
+              Data Nodes:
+              <literal>MaxBufferedEpochs</literal></citetitle></link>.
+            </para>
+
+          </formalpara>
         </listitem>
 
       </itemizedlist>

@@ -560,211 +798,112 @@
 
   <section id="mysql-cluster-changes-5-1-ndb-6-3">
 
-    <title>Overview of MySQL Cluster Changes in &mccge-series; 6.3.x</title>
+    <title>Features Added in &mccge-series; 6.3</title>
 
     <para>
       The following list provides an overview of significant feature
-      additions and changes made in &mccge-series; 6.3.x releases. For
-      detailed information, see
+      additions and changes first made in &mccge-series; 6.3. For more
+      detailed information about all feature changes and bugfixes made
+      in &mccge-series; 6.3, see
       <xref linkend="mysql-cluster-news-6-3"/>.
 
       <itemizedlist>
 
         <listitem>
-          <para>
-            Enhanced reporting, aided in part by the introduction of a
-            <literal>BackupReportFrequency</literal> configuration
-            parameter as well as new management client <literal>REPORT
-            BackupStatus</literal> and <literal>REPORT
-            MemoryUsage</literal> commands (MySQL 5.1.19-ndb-6.3.0).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            Implementation of conflict resolution for use in
-            multi-master replication (MySQL 5.1.19-ndb-6.3.0).
-          </para>
+            <title>Conflict detection and resolution</title>
 
-          <para>
-            Improvements in conflict resolution for handling
-            simultaneous updates (MySQL-5.1.22-ndb-6.3.4).
-          </para>
-        </listitem>
+            <para>
+              It is now possible to detect and resolve conflicts that
+              arise in multi-master replication scenarios, such as
+              circular replication, when different masters may try to
+              update the same row on the slave with different data. Both
+              <quote>greatest timestamp wins</quote> and <quote>same
+              timestamp wins</quote> scenarios are supported. For more
+              information, see
+              <xref linkend="mysql-cluster-replication-conflict-resolution"/>.
+            </para>
 
-        <listitem>
-          <para>
-            More information has been added to the
-            <literal>mysql.ndb_binlog_index</literal> table so that it
-            is possible to determine which originating epochs have been
-            applied inside an epoch. This is useful in 3-way
-            replication. (MySQL 5.1.22-ndb-6.3.2)
-          </para>
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            The ability to control whether fixed-width or variable-width
-            storage is used for a given column of an
-            <literal>NDB</literal> table by means of the
-            <literal>COLUMN_FORMAT</literal> specifier as part of the
-            column's definition in a <literal>CREATE TABLE</literal> or
-            <literal>ALTER TABLE</literal> statement. In addition, the
-            ability to control whether a given column of an
-            <literal>NDB</literal> table is stored in memory or on disk,
-            using the <literal>STORAGE</literal> specifier as part of
-            the column's definition in a <literal>CREATE TABLE</literal>
-            or <literal>ALTER TABLE</literal> statement. (MySQL
-            5.1.22-ndb-6.3.2)
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            The <option>--bind-address</option> cluster management
-            server startup option makes it possible to restrict
-            management client connections to <command>ndb_mgmd</command>
-            to a single host (IP address or hostname) and port. (MySQL
-            5.1.22-ndb-6.3.2)
-          </para>
-        </listitem>
+            <title>Recovery of <quote>one master, many slaves</quote> replication setups</title>
 
-        <listitem>
-          <para>
-            Due to a change in the protocol for handling of global
-            checkpoints (GCPs handled in this manner sometimes being
-            referred to as <quote>micro-GCPs</quote>), it is now
-            possible to control how often the GCI number is updated, and
-            how often global checkpoints are written to disk, using the
-            <literal>TimeBetweenEpochs</literal> configuration
-            parameter. This improves the reliability and performance of
-            MySQL Cluster Replication. (MySQL 5.1.22-ndb-6.3.2)
-          </para>
+            <para>
+              Recovery of multi-way replication setups (<quote>one
+              master, many slaves</quote>) is now supported via the
+              <option>--ndb-log-orig</option> server option and changes
+              in the <literal>mysql.ndb_binlog_index</literal> table.
+              See <xref linkend="mysql-cluster-replication-schema"/>,
+              for more information.
+            </para>
 
-          <para>
-            Additional fine-tuning of micro-GCPs is made possible using
-            the <literal>TimeBetweenEpochsTimeout</literal> confiuration
-            parameter. (MySQL 5.1.22-ndb-6.3.4)
-          </para>
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Support for the online <literal>ALTER TABLE</literal>
-            operations <literal>ADD COLUMN</literal>, <literal>ADD
-            INDEX</literal>, and <literal>DROP INDEX</literal> is
-            available. When the <literal>ONLINE</literal> keyword is
-            used, the <literal>ALTER TABLE</literal> is non-copying,
-            which means that indexes do not have to be re-created, which
-            provides these benefits:
+          <formalpara>
 
-            <itemizedlist>
+            <title>Enhanced selection options for transaction coordinator</title>
 
-              <listitem>
-                <para>
-                  Single user mode is no longer required for
-                  <literal>ALTER TABLE</literal> operations that can be
-                  performed online.
-                </para>
-              </listitem>
+            <para>
+              New values and behaviors are introduced for
+              <option>--ndb_optimized_node_selection</option> allowing
+              for greater flexibility when an SQL node chooses a
+              transaction coordinator. See
+              <link linkend="option_mysqld_ndb_optimized_node_selection"><citetitle>MySQL
+              Cluster System Variables:
+              <literal>ndb_optimized_node_selection</literal></citetitle></link>,
+              for more information.
+            </para>
 
-              <listitem>
-                <para>
-                  Transactions can continue during <literal>ALTER
-                  TABLE</literal> operations that can be performed
-                  online.
-                </para>
-              </listitem>
+          </formalpara>
+        </listitem>
 
-              <listitem>
-                <para>
-                  Tables being altered online are not locked.
-                </para>
-              </listitem>
+        <listitem>
+          <formalpara>
 
-            </itemizedlist>
+            <title>Replication heartbeats</title>
 
-            Online <literal>CREATE INDEX</literal> and <literal>DROP
-            INDEX</literal> statements are also supported. Online
-            changes can be suppressed using the
-            <literal>OFFLINE</literal> key word. See
-            <xref linkend="alter-table"/>,
-            <xref linkend="create-index"/>, and
-            <xref linkend="drop-index"/>, for more detailed information.
-            (MySQL 5.1.22-ndb-6.3.2)
-          </para>
-        </listitem>
+            <para>
+              Replication heartbeats facilitate the task of monitoring
+              and detecting failures in master-slave connections in real
+              time. This feature is implemented via a new
+              <literal>MASTER_HEARTBEAT_PERIOD =
+              <replaceable>value</replaceable></literal> clause for the
+              <literal>CHANGE MASTER TO</literal> statement and the
+              addition of two status variables
+              <literal>Slave_heartbeat_period</literal> and
+              <literal>Slave_received_heartbeats</literal>. For more
+              information, see <xref linkend="change-master-to"/>.
+            </para>
 
-        <listitem>
-          <para>
-            Recovery of multi-way replication setups (one master, many
-            slaves) is now supported via the
-            <option>--ndb-log-orig</option> server option and changes in
-            the <literal>mysql.ndb_binlog_index</literal> table. (MySQL
-            5.1.22-ndb-6.3.2)
-          </para>
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            New values and behaviors are introduced for
-            <option>--ndb_optimized_node_selection</option> allowing for
-            greater flexibility when an SQL node chooses a transaction
-            coordinator. (MySQL 5.1.22-ndb-6.3.4)
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            A <option>--bind-address</option> option has been added to a
-            number of MySQL client programs for use on computers having
-            multiple network interfaces. The option allows you to choose
-            which interface (IP address or hostname) is used to connect
-            to the MySQL server. (MySQL 5.1.22-ndb-6.3.4)
-          </para>
-        </listitem>
+            <title><literal>NDB</literal> thread locks</title>
 
-        <listitem>
-          <para>
-            A <option>--master-bind</option> option has been added to
-            <command>mysqld</command>. This makes it possible to specify
-            the network interface to use for connecting to the master by
-            a replication slave having multiple network addresses. This
-            can also be set at run time using the <literal>MASTER_BIND =
-            '<replaceable>interface</replaceable>'</literal> clause in a
-            <literal>CHANGE MASTER TO</literal> statement.(MySQL
-            5.1.22-ndb-6.3.4)
-          </para>
-        </listitem>
+            <para>
+              It is possible to lock <literal>NDB</literal> execution
+              threads and maintenance threads (such as filesystem and
+              other operating system threads) to specific CPUs on
+              multiprocessor data node hosts, and to leverage real-time
+              scheduling using configuration parameters introduced in
+              MySQL 5.1.22-ndb-6.3.4.
+            </para>
 
-        <listitem>
-          <para>
-            Replication heartbeats facilitate the task of monitoring and
-            detecting failures in master-slave connections in real time.
-            This feature is implemented via a new
-            <literal>MASTER_HEARTBEAT_PERIOD =
-            <replaceable>value</replaceable></literal> clause for the
-            <literal>CHANGE MASTER TO</literal> statement and the
-            addition of two status variables
-            <literal>Slave_heartbeat_period</literal> and
-            <literal>Slave_received_heartbeats</literal>. (MySQL
-            5.1.22-ndb-6.3.4)
-          </para>
+          </formalpara>
         </listitem>
 
         <listitem>
           <para>
-            It is possible to lock <literal>NDB</literal> execution
-            threads and maintenance threads (such as filesystem and
-            other operating system threads) to specific CPUs on
-            multiprocessor data node hosts, and to leverage real-time
-            scheduling using configuration parameters introduced in
-            MySQL 5.1.22-ndb-6.3.4.
-          </para>
-        </listitem>
-
-        <listitem>
-          <para>
             The number of unnecessary reads when performing a primary
             key or unique key update has been greatly reduced. Since it
             is seldom necessary to read a record prior to an update,

@@ -776,128 +915,304 @@
         </listitem>
 
         <listitem>
-          <para>
-            Batched operations are better supported for
-            <literal>DELETE</literal> and <literal>UPDATE</literal>;
-            <literal>UPDATE WHERE...</literal> and multiple
-            <literal>DELETE</literal> operations are now correctly
-            implemented. (MySQL 5.1.22-ndb-6.3.6)
-          </para>
+          <formalpara>
+
+            <title>Batching improvements</title>
+
+            <para>
+              Support of batched <literal>DELETE</literal> and
+              <literal>UPDATE</literal> operations has been
+              significantly improved. Batching of <literal>UPDATE
+              WHERE...</literal> and multiple <literal>DELETE</literal>
+              operations is also now implemented.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Introduced the <literal>Ndb_execute_count</literal> system
-            status variable, which measures the number of round trips
-            made by SQL statements to the <literal>NDB</literal> kernel.
-            (MySQL 5.1.22-ndb-6.3.6)
-          </para>
+          <formalpara>
+
+            <title>Improved SQL statement performance metrics</title>
+
+            <para>
+              The <literal>Ndb_execute_count</literal> system status
+              variable measures the number of round trips made by SQL
+              statements to the <literal>NDB</literal> kernel, providing
+              an improved metric for determining efficiency with which
+              statements are excuted. For more information, see
+              <link linkend="option_mysqld_Ndb_execute_count"><citetitle>MySQL
+              Cluster Status Variables:
+              <literal>Ndb_execute_count</literal></citetitle></link>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Compressed local checkpoints and backups can save 50% or
-            more of the disk space used by uncompressed LCPs and
-            backups. These can be enabled using the two new data node
-            configuration parameters <literal>CompressedLCP</literal>
-            and <literal>CompressedBackup</literal>, respectively.
-            (MySQL 5.1.23-ndb-6.3.7)
-          </para>
+          <formalpara>
+
+            <title>Compressed LCPs and backups</title>
+
+            <para>
+              Compressed local checkpoints and backups can save 50% or
+              more of the disk space used by uncompressed LCPs and
+              backups. These can be enabled using the two new data node
+              configuration parameters <literal>CompressedLCP</literal>
+              and <literal>CompressedBackup</literal>, respectively. See
+              <link linkend="mysql-cluster-param-ndbd-definition-compressedbackup"><citetitle>MySQL
+              Cluster Status Variables:
+              <literal>CompressedBackup</literal></citetitle></link>,
+              and
+              <link linkend="mysql-cluster-param-ndbd-definition-compressedlcp"><citetitle>MySQL
+              Cluster Status Variables:
+              <literal>CompressedLCP</literal></citetitle></link>, for
+              more information about these parameters.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            <literal>OPTIMIZE TABLE</literal> is supported for dynamic
-            columns of in-memory <literal>NDB</literal> tables. In such
-            cases, it is no longer necessary to drop (and possibly to
-            re-create) a table, or to perform a rolling restart, in
-            order to recover memory from deleted rows for general re-use
-            by Cluster. The performance of <literal>OPTIMIZE</literal>
-            on Cluster tables can be tuned by adjusting the value of the
-            <literal>ndb_optimization_delay</literal> system variable,
-            which controls the number of milliseconds to wait between
-            processing batches of rows by <literal>OPTIMIZE
-            TABLE</literal>. (MySQL 5.1.23-ndb-6.3.7)
-          </para>
+          <formalpara>
 
-          <para>
-            <literal>OPTIMIZE TABLE</literal> can now be interrupted.
-            This can be done, for example, by killing the SQL thread
-            performing the <literal>OPTIMIZE</literal> operation. (MySQL
-            5.1.23-ndb-6.3.8)
-          </para>
+            <title><literal>OPTIMIZE TABLE</literal> support with
+              <literal>NDBCLUSTER</literal> tables</title>
+
+            <para>
+              <literal>OPTIMIZE TABLE</literal> is supported for dynamic
+              columns of in-memory <literal>NDB</literal> tables. In
+              such cases, it is no longer necessary to drop (and
+              possibly to re-create) a table, or to perform a rolling
+              restart, in order to recover memory from deleted rows for
+              general re-use by Cluster. The performance of
+              <literal>OPTIMIZE</literal> on Cluster tables can be tuned
+              by adjusting the value of the
+              <literal>ndb_optimization_delay</literal> system variable,
+              which controls the number of milliseconds to wait between
+              processing batches of rows by <literal>OPTIMIZE
+              TABLE</literal>. In addition, <literal>OPTIMIZE
+              TABLE</literal> on an <literal>NDBCLUSTER</literal> table
+              can be interrupted by, for example, killing the SQL thread
+              performing the <literal>OPTIMIZE</literal> operation.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            It is possible to cause statements occurring within the same
-            transaction to be run as a batch by setting the session
-            variable <literal>transaction_allow_batching</literal> to
-            <literal>1</literal> or <literal>ON</literal>. To use this
-            feature, <literal>AUTOCOMMIT</literal> must be set to
-            <literal>0</literal> or <literal>OFF</literal>. (MySQL
-            5.1.23-ndb-6.3.7)
-          </para>
+          <formalpara>
 
-          <para>
-            Batch sizes can be controlled using the
-            <option>--ndb-batch-size</option> option for
-            <command>mysqld</command>. (MySQL 5.1.23-ndb-6.3.8)
-          </para>
+            <title>Batching of transactions</title>
+
+            <para>
+              It is possible to cause statements occurring within the
+              same transaction to be run as a batch by setting the
+              session variable
+              <literal>transaction_allow_batching</literal> to
+              <literal>1</literal> or <literal>ON</literal>. To use this
+              feature, <literal>AUTOCOMMIT</literal> must be set to
+              <literal>0</literal> or <literal>OFF</literal>. Batch
+              sizes can be controlled using the
+              <option>--ndb-batch-size</option> option for
+              <command>mysqld</command>. For more information, see
+              <xref linkend="mysql-cluster-mysqld-command-options"/>,
+              and <xref linkend="mysql-cluster-system-variables"/>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            It is possible using <command>ndb_restore</command> to
-            restore data reliably from a column of a given type to a
-            column that uses a <quote>larger</quote> type. (This is also
-            referred to as <firstterm>attribute promotion</firstterm>.)
-            For example, MySQL Cluster backup data that originated in a
-            <literal>SMALLINT</literal> column can be restored to a
-            <literal>MEDIUMINT</literal>, <literal>INT</literal>, or
-            <literal>BIGINT</literal> column. (MySQL 5.1.23-ndb-6.3.8)
-          </para>
+          <formalpara>
+
+            <title>Attribute promotion with <command>ndb_restore</command></title>
+
+            <para>
+              It is possible using <command>ndb_restore</command> to
+              restore data reliably from a column of a given type to a
+              column that uses a <quote>larger</quote> type. This is
+              sometimes referred to as <firstterm>attribute
+              promotion</firstterm>. For example, MySQL Cluster backup
+              data that originated in a <literal>SMALLINT</literal>
+              column can be restored to a <literal>MEDIUMINT</literal>,
+              <literal>INT</literal>, or <literal>BIGINT</literal>
+              column. See <xref linkend="mysql-cluster-restore"/>, for
+              more information.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            <literal>NDB_LE_MemoryUsage.page_size_kb</literal> has been
-            renamed to
-            <literal>NDB_LE_MemoryUsage.page_size_bytes</literal>.
-            (MySQL 5.1.23-ndb-6.3.8)
-          </para>
+          <formalpara>
+
+            <title>Parallel data node recovery</title>
+
+            <para>
+              Recovery of multiple data nodes can now be done in
+              parallel, rather than sequentially. In other words,
+              several data nodes can be restored concurrently, which can
+              often result in much faster recovery times than when they
+              are restored one at a time.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Recovery of multiple data nodes can be done in parallel,
-            rather than sequentially, which can result in much faster
-            recovery times. (MySQL 5.1.23-ndb-6.3.8)
-          </para>
+          <formalpara>
+
+            <title>Increased local checkpoint efficiency</title>
+
+            <para>
+              Only 2 local checkpoints are stored, rather than 3,
+              lowering disk space requirements and the size and number
+              of redo log files.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Only 2 local checkpoints are stored, rather than 3, lowering
-            disk space requirements and the size and number of redo log
-            files. (MySQL 5.1.23-ndb-6.3.8)
-          </para>
+          <formalpara>
+
+            <title><literal>NDBCLUSTER</literal> table persistence control</title>
+
+            <para>
+              Persistence of <literal>NDB</literal> tables can be
+              controlled using the session variables
+              <literal>ndb_table_temporary</literal> and
+              <literal>ndb_table_no_logging</literal>.
+              <literal>ndb_table_no_logging</literal> causes
+              <literal>NDB</literal> tables not to be checkpointed to
+              disk; <literal>ndb_table_temporary</literal> does the
+              same, and in addition, no schema files are created. See
+              <xref linkend="mysql-cluster-option-tables"/>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Persistence of <literal>NDB</literal> tables can be
-            controlled using the session variables
-            <literal>ndb_table_temporary</literal> and
-            <literal>ndb_table_no_logging</literal>.
-            <literal>ndb_table_no_logging</literal> causes
-            <literal>NDB</literal> tables not to be checkpointed to
-            disk; <literal>ndb_table_temporary</literal> does the same,
-            and in addition, no schema files are created. (MySQL
-            5.1.23-ndb-6.3.8)
-          </para>
+          <formalpara>
+
+            <title>Epoll support (<emphasis>Linux only</emphasis>)</title>
+
+            <para>
+              <firstterm>Epoll</firstterm> is an improved method for
+              handling file descriptors, which is more efficient than
+              scanning to determine whether a file descriptor has data
+              to be read. (The term <firstterm>epoll</firstterm> is
+              specific to Linux and equivalent functionality is known by
+              other names on other platforms such as Solaris and
+              FreeBSD.) Currently, MySQL Cluster supports this
+              functionality on Linux only.
+            </para>
+
+          </formalpara>
         </listitem>
 
+        <listitem>
+          <formalpara>
+
+            <title>Distribution awareness (SQL nodes)</title>
+
+            <para>
+              In &mccge-series; 6.3, SQL nodes can take advantage of
+              <link linkend="mysql-cluster-changes-5-1-distribution-awareness">distribution
+              awareness</link>. Here we provide a brief example showing
+              how to design a table to make a given class of queries
+              distrubtion-aware. Suppose an
+              <literal>NDBCLUSTER</literal> table <literal>t1</literal>
+              has the following schema:
+
+<programlisting>
+CREATE TABLE t1 (
+    userid INT NOT NULL,
+    serviceid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
+    data VARCHAR(255)
+)   ENGINE=NDBCLUSTER;
+</programlisting>
+
+              Suppose further that most of the queries to be used in our
+              application test values of the <literal>userid</literal>
+              column of this table. The form of such a query looks
+              something like this:
+
+<programlisting>
+SELECT <replaceable>columns</replaceable> FROM t1 
+    WHERE userid <replaceable>relation</replaceable> <replaceable>value</replaceable>;  
+</programlisting>
+
+              In this query, <replaceable>relation</replaceable>
+              represents some relational operator, such as
+              <literal>=</literal>, <literal>&lt;</literal>,
+              <literal>&gt;</literal>, and so on. Queries using
+              <literal>IN</literal> and a list of values can also be
+              used:
+
+<programlisting>
+SELECT <replaceable>columns</replaceable> FROM t1 
+    WHERE userid IN <replaceable>value_list</replaceable>;  
+</programlisting>
+
+              In order to make use of distribution awareness, we need to
+              make the <literal>userid</literal> column part of the
+              table&apos;s primary key, then explicitly partition the
+              table with this column being used as the partitioning key.
+              (Recall that for a partitioned table having one or more
+              unique keys, all columns of the table&apos;s partitioning
+              key must also be part of all of the unique keys &mdash;
+              for more information and examples, see
+              <xref linkend="partitioning-limitations-partitioning-keys-unique-keys"/>.)
+              In other words, the table schema should be equivalent to
+              the following <literal>CREATE TABLE</literal> statement:
+
+<programlisting>
+CREATE TABLE t1 (
+    userid INT NOT NULL,
+    serviceid INT NOT NULL AUTO_INCREMENT,
+    data VARCHAR(255),
+    PRIMARY KEY p (userid,serviceid)
+)   ENGINE=NDBCLUSTER
+    PARTITION BY KEY(userid);
+</programlisting>
+
+              When the table is partitioned in this way, all rows having
+              the same <literal>userid</literal> value are found on the
+              same node group, and the MySQL Server can immediately
+              select the optimal node to use as the transaction
+              coordinator.
+            </para>
+
+          </formalpara>
+        </listitem>
+
+        <listitem>
+          <formalpara>
+
+            <title>Realtime extensions for multiple CPUs</title>
+
+            <para>
+              When running MySQL Cluster data nodes on hosts with
+              multiple processors, the realtime extensions make it
+              possible to give priority to the data node process and
+              control on which CPU cores it should operate. This can be
+              done using the data node configuration parameters
+              <literal>RealtimeScheduler</literal>,
+              <literal>SchedulerExecutionTimer</literal> and
+              <literal>SchedulerSpinTimer</literal>. Doing so properly
+              can significantly lower response times and make them much
+              more predictable response. For more information about
+              using these parameters, see
+              <link linkend="mysql-cluster-realtime-performance-parameters">Defining
+              Data Nodes: Realtime Performance Parameters</link>
+            </para>
+
+          </formalpara>
+        </listitem>
+
       </itemizedlist>
     </para>
 


Modified: trunk/pt/refman-5.1/Makefile.depends
===================================================================
--- trunk/pt/refman-5.1/Makefile.depends	2008-05-21 12:39:50 UTC (rev 10798)
+++ trunk/pt/refman-5.1/Makefile.depends	2008-05-21 15:12:31 UTC (rev 10799)
Changed blocks: 3, Lines Added: 9, Lines Deleted: 0; 1882 bytes

@@ -1733,6 +1733,7 @@
 	../../ndbapi/metadata/class-ndboperation.idmap \
 	../../ndbapi/metadata/class-ndbtransaction.idmap \
 	../../ndbapi/metadata/class-table.idmap \
+	../../ndbapi/metadata/interface-ndbrecord.idmap \
 	../../ndbapi/metadata/mgm-api.idmap \
 	../../ndbapi/metadata/ndb-errors.idmap \
 	../../ndbapi/metadata/ndb-internals.idmap \

@@ -2194,9 +2195,16 @@
 mysql_cluster_roadmap_IMAGES =
 mysql_cluster_roadmap_SOURCES = mysql-cluster-roadmap.xml $(mysql_cluster_roadmap_INCLUDES)
 mysql_cluster_roadmap_IDMAPS = \
+	../../ndbapi/metadata/interface-ndbrecord.idmap \
+	../../ndbapi/metadata/ndb-internals.idmap \
+	../../refman-5.1/metadata/mysql-cluster-backup.idmap \
+	../../refman-5.1/metadata/mysql-cluster-configuration.idmap \
 	../../refman-5.1/metadata/mysql-cluster-disk-data.idmap \
 	../../refman-5.1/metadata/mysql-cluster-limitations.idmap \
+	../../refman-5.1/metadata/mysql-cluster-management.idmap \
 	../../refman-5.1/metadata/mysql-cluster-news-core.idmap \
+	../../refman-5.1/metadata/mysql-cluster-optvar-core.idmap \
+	../../refman-5.1/metadata/mysql-cluster-process-management.idmap \
 	../../refman-5.1/metadata/mysql-cluster-replication.idmap \
 	../../refman-5.1/metadata/mysql-cluster-roadmap.idmap \
 	../../refman-5.1/metadata/partitioning.idmap \

@@ -2357,6 +2365,7 @@
 	../../ndbapi/metadata/class-dictionary.idmap \
 	../../ndbapi/metadata/class-ndb-cluster-connection.idmap \
 	../../ndbapi/metadata/class-ndb.idmap \
+	../../ndbapi/metadata/interface-ndbrecord.idmap \
 	../../ndbapi/metadata/mgm-api.idmap \
 	../../ndbapi/metadata/ndb-errors.idmap \
 	../../ndbapi/metadata/ndb-internals.idmap \


Modified: trunk/pt/refman-5.1/mysql-cluster-roadmap.xml
===================================================================
--- trunk/pt/refman-5.1/mysql-cluster-roadmap.xml	2008-05-21 12:39:50 UTC (rev 10798)
+++ trunk/pt/refman-5.1/mysql-cluster-roadmap.xml	2008-05-21 15:12:31 UTC (rev 10799)
Changed blocks: 12, Lines Added: 866, Lines Deleted: 551; 66769 bytes

@@ -19,11 +19,6 @@
     <primary>New features in MySQL Cluster</primary>
   </indexterm>
 
-  <remark role="todo">
-    [js] Update to get rid of items already implemented that were listed
-    as "future" items here. (Waiting on feedback from Jeb, et al.)
-  </remark>
-
   <remark role="note">
     [js] Altered previously version-specific section ID, title.
   </remark>

@@ -31,35 +26,143 @@
   <remark>
     Author: Jon Stephens. Based on Mikael Ronström's "Cluster News"
     announcement of 2005-04-06 and other info from Mikael Ronström,
-    Jonas Oreland, et al.
+    Jonas Oreland, et al. Updated with information from NDB developers
+    and support staff; May 2008 reorganisation inspired and assisted by
+    Johan Andersson.
   </remark>
 
-  <remark role="todo">
-    [pd] I see nothing for next-series. [js] Commented out reference for
-    now.
-  </remark>
-
   <para>
     In this section, we discuss changes in the implementation of MySQL
     Cluster in MySQL &current-series; and &mccge-series; as compared to
     MySQL &previous-series;.
+  </para>
 
-<!-- 
-      We also discuss our roadmap for further improvements to MySQL Cluster 
-      as currently planned for MySQL &next-series;. 
+<!--  
+  <para>
+    
+    <remark role="TODO">
+      [js] Uncomment and expand this para when we have some likely future
+      improvements to describe, or possibly add new section for these. 
+    </remark>
+    We also discuss our roadmap for further improvements to MySQL Cluster 
+    as currently planned for MySQL &next-series;.
+  </para>
 -->
-  </para>
 
   <para>
     There are a number of significant changes in the implementation of
-    the <literal>NDBCLUSTER</literal> storage engine in MySQL 5.1 as
-    compared to that in MySQL 5.0. For an overview of these changes, see
-    <xref linkend="mysql-cluster-changes-5-1"/>
+    the <literal>NDBCLUSTER</literal> storage engine in mainline MySQL
+    5.1 releases up to and including MySQL 5.1.23 as compared to that in
+    MySQL 5.0; &mccge-series; makes further changes and improvements in
+    MySQL Cluster in addition to these. The changes and features most
+    likely to be of interest are shown in the following table:
+
+    <remark role="TODO">
+      [js] Add IDs to items in subsections and make entries in this
+      table links to these...
+    </remark>
+
+    <informaltable>
+      <tgroup cols="1">
+        <colspec colwidth="50*"/>
+        <thead>
+          <row>
+            <entry><link linkend="mysql-cluster-changes-5-1">MySQL 5.1 (through
+              5.1.23)</link></entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+            <entry>MySQL Cluster Replication</entry>
+          </row>
+          <row>
+            <entry>Disk Data storage</entry>
+          </row>
+          <row>
+            <entry>Variable-size columns</entry>
+          </row>
+          <row>
+            <entry>User-defined partitioning</entry>
+          </row>
+          <row>
+            <entry>Autodiscovery of table schema changes</entry>
+          </row>
+        </tbody>
+      </tgroup>
+      <tgroup cols="1">
+        <colspec colwidth="50*"/>
+        <thead>
+          <row>
+            <entry><link linkend="mysql-cluster-changes-5-1-ndb-6-1">&mccge-series;
+              6.1</link></entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+            <entry>Greater number of cluster nodes</entry>
+          </row>
+          <row>
+            <entry>Disabling of arbitration</entry>
+          </row>
+          <row>
+            <entry>Additional <literal>DUMP</literal> commands</entry>
+          </row>
+          <row>
+            <entry>Faster Disk Data backups</entry>
+          </row>
+          <row>
+            <entry>Batched slave updates</entry>
+          </row>
+        </tbody>
+      </tgroup>
+      <tgroup cols="1">
+        <colspec colwidth="50*"/>
+        <thead>
+          <row>
+            <entry><link linkend="mysql-cluster-changes-5-1-ndb-6-2">&mccge-series;
+              6.2</link></entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+            <entry>y</entry>
+          </row>
+          <row>
+            <entry>y</entry>
+          </row>
+          <row>
+            <entry>x</entry>
+            <entry>y</entry>
+          </row>
+        </tbody>
+      </tgroup>
+      <tgroup cols="1">
+        <colspec colwidth="50*"/>
+        <thead>
+          <row>
+            <entry><link linkend="mysql-cluster-changes-5-1-ndb-6-3">&mccge-series;
+              6.3</link></entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+            <entry>y</entry>
+          </row>
+          <row>
+            <entry>y</entry>
+          </row>
+          <row>
+            <entry>x</entry>
+            <entry>y</entry>
+          </row>
+        </tbody>
+      </tgroup>
+    </informaltable>
   </para>
 
   <section id="mysql-cluster-changes-5-1">
 
-    <title>MySQL Cluster Changes in MySQL 5.1</title>
+    <title>Features Added in MySQL 5.1 Cluster</title>
 
     <indexterm>
       <primary>MySQL Cluster</primary>

@@ -68,7 +171,10 @@
 
     <para>
       A number of new features for MySQL Cluster have been implemented
-      in MySQL 5.1:
+      in MySQL 5.1 through MySQL 5.1.23, when support for MySQL Cluster
+      was moved to &mccge-series;. All of the features in the following
+      list are also available in all &mccge-series; (6.1 and later)
+      releases.
     </para>
 
     <itemizedlist>

@@ -79,11 +185,21 @@
           <title>Integration of MySQL Cluster into MySQL Replication</title>
 
           <para>
-            This makes it possible to update from any MySQL Server in
-            the cluster and still have the MySQL Replication handled by
-            one of the MySQL Servers in the cluster, with the state of
-            the slave side remaining consistent with the cluster acting
-            as the master.
+            MySQL Cluster Replication makes it possible to replicate
+            from one MySQL Cluster to another. Updates on any SQL node
+            (MySQL server) in the cluster acting as the master are
+            replicated to the slave cluster; the state of the slave side
+            remains consistent with the cluster acting as the master.
+            This is sometimes referred to as <firstterm>asynchronous
+            replication</firstterm> between clusters, providing
+            <firstterm>geographic redundancy</firstterm>. It is also
+            possible to replicate from a MySQL Cluster acting as the
+            master to a standalone MySQL server acting as the slave, or
+            from a standalone MySQL master server to to a slave cluster;
+            in either of these cases, the standalone MySQL server uses a
+            storage engine other than <literal>NDBCLUSTER</literal>.
+            Multi-master replication setups such as circular replication
+            are also supported.
           </para>
 
         </formalpara>

@@ -96,12 +212,13 @@
       <listitem>
         <formalpara>
 
-          <title>Support for disk-based records</title>
+          <title>Support for storage of rows on disk</title>
 
           <para>
-            Records on disk are now supported. Indexed columns,
-            including the primary key hash index, must still be stored
-            in RAM; however, all other columns can be stored on disk.
+            Storage of <literal>NDBCLUSTER</literal> table data on disk
+            is now supported. Indexed columns, including the primary key
+            hash index, must still be stored in RAM; however, all other
+            columns can be stored on disk.
           </para>
 
         </formalpara>

@@ -114,16 +231,17 @@
       <listitem>
         <formalpara>
 
-          <title>Variable-sized records</title>
+          <title>Variable-size columns</title>
 
           <para>
-            A column defined as <literal>VARCHAR(255)</literal>
-            currently uses 260 bytes of storage independent of what is
-            stored in any particular record. In MySQL 5.1 Cluster
-            tables, only the portion of the column actually taken up by
-            the record will be stored. This will make possible a
-            reduction in space requirements for such columns by a factor
-            of 5 in many cases.
+            In MySQL 5.0, an <literal>NDBCLUSTER</literal> table column
+            defined as <literal>VARCHAR(255)</literal> used 260 bytes of
+            storage independent of what was stored in any particular
+            record. In MySQL 5.1 Cluster tables, only the portion of the
+            column actually taken up by the record is stored. This makes
+            possible a significant reduction in space requirements for
+            such columns as compared to previous release series &mdash;
+            by a factor of up to 5 in many cases.
           </para>
 
         </formalpara>

@@ -157,8 +275,10 @@
         <para>
           The MySQL Server can also determine whether it is possible to
           <quote>prune away</quote> some of the partitions from the
-          <literal>WHERE</literal> clause. See
-          <xref linkend="partitioning-pruning"/>.
+          <literal>WHERE</literal> clause, which can greatly speed up
+          some queries. See <xref linkend="partitioning-pruning"/>, for
+          information about designing tables and queries to take
+          advantage of partition pruning.
         </para>
       </listitem>
 

@@ -168,25 +288,104 @@
           <title>Autodiscovery of table schema changes</title>
 
           <para>
-            In MySQL 5.1, you no longer need to issue <literal>FLUSH
-            TABLES</literal> or a <quote>dummy</quote>
+            In MySQL 5.0, it was necessary to issue a <literal>FLUSH
+            TABLES</literal> statement or a <quote>dummy</quote>
             <literal>SELECT</literal> in order for new
-            <literal>NDB</literal> tables or changes made to schemas of
-            existing <literal>NDB</literal> tables on one SQL node to be
-            visible on the cluster's other SQL nodes.
+            <literal>NDBCLUSTER</literal> tables or changes made to
+            schemas of existing <literal>NDBCLUSTER</literal> tables on
+            one SQL node to be visible on the cluster&apos;s other SQL
+            nodes. In MySQL 5.1, this is no longer necessary; new
+            Cluster tables and changes in the definitions of existing
+            <literal>NDBCLUSTER</literal> tables made on one SQL node
+            are immediately visible to all SQL nodes connected to the
+            cluster.
           </para>
 
         </formalpara>
 
         <note>
           <para>
-            When creating a new database, it is still necessary to issue
-            a <literal>CREATE DATABASE</literal> or <literal>CREATE
-            SCHEMA</literal> statement on each SQL node in the cluster.
+            When creating a new database, it is still necessary in MySQL
+            5.1 to issue a <literal>CREATE DATABASE</literal> or
+            <literal>CREATE SCHEMA</literal> statement on each SQL node
+            in the cluster.
           </para>
         </note>
       </listitem>
 
+      <listitem>
+        <formalpara>
+
+          <title>Distribution awareness (NDB API)</title>
+
+          <para id="mysql-cluster-changes-5-1-distribution-awareness">
+            <firstterm>Distribution awareness</firstterm> is a mechanism
+            by which the best data node is automatically selected to be
+            queried for information. (Conceptually, it is similar in
+            some ways to partition pruning (see
+            <xref linkend="partitioning-pruning"/>). To take advantage
+            of distribution awareness, you should do the following:
+
+            <orderedlist>
+
+              <listitem>
+                <para>
+                  Determine which table column is most likely to be used
+                  for finding matching records.
+                </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  Make this column part of the table&apos;s primary key.
+                </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  Explicitly partition the table by
+                  <literal>KEY</literal>, using this column as the
+                  table&apos; partitioning key.
+                </para>
+              </listitem>
+
+            </orderedlist>
+
+            Following these steps causes records with the same value for
+            the partitioning column to be stored on the same partition
+            (that is, in the same node group). When reading data,
+            transactions are begun on the data node actually having the
+            desired rows instead of this node being determined by the
+            usual round-robin mechanism.
+
+            <important>
+              <para>
+                In order to see a measureable impact on performance, the
+                cluster must have at least four data nodes, since, with
+                only two data nodes, both data nodes have exactly the
+                same data.
+              </para>
+            </important>
+
+            Using distribution awareness can yield performance increase
+            of as great as 45% when using four data nodes, and possibly
+            more when using a greater number of data nodes.
+
+            <note>
+              <para>
+                In mainline MySQL 5.1 releases, distribution awareness
+                was supported only when using the NDB API; support was
+                added for SQL and API nodes in &mccge-series; 6.3 (see
+                <xref linkend="mysql-cluster-changes-5-1-ndb-6-3"/>,
+                which includes an example showing how to create a table
+                in order to take advantage of distribution awareness).
+              </para>
+            </note>
+          </para>
+
+        </formalpara>
+      </listitem>
+
     </itemizedlist>
 
     <para>

@@ -215,126 +414,97 @@
 
   </section>
 
-<section id="mysql-cluster-changes-5-1-ndb-6-1">
+  <section id="mysql-cluster-changes-5-1-ndb-6-1">
 
-    <title>Overview of MySQL Cluster Changes in &mccge-series; 6.1.x</title>
+    <title>Features Added in &mccge-series; 6.1</title>
 
     <para>
       The following list provides an overview of significant feature
-      additions and changes made in &mccge-series; 6.1.x releases. For
-      detailed information, see
-      <xref linkend="mysql-cluster-news-6-1"/>.
+      additions and changes made in &mccge-series; 6.1. All of the
+      changes in this list are also available in &mccge-series; 6.2 and
+      6.3 releases. For detailed information about all changes made in
+      &mccge-series; 6.1, see <xref linkend="mysql-cluster-news-6-1"/>.
 
       <itemizedlist>
 
         <listitem>
-          <para>
-            Enhanced backup status reporting, aided in part by the
-            introduction of a <literal>BackupReportFrequency</literal>
-            configuration parameter (MySQL 5.1.14-ndb-6.1.0).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            Maximum number of all nodes in a cluster increased to 255
-            (MySQL 5.1.14-ndb-6.1.1).
-          </para>
-        </listitem>
+            <title>Increased number of cluster nodes</title>
 
-        <listitem>
-          <para>
-            Addition of the <literal>NDB</literal> API
-            <literal>Dictionary::listEvents()</literal> method (MySQL
-            5.1.15-ndb-6.1.3).
-          </para>
-        </listitem>
+            <para>
+              The maximum number of all nodes in a MySQL Cluster has
+              been increased to 255. For more information, see
+              <xref linkend="mysql-cluster-limitations-multiple-nodes"/>.
+            </para>
 
-        <listitem>
-          <para>
-            Ability to disable arbitration, by setting
-            <literal>ArbitrationRank=0</literal> on all nodes (MySQL
-            5.1.15-ndb-6.1.3).
-          </para>
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Inclusion of the <command>ndbd_redo_log_reader</command>
-            utility in the default build (MySQL 5.1.15-ndb-6.1.3).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            New methods of the <literal>Ndb_cluster_connection</literal>
-            class, making it possible to iterate over all existing
-            <literal>Ndb</literal> objects (MySQL 5.1.15-ndb-6.1.4).
-          </para>
-        </listitem>
+            <title>Disabling arbitration</title>
 
-        <listitem>
-          <para>
-            <option>--ndb-wait-connected</option> option for
-            <command>mysqld</command>, causing <command>mysqld</command>
-            wait a specified amount of time to be connected to the
-            cluster before starting to accept client connections (MySQL
-            5.1.15-ndb-6.1.4).
-          </para>
-        </listitem>
+            <para>
+              It is now possible to disable arbitration by setting
+              <literal>ArbitrationRank=0</literal> on all cluster
+              management and SQL nodes. For more information, see
+              <link linkend="mysql-cluster-param-mgm-definition-arbitrationrank"><citetitle>Defining
+              the Management Server:
+              <literal>ArbitrationRank</literal></citetitle></link> and
+              <link linkend="mysql-cluster-param-api-definition-arbitrationrank"><citetitle>Defining
+              SQL and Other API Nodes:
+              <literal>ArbitrationRank</literal></citetitle></link>.
+            </para>
 
-        <listitem>
-          <para>
-            Improved data node memory allocation (MySQL
-            5.1.15-ndb-6.1.4).
-          </para>
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Ability to pipe output of <command>ndb_restore</command> to
-            CSV file (MySQL 5.1.15-ndb-6.1.5).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            A new <literal>FragmentLogFileSize</literal> configuration
-            parameter makes it possible to set the size of redo log
-            files (MySQL 5.1.15-ndb-6.1.11).
-          </para>
+            <title>Additional <literal>DUMP</literal> commands</title>
+
+            <para>
+              New management client <literal>DUMP</literal> commands
+              provide help with tracking transactions, scan operations,
+              and locks. See
+              <xref linkend="mysql-cluster-mgm-client-commands"/>, and
+              <xref linkend="ndb-internals-dump-commands"/>, for more
+              information.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            <literal>MaxAllocate</literal> configuration parameter makes
-            it possible to set the maximum size of the allocation unit
-            used for table memory (MySQL 5.1.15-ndb-6.1.12).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            New management client <literal>DUMP</literal> commands
-            providing help with tracking transactions, scan operations,
-            and locks (MySQL 5.1.15-ndb-6.1.12).
-          </para>
+            <title>Faster Disk Data backups</title>
+
+            <para>
+              Improvements in backups of Disk Data tables can yield a 10
+              to 15% increase in backup speed of Disk Data tables.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Improvements in backups of Disk Data tables resulted in a 10
-            to 15% increase in backup speed of Disk Data tables (MySQL
-            5.1.15-ndb-6.1.13).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            Batching of updates on cluster replication slaves, enabled
-            using the <option>--slave-allow-batching</option> option for
-            <command>mysqld</command> (MySQL 5.1.15-ndb-6.1.17).
-          </para>
+            <title>Batched slave updates</title>
+
+            <para>
+              Batching of updates on cluster replication slaves, enabled
+              using the <option>--slave-allow-batching</option> option
+              for <command>mysqld</command>, increases replication
+              efficiency. For more information, see
+              <xref linkend="mysql-cluster-replication-starting"/>.
+            </para>
+
+          </formalpara>
         </listitem>
 
       </itemizedlist>

@@ -344,213 +514,281 @@
 
   <section id="mysql-cluster-changes-5-1-ndb-6-2">
 
-    <title>Overview of MySQL Cluster Changes in &mccge-series; 6.2.x</title>
+    <title>Features Added in &mccge-series; 6.2</title>
 
     <para>
       The following list provides an overview of significant feature
-      additions and changes made in &mccge-series; 6.2.x releases. For
-      detailed information, see
+      additions and changes made in &mccge-series; 6.2. All of the
+      changes in this list are also available in &mccge-series; 6.3 .
+      For more detailed information about all feature changes and
+      bugfixes made in &mccge-series; 6.2, see
       <xref linkend="mysql-cluster-news-6-2"/>.
 
       <itemizedlist>
 
         <listitem>
-          <para>
-            Mutliple cluster connections by a single MySQL server using
-            the <option>--ndb-cluster-connection-pool</option> startup
-            option for <command>mysqld</command> (MySQL
-            5.1.18-ndb-6.2.2).
-          </para>
+          <formalpara>
+
+            <title>Enhanced backup status reporting</title>
+
+            <para>
+              Backup status reporting has been improved, aided in part
+              by the introduction of a
+              <literal>BackupReportFrequency</literal> configuration
+              parameter; see
+              <link linkend="mysql-cluster-param-ndbd-definition-backupreportfrequency"><citetitle>Defining
+              Data Nodes:
+              <literal>BackupReportFrequency</literal></citetitle></link>,
+              for more information.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            New management client <literal>DUMP</literal> commands
-            providing help with tracking transactions, scan operations,
-            and locks (MySQL 5.1.18-ndb-6.2.2).
-          </para>
+          <formalpara>
+
+            <title>Multiple cluster connections per SQL node</title>
+
+            <para>
+              A single MySQL server acting as a MySQL Cluster SQL node
+              can employ multiple connections to the cluster using the
+              <option>--ndb-cluster-connection-pool</option> startup
+              option for <command>mysqld</command>. This option is
+              described in
+              <link linkend="option_mysqld_ndb-cluster-connection-pool"><citetitle>MySQL
+              Cluster-Related Command Options for
+              <command>mysqld</command>:
+              <option>--ndb-cluster-connection-pool</option>
+              option</citetitle></link>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            The addition of the <literal>NdbRecord</literal> interface
-            and handler for the <literal>NDB</literal> API (MySQL
-            5.1.19-ndb-6.2.3).
-          </para>
+          <formalpara>
+
+            <title>New data access interface</title>
+
+            <para>
+              The <literal>NdbRecord</literal> interface provides a new
+              and simplified data handler for use in NDB API
+              applications. See <xref linkend="interface-ndbrecord"/>,
+              for more information.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Enhanced reporting, aided in part by the introduction of a
-            <literal>BackupReportFrequency</literal> configuration
-            parameter as well as new management client <literal>REPORT
-            BackupStatus</literal> and <literal>REPORT
-            MemoryUsage</literal> commands (MySQL 5.1.19-ndb-6.2.3).
-          </para>
+          <formalpara>
+
+            <title>New reporting commands</title>
+
+            <para>
+              The new management client <literal>REPORT
+              BackupStatus</literal> and <literal>REPORT
+              MemoryUsage</literal> commands provide better access to
+              information about the status of MySQL Cluster backups and
+              how much memory is being used by MySQL Cluster for data
+              and index storage. See
+              <xref linkend="mysql-cluster-mgm-client-commands"/>, for
+              more information about the <literal>REPORT</literal>
+              commands. In addition, in-progress status reporting is
+              provided by the <command>ndb_restore</command> utility;
+              see <xref linkend="mysql-cluster-restore"/>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            In-progress status reporting by
-            <command>ndb_restore</command> (MySQL 5.1.19-ndb-6.2.3).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            Batching of updates on cluster replication slaves, enabled
-            using the <option>--slave-allow-batching</option> option for
-            <command>mysqld</command> (MySQL 5.1.19-ndb-6.2.3).
-          </para>
+            <title>Improved memory allocation and configuration</title>
+
+            <para>
+              Memory is now allocated by the <literal>NDB</literal>
+              kernel to tables on a page-by-page basis, which
+              significantly reduces the memory overhead required for
+              maintaining <literal>NDBCLUSTER</literal> tables. In
+              addition, the <literal>MaxAllocate</literal> configuration
+              parameter now makes it possible to set the maximum size of
+              the allocation unit used for table memory; for more
+              information about this configuratin parameter, see
+              <link linkend="mysql-cluster-param-ndbd-definition-maxallocate"><citetitle>Defining
+              Data Nodes:
+              <literal>MaxAllocate</literal></citetitle></link>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Improved memory allocation in the <literal>NDB</literal>
-            kernel (MySQL 5.1.19-ndb-6.2.3).
-          </para>
+          <para></para>
         </listitem>
 
         <listitem>
-          <para>
-            Improvements in backups of Disk Data tables resulted in a 10
-            to 15% increase in backup speed of Disk Data tables (MySQL
-            5.1.19-ndb-6.2.3).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            <literal>MaxAllocate</literal> configuration parameter makes
-            it possible to set the maximum size of the allocation unit
-            used for table memory (MySQL 5.1.19-ndb-6.2.3).
-          </para>
+            <title>Choice of fixed-width or variable-width columns</title>
+
+            <para>
+              You can control whether fixed-width or variable-width
+              storage is used for a given column of an
+              <literal>NDB</literal> table by employing of the
+              <literal>COLUMN_FORMAT</literal> specifier as part of the
+              column&apos;s definition in a <literal>CREATE
+              TABLE</literal> or <literal>ALTER TABLE</literal>
+              statement. In addition, the ability to control whether a
+              given column of an <literal>NDB</literal> table is stored
+              in memory or on disk, using the <literal>STORAGE</literal>
+              specifier as part of the column's definition in a
+              <literal>CREATE TABLE</literal> or <literal>ALTER
+              TABLE</literal> statement. For more information, see
+              <xref linkend="create-table"/>, and
+              <xref linkend="alter-table"/>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            The ability to control whether fixed-width or variable-width
-            storage is used for a given column of an
-            <literal>NDB</literal> table by means of the
-            <literal>COLUMN_FORMAT</literal> specifier as part of the
-            column's definition in a <literal>CREATE TABLE</literal> or
-            <literal>ALTER TABLE</literal> statement. In addition, the
-            ability to control whether a given column of an
-            <literal>NDB</literal> table is stored in memory or on disk,
-            using the <literal>STORAGE</literal> specifier as part of
-            the column's definition in a <literal>CREATE TABLE</literal>
-            or <literal>ALTER TABLE</literal> statement. (MySQL
-            5.1.19-ndb-6.2.5)
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            The <option>--bind-address</option> cluster management
-            server startup option makes it possible to restrict
-            management client connections to <command>ndb_mgmd</command>
-            to a single host (IP address or hostname) and port. (MySQL
-            5.1.19-ndb-6.2.5)
-          </para>
+            <title>Controlling management client connections</title>
+
+            <para>
+              The <option>--bind-address</option> cluster management
+              server startup option makes it possible to restrict
+              management client connections to
+              <command>ndb_mgmd</command> to a single host (IP address
+              or hostname) and port, which can make MySQL Cluster
+              management operations more secure. For more information
+              about this option, see
+              <xref linkend="mysql-cluster-ndb-mgmd-command-options"/>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Due to a change in the protocol for handling of global
-            checkpoints (GCPs handled in this manner sometimes being
-            referred to as <quote>micro-GCPs</quote>), it is now
-            possible to control how often the GCI number is updated, and
-            how often global checkpoints are written to disk, using the
-            <literal>TimeBetweenEpochs</literal> configuration
-            parameter. This improves the reliability and performance of
-            MySQL Cluster Replication. (MySQL 5.1.22-ndb-6.2.5)
-          </para>
+          <formalpara>
 
-          <para>
-            Additional fine-tuning of micro-GCPs is made possible using
-            the <literal>TimeBetweenEpochsTimeout</literal> confiuration
-            parameter. (MySQL 5.1.22-ndb-6.2.7)
-          </para>
+            <title>Micro-GCPs</title>
+
+            <para>
+              Due to a change in the protocol for handling of global
+              checkpoints (GCPs handled in this manner sometimes being
+              referred to as <quote>micro-GCPs</quote>), it is now
+              possible to control how often the GCI number is updated,
+              and how often global checkpoints are written to disk,
+              using the <literal>TimeBetweenEpochs</literal>
+              configuration parameter. This improves the reliability and
+              performance of MySQL Cluster Replication. For more
+              information, see
+              <link linkend="mysql-cluster-param-ndbd-definition-timebetweenepochs"><citetitle>Defining
+              Data Nodes:
+              <literal>TimeBetweenEpochs</literal></citetitle></link>
+              and
+              <link linkend="mysql-cluster-param-ndbd-definition-timebetweenepochstimeout"><citetitle>Defining
+              Data Nodes:
+              <literal>TimeBetweenEpochsTimeout</literal></citetitle></link>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Support for the online <literal>ALTER TABLE</literal>
-            operations <literal>ADD COLUMN</literal>, <literal>ADD
-            INDEX</literal>, and <literal>DROP INDEX</literal> is
-            available. When the <literal>ONLINE</literal> keyword is
-            used, the <literal>ALTER TABLE</literal> is non-copying,
-            which means that indexes do not have to be re-created, which
-            provides these benefits:
+          <formalpara>
 
-            <itemizedlist>
+            <title>Core online schema change support</title>
 
-              <listitem>
-                <para>
-                  Single user mode is no longer required for
-                  <literal>ALTER TABLE</literal> operations that can be
-                  performed online.
-                </para>
-              </listitem>
+            <para>
+              Support for the online <literal>ALTER TABLE</literal>
+              operations <literal>ADD COLUMN</literal>, <literal>ADD
+              INDEX</literal>, and <literal>DROP INDEX</literal> is
+              available. When the <literal>ONLINE</literal> keyword is
+              used, the <literal>ALTER TABLE</literal> is non-copying,
+              which means that indexes do not have to be re-created,
+              which provides these benefits:
 
-              <listitem>
-                <para>
-                  Transactions can continue during <literal>ALTER
-                  TABLE</literal> operations that can be performed
-                  online.
-                </para>
-              </listitem>
+              <itemizedlist>
 
-              <listitem>
-                <para>
-                  Tables being altered online are not locked.
-                </para>
-              </listitem>
+                <listitem>
+                  <para>
+                    Single user mode is no longer required for
+                    <literal>ALTER TABLE</literal> operations that can
+                    be performed online.
+                  </para>
+                </listitem>
 
-            </itemizedlist>
+                <listitem>
+                  <para>
+                    Transactions can continue during <literal>ALTER
+                    TABLE</literal> operations that can be performed
+                    online.
+                  </para>
+                </listitem>
 
-            Online <literal>CREATE INDEX</literal> and <literal>DROP
-            INDEX</literal> statements are also supported. Online
-            changes can be suppressed using the
-            <literal>OFFLINE</literal> key word. See
-            <xref linkend="alter-table"/>,
-            <xref linkend="create-index"/>, and
-            <xref linkend="drop-index"/>, for more detailed information.
-            (MySQL 5.1.22-ndb-6.2.5)
-          </para>
+                <listitem>
+                  <para>
+                    Tables being altered online are not locked.
+                  </para>
+                </listitem>
 
-          <para>
-            Additional checks against unsupported
-            <literal>ONLINE</literal> operations were implemented, and
-            unnecessary checks were removed. (MySQL 5.1.22-ndb-6.2.7)
-          </para>
+              </itemizedlist>
+
+              Online <literal>CREATE INDEX</literal> and <literal>DROP
+              INDEX</literal> statements are also supported. Online
+              changes can be suppressed using the
+              <literal>OFFLINE</literal> key word. See
+              <xref linkend="alter-table"/>,
+              <xref linkend="create-index"/>, and
+              <xref linkend="drop-index"/>, for more detailed
+              information.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            More information has been added to the
-            <literal>mysql.ndb_binlog_index</literal> table so that it
-            is possible to determine which originating epochs have been
-            applied inside an epoch. This is useful in 3-way
-            replication. (MySQL 5.1.22-ndb-6.2.6)
-          </para>
+          <formalpara>
+
+            <title><literal>mysql.ndb_binlog_index</literal> improvements</title>
+
+            <para>
+              More information has been added to the
+              <literal>mysql.ndb_binlog_index</literal> table so that it
+              is possible to determine which originating epochs have
+              been applied inside an epoch. This is particularly useful
+              for 3-way replication. See
+              <xref linkend="mysql-cluster-replication-schema"/>, for
+              more information.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            <literal>DUMP 8011</literal> provides subscription data in
-            the cluster log. (MySQL 5.1.22-ndb-6.2.9)
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            The <literal>MaxBufferedEpochs</literal> data node
-            configuration parameter provides control over the maximum
-            number of unprocessed epochs by which a subscribing node can
-            lag. Subscribers which exceed this number are disconnected
-            and forced to reconnect. (MySQL 5.1.23-ndb-6.2.14)
-          </para>
+            <title>Epoch lag control</title>
+
+            <para>
+              The <literal>MaxBufferedEpochs</literal> data node
+              configuration parameter provides a means to control the
+              maximum number of unprocessed epochs by which a
+              subscribing node can lag. Subscribers which exceed this
+              number are disconnected and forced to reconnect. For a
+              discussion of this configuration parameter, see
+              <link linkend="mysql-cluster-param-ndbd-definition-maxbufferedepochs"><citetitle>Defining
+              Data Nodes:
+              <literal>MaxBufferedEpochs</literal></citetitle></link>.
+            </para>
+
+          </formalpara>
         </listitem>
 
       </itemizedlist>

@@ -560,211 +798,112 @@
 
   <section id="mysql-cluster-changes-5-1-ndb-6-3">
 
-    <title>Overview of MySQL Cluster Changes in &mccge-series; 6.3.x</title>
+    <title>Features Added in &mccge-series; 6.3</title>
 
     <para>
       The following list provides an overview of significant feature
-      additions and changes made in &mccge-series; 6.3.x releases. For
-      detailed information, see
+      additions and changes first made in &mccge-series; 6.3. For more
+      detailed information about all feature changes and bugfixes made
+      in &mccge-series; 6.3, see
       <xref linkend="mysql-cluster-news-6-3"/>.
 
       <itemizedlist>
 
         <listitem>
-          <para>
-            Enhanced reporting, aided in part by the introduction of a
-            <literal>BackupReportFrequency</literal> configuration
-            parameter as well as new management client <literal>REPORT
-            BackupStatus</literal> and <literal>REPORT
-            MemoryUsage</literal> commands (MySQL 5.1.19-ndb-6.3.0).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            Implementation of conflict resolution for use in
-            multi-master replication (MySQL 5.1.19-ndb-6.3.0).
-          </para>
+            <title>Conflict detection and resolution</title>
 
-          <para>
-            Improvements in conflict resolution for handling
-            simultaneous updates (MySQL-5.1.22-ndb-6.3.4).
-          </para>
-        </listitem>
+            <para>
+              It is now possible to detect and resolve conflicts that
+              arise in multi-master replication scenarios, such as
+              circular replication, when different masters may try to
+              update the same row on the slave with different data. Both
+              <quote>greatest timestamp wins</quote> and <quote>same
+              timestamp wins</quote> scenarios are supported. For more
+              information, see
+              <xref linkend="mysql-cluster-replication-conflict-resolution"/>.
+            </para>
 
-        <listitem>
-          <para>
-            More information has been added to the
-            <literal>mysql.ndb_binlog_index</literal> table so that it
-            is possible to determine which originating epochs have been
-            applied inside an epoch. This is useful in 3-way
-            replication. (MySQL 5.1.22-ndb-6.3.2)
-          </para>
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            The ability to control whether fixed-width or variable-width
-            storage is used for a given column of an
-            <literal>NDB</literal> table by means of the
-            <literal>COLUMN_FORMAT</literal> specifier as part of the
-            column's definition in a <literal>CREATE TABLE</literal> or
-            <literal>ALTER TABLE</literal> statement. In addition, the
-            ability to control whether a given column of an
-            <literal>NDB</literal> table is stored in memory or on disk,
-            using the <literal>STORAGE</literal> specifier as part of
-            the column's definition in a <literal>CREATE TABLE</literal>
-            or <literal>ALTER TABLE</literal> statement. (MySQL
-            5.1.22-ndb-6.3.2)
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            The <option>--bind-address</option> cluster management
-            server startup option makes it possible to restrict
-            management client connections to <command>ndb_mgmd</command>
-            to a single host (IP address or hostname) and port. (MySQL
-            5.1.22-ndb-6.3.2)
-          </para>
-        </listitem>
+            <title>Recovery of <quote>one master, many slaves</quote> replication setups</title>
 
-        <listitem>
-          <para>
-            Due to a change in the protocol for handling of global
-            checkpoints (GCPs handled in this manner sometimes being
-            referred to as <quote>micro-GCPs</quote>), it is now
-            possible to control how often the GCI number is updated, and
-            how often global checkpoints are written to disk, using the
-            <literal>TimeBetweenEpochs</literal> configuration
-            parameter. This improves the reliability and performance of
-            MySQL Cluster Replication. (MySQL 5.1.22-ndb-6.3.2)
-          </para>
+            <para>
+              Recovery of multi-way replication setups (<quote>one
+              master, many slaves</quote>) is now supported via the
+              <option>--ndb-log-orig</option> server option and changes
+              in the <literal>mysql.ndb_binlog_index</literal> table.
+              See <xref linkend="mysql-cluster-replication-schema"/>,
+              for more information.
+            </para>
 
-          <para>
-            Additional fine-tuning of micro-GCPs is made possible using
-            the <literal>TimeBetweenEpochsTimeout</literal> confiuration
-            parameter. (MySQL 5.1.22-ndb-6.3.4)
-          </para>
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Support for the online <literal>ALTER TABLE</literal>
-            operations <literal>ADD COLUMN</literal>, <literal>ADD
-            INDEX</literal>, and <literal>DROP INDEX</literal> is
-            available. When the <literal>ONLINE</literal> keyword is
-            used, the <literal>ALTER TABLE</literal> is non-copying,
-            which means that indexes do not have to be re-created, which
-            provides these benefits:
+          <formalpara>
 
-            <itemizedlist>
+            <title>Enhanced selection options for transaction coordinator</title>
 
-              <listitem>
-                <para>
-                  Single user mode is no longer required for
-                  <literal>ALTER TABLE</literal> operations that can be
-                  performed online.
-                </para>
-              </listitem>
+            <para>
+              New values and behaviors are introduced for
+              <option>--ndb_optimized_node_selection</option> allowing
+              for greater flexibility when an SQL node chooses a
+              transaction coordinator. See
+              <link linkend="option_mysqld_ndb_optimized_node_selection"><citetitle>MySQL
+              Cluster System Variables:
+              <literal>ndb_optimized_node_selection</literal></citetitle></link>,
+              for more information.
+            </para>
 
-              <listitem>
-                <para>
-                  Transactions can continue during <literal>ALTER
-                  TABLE</literal> operations that can be performed
-                  online.
-                </para>
-              </listitem>
+          </formalpara>
+        </listitem>
 
-              <listitem>
-                <para>
-                  Tables being altered online are not locked.
-                </para>
-              </listitem>
+        <listitem>
+          <formalpara>
 
-            </itemizedlist>
+            <title>Replication heartbeats</title>
 
-            Online <literal>CREATE INDEX</literal> and <literal>DROP
-            INDEX</literal> statements are also supported. Online
-            changes can be suppressed using the
-            <literal>OFFLINE</literal> key word. See
-            <xref linkend="alter-table"/>,
-            <xref linkend="create-index"/>, and
-            <xref linkend="drop-index"/>, for more detailed information.
-            (MySQL 5.1.22-ndb-6.3.2)
-          </para>
-        </listitem>
+            <para>
+              Replication heartbeats facilitate the task of monitoring
+              and detecting failures in master-slave connections in real
+              time. This feature is implemented via a new
+              <literal>MASTER_HEARTBEAT_PERIOD =
+              <replaceable>value</replaceable></literal> clause for the
+              <literal>CHANGE MASTER TO</literal> statement and the
+              addition of two status variables
+              <literal>Slave_heartbeat_period</literal> and
+              <literal>Slave_received_heartbeats</literal>. For more
+              information, see <xref linkend="change-master-to"/>.
+            </para>
 
-        <listitem>
-          <para>
-            Recovery of multi-way replication setups (one master, many
-            slaves) is now supported via the
-            <option>--ndb-log-orig</option> server option and changes in
-            the <literal>mysql.ndb_binlog_index</literal> table. (MySQL
-            5.1.22-ndb-6.3.2)
-          </para>
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            New values and behaviors are introduced for
-            <option>--ndb_optimized_node_selection</option> allowing for
-            greater flexibility when an SQL node chooses a transaction
-            coordinator. (MySQL 5.1.22-ndb-6.3.4)
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            A <option>--bind-address</option> option has been added to a
-            number of MySQL client programs for use on computers having
-            multiple network interfaces. The option allows you to choose
-            which interface (IP address or hostname) is used to connect
-            to the MySQL server. (MySQL 5.1.22-ndb-6.3.4)
-          </para>
-        </listitem>
+            <title><literal>NDB</literal> thread locks</title>
 
-        <listitem>
-          <para>
-            A <option>--master-bind</option> option has been added to
-            <command>mysqld</command>. This makes it possible to specify
-            the network interface to use for connecting to the master by
-            a replication slave having multiple network addresses. This
-            can also be set at run time using the <literal>MASTER_BIND =
-            '<replaceable>interface</replaceable>'</literal> clause in a
-            <literal>CHANGE MASTER TO</literal> statement.(MySQL
-            5.1.22-ndb-6.3.4)
-          </para>
-        </listitem>
+            <para>
+              It is possible to lock <literal>NDB</literal> execution
+              threads and maintenance threads (such as filesystem and
+              other operating system threads) to specific CPUs on
+              multiprocessor data node hosts, and to leverage real-time
+              scheduling using configuration parameters introduced in
+              MySQL 5.1.22-ndb-6.3.4.
+            </para>
 
-        <listitem>
-          <para>
-            Replication heartbeats facilitate the task of monitoring and
-            detecting failures in master-slave connections in real time.
-            This feature is implemented via a new
-            <literal>MASTER_HEARTBEAT_PERIOD =
-            <replaceable>value</replaceable></literal> clause for the
-            <literal>CHANGE MASTER TO</literal> statement and the
-            addition of two status variables
-            <literal>Slave_heartbeat_period</literal> and
-            <literal>Slave_received_heartbeats</literal>. (MySQL
-            5.1.22-ndb-6.3.4)
-          </para>
+          </formalpara>
         </listitem>
 
         <listitem>
           <para>
-            It is possible to lock <literal>NDB</literal> execution
-            threads and maintenance threads (such as filesystem and
-            other operating system threads) to specific CPUs on
-            multiprocessor data node hosts, and to leverage real-time
-            scheduling using configuration parameters introduced in
-            MySQL 5.1.22-ndb-6.3.4.
-          </para>
-        </listitem>
-
-        <listitem>
-          <para>
             The number of unnecessary reads when performing a primary
             key or unique key update has been greatly reduced. Since it
             is seldom necessary to read a record prior to an update,

@@ -776,128 +915,304 @@
         </listitem>
 
         <listitem>
-          <para>
-            Batched operations are better supported for
-            <literal>DELETE</literal> and <literal>UPDATE</literal>;
-            <literal>UPDATE WHERE...</literal> and multiple
-            <literal>DELETE</literal> operations are now correctly
-            implemented. (MySQL 5.1.22-ndb-6.3.6)
-          </para>
+          <formalpara>
+
+            <title>Batching improvements</title>
+
+            <para>
+              Support of batched <literal>DELETE</literal> and
+              <literal>UPDATE</literal> operations has been
+              significantly improved. Batching of <literal>UPDATE
+              WHERE...</literal> and multiple <literal>DELETE</literal>
+              operations is also now implemented.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Introduced the <literal>Ndb_execute_count</literal> system
-            status variable, which measures the number of round trips
-            made by SQL statements to the <literal>NDB</literal> kernel.
-            (MySQL 5.1.22-ndb-6.3.6)
-          </para>
+          <formalpara>
+
+            <title>Improved SQL statement performance metrics</title>
+
+            <para>
+              The <literal>Ndb_execute_count</literal> system status
+              variable measures the number of round trips made by SQL
+              statements to the <literal>NDB</literal> kernel, providing
+              an improved metric for determining efficiency with which
+              statements are excuted. For more information, see
+              <link linkend="option_mysqld_Ndb_execute_count"><citetitle>MySQL
+              Cluster Status Variables:
+              <literal>Ndb_execute_count</literal></citetitle></link>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Compressed local checkpoints and backups can save 50% or
-            more of the disk space used by uncompressed LCPs and
-            backups. These can be enabled using the two new data node
-            configuration parameters <literal>CompressedLCP</literal>
-            and <literal>CompressedBackup</literal>, respectively.
-            (MySQL 5.1.23-ndb-6.3.7)
-          </para>
+          <formalpara>
+
+            <title>Compressed LCPs and backups</title>
+
+            <para>
+              Compressed local checkpoints and backups can save 50% or
+              more of the disk space used by uncompressed LCPs and
+              backups. These can be enabled using the two new data node
+              configuration parameters <literal>CompressedLCP</literal>
+              and <literal>CompressedBackup</literal>, respectively. See
+              <link linkend="mysql-cluster-param-ndbd-definition-compressedbackup"><citetitle>MySQL
+              Cluster Status Variables:
+              <literal>CompressedBackup</literal></citetitle></link>,
+              and
+              <link linkend="mysql-cluster-param-ndbd-definition-compressedlcp"><citetitle>MySQL
+              Cluster Status Variables:
+              <literal>CompressedLCP</literal></citetitle></link>, for
+              more information about these parameters.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            <literal>OPTIMIZE TABLE</literal> is supported for dynamic
-            columns of in-memory <literal>NDB</literal> tables. In such
-            cases, it is no longer necessary to drop (and possibly to
-            re-create) a table, or to perform a rolling restart, in
-            order to recover memory from deleted rows for general re-use
-            by Cluster. The performance of <literal>OPTIMIZE</literal>
-            on Cluster tables can be tuned by adjusting the value of the
-            <literal>ndb_optimization_delay</literal> system variable,
-            which controls the number of milliseconds to wait between
-            processing batches of rows by <literal>OPTIMIZE
-            TABLE</literal>. (MySQL 5.1.23-ndb-6.3.7)
-          </para>
+          <formalpara>
 
-          <para>
-            <literal>OPTIMIZE TABLE</literal> can now be interrupted.
-            This can be done, for example, by killing the SQL thread
-            performing the <literal>OPTIMIZE</literal> operation. (MySQL
-            5.1.23-ndb-6.3.8)
-          </para>
+            <title><literal>OPTIMIZE TABLE</literal> support with
+              <literal>NDBCLUSTER</literal> tables</title>
+
+            <para>
+              <literal>OPTIMIZE TABLE</literal> is supported for dynamic
+              columns of in-memory <literal>NDB</literal> tables. In
+              such cases, it is no longer necessary to drop (and
+              possibly to re-create) a table, or to perform a rolling
+              restart, in order to recover memory from deleted rows for
+              general re-use by Cluster. The performance of
+              <literal>OPTIMIZE</literal> on Cluster tables can be tuned
+              by adjusting the value of the
+              <literal>ndb_optimization_delay</literal> system variable,
+              which controls the number of milliseconds to wait between
+              processing batches of rows by <literal>OPTIMIZE
+              TABLE</literal>. In addition, <literal>OPTIMIZE
+              TABLE</literal> on an <literal>NDBCLUSTER</literal> table
+              can be interrupted by, for example, killing the SQL thread
+              performing the <literal>OPTIMIZE</literal> operation.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            It is possible to cause statements occurring within the same
-            transaction to be run as a batch by setting the session
-            variable <literal>transaction_allow_batching</literal> to
-            <literal>1</literal> or <literal>ON</literal>. To use this
-            feature, <literal>AUTOCOMMIT</literal> must be set to
-            <literal>0</literal> or <literal>OFF</literal>. (MySQL
-            5.1.23-ndb-6.3.7)
-          </para>
+          <formalpara>
 
-          <para>
-            Batch sizes can be controlled using the
-            <option>--ndb-batch-size</option> option for
-            <command>mysqld</command>. (MySQL 5.1.23-ndb-6.3.8)
-          </para>
+            <title>Batching of transactions</title>
+
+            <para>
+              It is possible to cause statements occurring within the
+              same transaction to be run as a batch by setting the
+              session variable
+              <literal>transaction_allow_batching</literal> to
+              <literal>1</literal> or <literal>ON</literal>. To use this
+              feature, <literal>AUTOCOMMIT</literal> must be set to
+              <literal>0</literal> or <literal>OFF</literal>. Batch
+              sizes can be controlled using the
+              <option>--ndb-batch-size</option> option for
+              <command>mysqld</command>. For more information, see
+              <xref linkend="mysql-cluster-mysqld-command-options"/>,
+              and <xref linkend="mysql-cluster-system-variables"/>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            It is possible using <command>ndb_restore</command> to
-            restore data reliably from a column of a given type to a
-            column that uses a <quote>larger</quote> type. (This is also
-            referred to as <firstterm>attribute promotion</firstterm>.)
-            For example, MySQL Cluster backup data that originated in a
-            <literal>SMALLINT</literal> column can be restored to a
-            <literal>MEDIUMINT</literal>, <literal>INT</literal>, or
-            <literal>BIGINT</literal> column. (MySQL 5.1.23-ndb-6.3.8)
-          </para>
+          <formalpara>
+
+            <title>Attribute promotion with <command>ndb_restore</command></title>
+
+            <para>
+              It is possible using <command>ndb_restore</command> to
+              restore data reliably from a column of a given type to a
+              column that uses a <quote>larger</quote> type. This is
+              sometimes referred to as <firstterm>attribute
+              promotion</firstterm>. For example, MySQL Cluster backup
+              data that originated in a <literal>SMALLINT</literal>
+              column can be restored to a <literal>MEDIUMINT</literal>,
+              <literal>INT</literal>, or <literal>BIGINT</literal>
+              column. See <xref linkend="mysql-cluster-restore"/>, for
+              more information.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            <literal>NDB_LE_MemoryUsage.page_size_kb</literal> has been
-            renamed to
-            <literal>NDB_LE_MemoryUsage.page_size_bytes</literal>.
-            (MySQL 5.1.23-ndb-6.3.8)
-          </para>
+          <formalpara>
+
+            <title>Parallel data node recovery</title>
+
+            <para>
+              Recovery of multiple data nodes can now be done in
+              parallel, rather than sequentially. In other words,
+              several data nodes can be restored concurrently, which can
+              often result in much faster recovery times than when they
+              are restored one at a time.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Recovery of multiple data nodes can be done in parallel,
-            rather than sequentially, which can result in much faster
-            recovery times. (MySQL 5.1.23-ndb-6.3.8)
-          </para>
+          <formalpara>
+
+            <title>Increased local checkpoint efficiency</title>
+
+            <para>
+              Only 2 local checkpoints are stored, rather than 3,
+              lowering disk space requirements and the size and number
+              of redo log files.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Only 2 local checkpoints are stored, rather than 3, lowering
-            disk space requirements and the size and number of redo log
-            files. (MySQL 5.1.23-ndb-6.3.8)
-          </para>
+          <formalpara>
+
+            <title><literal>NDBCLUSTER</literal> table persistence control</title>
+
+            <para>
+              Persistence of <literal>NDB</literal> tables can be
+              controlled using the session variables
+              <literal>ndb_table_temporary</literal> and
+              <literal>ndb_table_no_logging</literal>.
+              <literal>ndb_table_no_logging</literal> causes
+              <literal>NDB</literal> tables not to be checkpointed to
+              disk; <literal>ndb_table_temporary</literal> does the
+              same, and in addition, no schema files are created. See
+              <xref linkend="mysql-cluster-option-tables"/>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Persistence of <literal>NDB</literal> tables can be
-            controlled using the session variables
-            <literal>ndb_table_temporary</literal> and
-            <literal>ndb_table_no_logging</literal>.
-            <literal>ndb_table_no_logging</literal> causes
-            <literal>NDB</literal> tables not to be checkpointed to
-            disk; <literal>ndb_table_temporary</literal> does the same,
-            and in addition, no schema files are created. (MySQL
-            5.1.23-ndb-6.3.8)
-          </para>
+          <formalpara>
+
+            <title>Epoll support (<emphasis>Linux only</emphasis>)</title>
+
+            <para>
+              <firstterm>Epoll</firstterm> is an improved method for
+              handling file descriptors, which is more efficient than
+              scanning to determine whether a file descriptor has data
+              to be read. (The term <firstterm>epoll</firstterm> is
+              specific to Linux and equivalent functionality is known by
+              other names on other platforms such as Solaris and
+              FreeBSD.) Currently, MySQL Cluster supports this
+              functionality on Linux only.
+            </para>
+
+          </formalpara>
         </listitem>
 
+        <listitem>
+          <formalpara>
+
+            <title>Distribution awareness (SQL nodes)</title>
+
+            <para>
+              In &mccge-series; 6.3, SQL nodes can take advantage of
+              <link linkend="mysql-cluster-changes-5-1-distribution-awareness">distribution
+              awareness</link>. Here we provide a brief example showing
+              how to design a table to make a given class of queries
+              distrubtion-aware. Suppose an
+              <literal>NDBCLUSTER</literal> table <literal>t1</literal>
+              has the following schema:
+
+<programlisting>
+CREATE TABLE t1 (
+    userid INT NOT NULL,
+    serviceid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
+    data VARCHAR(255)
+)   ENGINE=NDBCLUSTER;
+</programlisting>
+
+              Suppose further that most of the queries to be used in our
+              application test values of the <literal>userid</literal>
+              column of this table. The form of such a query looks
+              something like this:
+
+<programlisting>
+SELECT <replaceable>columns</replaceable> FROM t1 
+    WHERE userid <replaceable>relation</replaceable> <replaceable>value</replaceable>;  
+</programlisting>
+
+              In this query, <replaceable>relation</replaceable>
+              represents some relational operator, such as
+              <literal>=</literal>, <literal>&lt;</literal>,
+              <literal>&gt;</literal>, and so on. Queries using
+              <literal>IN</literal> and a list of values can also be
+              used:
+
+<programlisting>
+SELECT <replaceable>columns</replaceable> FROM t1 
+    WHERE userid IN <replaceable>value_list</replaceable>;  
+</programlisting>
+
+              In order to make use of distribution awareness, we need to
+              make the <literal>userid</literal> column part of the
+              table&apos;s primary key, then explicitly partition the
+              table with this column being used as the partitioning key.
+              (Recall that for a partitioned table having one or more
+              unique keys, all columns of the table&apos;s partitioning
+              key must also be part of all of the unique keys &mdash;
+              for more information and examples, see
+              <xref linkend="partitioning-limitations-partitioning-keys-unique-keys"/>.)
+              In other words, the table schema should be equivalent to
+              the following <literal>CREATE TABLE</literal> statement:
+
+<programlisting>
+CREATE TABLE t1 (
+    userid INT NOT NULL,
+    serviceid INT NOT NULL AUTO_INCREMENT,
+    data VARCHAR(255),
+    PRIMARY KEY p (userid,serviceid)
+)   ENGINE=NDBCLUSTER
+    PARTITION BY KEY(userid);
+</programlisting>
+
+              When the table is partitioned in this way, all rows having
+              the same <literal>userid</literal> value are found on the
+              same node group, and the MySQL Server can immediately
+              select the optimal node to use as the transaction
+              coordinator.
+            </para>
+
+          </formalpara>
+        </listitem>
+
+        <listitem>
+          <formalpara>
+
+            <title>Realtime extensions for multiple CPUs</title>
+
+            <para>
+              When running MySQL Cluster data nodes on hosts with
+              multiple processors, the realtime extensions make it
+              possible to give priority to the data node process and
+              control on which CPU cores it should operate. This can be
+              done using the data node configuration parameters
+              <literal>RealtimeScheduler</literal>,
+              <literal>SchedulerExecutionTimer</literal> and
+              <literal>SchedulerSpinTimer</literal>. Doing so properly
+              can significantly lower response times and make them much
+              more predictable response. For more information about
+              using these parameters, see
+              <link linkend="mysql-cluster-realtime-performance-parameters">Defining
+              Data Nodes: Realtime Performance Parameters</link>
+            </para>
+
+          </formalpara>
+        </listitem>
+
       </itemizedlist>
     </para>
 


Modified: trunk/refman-5.1/Makefile.depends
===================================================================
--- trunk/refman-5.1/Makefile.depends	2008-05-21 12:39:50 UTC (rev 10798)
+++ trunk/refman-5.1/Makefile.depends	2008-05-21 15:12:31 UTC (rev 10799)
Changed blocks: 3, Lines Added: 9, Lines Deleted: 0; 1792 bytes

@@ -1725,6 +1725,7 @@
 	../ndbapi/metadata/class-ndboperation.idmap \
 	../ndbapi/metadata/class-ndbtransaction.idmap \
 	../ndbapi/metadata/class-table.idmap \
+	../ndbapi/metadata/interface-ndbrecord.idmap \
 	../ndbapi/metadata/mgm-api.idmap \
 	../ndbapi/metadata/ndb-errors.idmap \
 	../ndbapi/metadata/ndb-internals.idmap \

@@ -2166,9 +2167,16 @@
 mysql_cluster_roadmap_IMAGES =
 mysql_cluster_roadmap_SOURCES = mysql-cluster-roadmap.xml $(mysql_cluster_roadmap_INCLUDES)
 mysql_cluster_roadmap_IDMAPS = \
+	../ndbapi/metadata/interface-ndbrecord.idmap \
+	../ndbapi/metadata/ndb-internals.idmap \
+	../refman-5.1/metadata/mysql-cluster-backup.idmap \
+	../refman-5.1/metadata/mysql-cluster-configuration.idmap \
 	../refman-5.1/metadata/mysql-cluster-disk-data.idmap \
 	../refman-5.1/metadata/mysql-cluster-limitations.idmap \
+	../refman-5.1/metadata/mysql-cluster-management.idmap \
 	../refman-5.1/metadata/mysql-cluster-news-core.idmap \
+	../refman-5.1/metadata/mysql-cluster-optvar-core.idmap \
+	../refman-5.1/metadata/mysql-cluster-process-management.idmap \
 	../refman-5.1/metadata/mysql-cluster-replication.idmap \
 	../refman-5.1/metadata/mysql-cluster-roadmap.idmap \
 	../refman-5.1/metadata/partitioning.idmap \

@@ -2330,6 +2338,7 @@
 	../ndbapi/metadata/class-dictionary.idmap \
 	../ndbapi/metadata/class-ndb-cluster-connection.idmap \
 	../ndbapi/metadata/class-ndb.idmap \
+	../ndbapi/metadata/interface-ndbrecord.idmap \
 	../ndbapi/metadata/mgm-api.idmap \
 	../ndbapi/metadata/ndb-errors.idmap \
 	../ndbapi/metadata/ndb-internals.idmap \


Modified: trunk/refman-5.1/mysql-cluster-roadmap.xml
===================================================================
--- trunk/refman-5.1/mysql-cluster-roadmap.xml	2008-05-21 12:39:50 UTC (rev 10798)
+++ trunk/refman-5.1/mysql-cluster-roadmap.xml	2008-05-21 15:12:31 UTC (rev 10799)
Changed blocks: 12, Lines Added: 865, Lines Deleted: 550; 66697 bytes

@@ -19,11 +19,6 @@
     <primary>New features in MySQL Cluster</primary>
   </indexterm>
 
-  <remark role="todo">
-    [js] Update to get rid of items already implemented that were listed
-    as "future" items here. (Waiting on feedback from Jeb, et al.)
-  </remark>
-
   <remark role="note">
     [js] Altered previously version-specific section ID, title.
   </remark>

@@ -31,35 +26,143 @@
   <remark>
     Author: Jon Stephens. Based on Mikael Ronström's "Cluster News"
     announcement of 2005-04-06 and other info from Mikael Ronström,
-    Jonas Oreland, et al.
+    Jonas Oreland, et al. Updated with information from NDB developers
+    and support staff; May 2008 reorganisation inspired and assisted by
+    Johan Andersson.
   </remark>
 
-  <remark role="todo">
-    [pd] I see nothing for next-series. [js] Commented out reference for
-    now.
-  </remark>
-
   <para>
     In this section, we discuss changes in the implementation of MySQL
     Cluster in MySQL &current-series; and &mccge-series; as compared to
     MySQL &previous-series;.
+  </para>
 
-<!-- 
-      We also discuss our roadmap for further improvements to MySQL Cluster 
-      as currently planned for MySQL &next-series;. 
+<!--  
+  <para>
+    
+    <remark role="TODO">
+      [js] Uncomment and expand this para when we have some likely future
+      improvements to describe, or possibly add new section for these. 
+    </remark>
+    We also discuss our roadmap for further improvements to MySQL Cluster 
+    as currently planned for MySQL &next-series;.
+  </para>
 -->
-  </para>
 
   <para>
     There are a number of significant changes in the implementation of
-    the <literal>NDBCLUSTER</literal> storage engine in MySQL 5.1 as
-    compared to that in MySQL 5.0. For an overview of these changes, see
-    <xref linkend="mysql-cluster-changes-5-1"/>
+    the <literal>NDBCLUSTER</literal> storage engine in mainline MySQL
+    5.1 releases up to and including MySQL 5.1.23 as compared to that in
+    MySQL 5.0; &mccge-series; makes further changes and improvements in
+    MySQL Cluster in addition to these. The changes and features most
+    likely to be of interest are shown in the following table:
+
+    <remark role="TODO">
+      [js] Add IDs to items in subsections and make entries in this
+      table links to these...
+    </remark>
+
+    <informaltable>
+      <tgroup cols="1">
+        <colspec colwidth="50*"/>
+        <thead>
+          <row>
+            <entry><link linkend="mysql-cluster-changes-5-1">MySQL 5.1 (through
+              5.1.23)</link></entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+            <entry>MySQL Cluster Replication</entry>
+          </row>
+          <row>
+            <entry>Disk Data storage</entry>
+          </row>
+          <row>
+            <entry>Variable-size columns</entry>
+          </row>
+          <row>
+            <entry>User-defined partitioning</entry>
+          </row>
+          <row>
+            <entry>Autodiscovery of table schema changes</entry>
+          </row>
+        </tbody>
+      </tgroup>
+      <tgroup cols="1">
+        <colspec colwidth="50*"/>
+        <thead>
+          <row>
+            <entry><link linkend="mysql-cluster-changes-5-1-ndb-6-1">&mccge-series;
+              6.1</link></entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+            <entry>Greater number of cluster nodes</entry>
+          </row>
+          <row>
+            <entry>Disabling of arbitration</entry>
+          </row>
+          <row>
+            <entry>Additional <literal>DUMP</literal> commands</entry>
+          </row>
+          <row>
+            <entry>Faster Disk Data backups</entry>
+          </row>
+          <row>
+            <entry>Batched slave updates</entry>
+          </row>
+        </tbody>
+      </tgroup>
+      <tgroup cols="1">
+        <colspec colwidth="50*"/>
+        <thead>
+          <row>
+            <entry><link linkend="mysql-cluster-changes-5-1-ndb-6-2">&mccge-series;
+              6.2</link></entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+            <entry>y</entry>
+          </row>
+          <row>
+            <entry>y</entry>
+          </row>
+          <row>
+            <entry>x</entry>
+            <entry>y</entry>
+          </row>
+        </tbody>
+      </tgroup>
+      <tgroup cols="1">
+        <colspec colwidth="50*"/>
+        <thead>
+          <row>
+            <entry><link linkend="mysql-cluster-changes-5-1-ndb-6-3">&mccge-series;
+              6.3</link></entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+            <entry>y</entry>
+          </row>
+          <row>
+            <entry>y</entry>
+          </row>
+          <row>
+            <entry>x</entry>
+            <entry>y</entry>
+          </row>
+        </tbody>
+      </tgroup>
+    </informaltable>
   </para>
 
   <section id="mysql-cluster-changes-5-1">
 
-    <title>MySQL Cluster Changes in MySQL 5.1</title>
+    <title>Features Added in MySQL 5.1 Cluster</title>
 
     <indexterm>
       <primary>MySQL Cluster</primary>

@@ -68,7 +171,10 @@
 
     <para>
       A number of new features for MySQL Cluster have been implemented
-      in MySQL 5.1:
+      in MySQL 5.1 through MySQL 5.1.23, when support for MySQL Cluster
+      was moved to &mccge-series;. All of the features in the following
+      list are also available in all &mccge-series; (6.1 and later)
+      releases.
     </para>
 
     <itemizedlist>

@@ -79,11 +185,21 @@
           <title>Integration of MySQL Cluster into MySQL Replication</title>
 
           <para>
-            This makes it possible to update from any MySQL Server in
-            the cluster and still have the MySQL Replication handled by
-            one of the MySQL Servers in the cluster, with the state of
-            the slave side remaining consistent with the cluster acting
-            as the master.
+            MySQL Cluster Replication makes it possible to replicate
+            from one MySQL Cluster to another. Updates on any SQL node
+            (MySQL server) in the cluster acting as the master are
+            replicated to the slave cluster; the state of the slave side
+            remains consistent with the cluster acting as the master.
+            This is sometimes referred to as <firstterm>asynchronous
+            replication</firstterm> between clusters, providing
+            <firstterm>geographic redundancy</firstterm>. It is also
+            possible to replicate from a MySQL Cluster acting as the
+            master to a standalone MySQL server acting as the slave, or
+            from a standalone MySQL master server to to a slave cluster;
+            in either of these cases, the standalone MySQL server uses a
+            storage engine other than <literal>NDBCLUSTER</literal>.
+            Multi-master replication setups such as circular replication
+            are also supported.
           </para>
 
         </formalpara>

@@ -96,12 +212,13 @@
       <listitem>
         <formalpara>
 
-          <title>Support for disk-based records</title>
+          <title>Support for storage of rows on disk</title>
 
           <para>
-            Records on disk are now supported. Indexed columns,
-            including the primary key hash index, must still be stored
-            in RAM; however, all other columns can be stored on disk.
+            Storage of <literal>NDBCLUSTER</literal> table data on disk
+            is now supported. Indexed columns, including the primary key
+            hash index, must still be stored in RAM; however, all other
+            columns can be stored on disk.
           </para>
 
         </formalpara>

@@ -114,16 +231,17 @@
       <listitem>
         <formalpara>
 
-          <title>Variable-sized records</title>
+          <title>Variable-size columns</title>
 
           <para>
-            A column defined as <literal>VARCHAR(255)</literal>
-            currently uses 260 bytes of storage independent of what is
-            stored in any particular record. In MySQL 5.1 Cluster
-            tables, only the portion of the column actually taken up by
-            the record will be stored. This will make possible a
-            reduction in space requirements for such columns by a factor
-            of 5 in many cases.
+            In MySQL 5.0, an <literal>NDBCLUSTER</literal> table column
+            defined as <literal>VARCHAR(255)</literal> used 260 bytes of
+            storage independent of what was stored in any particular
+            record. In MySQL 5.1 Cluster tables, only the portion of the
+            column actually taken up by the record is stored. This makes
+            possible a significant reduction in space requirements for
+            such columns as compared to previous release series &mdash;
+            by a factor of up to 5 in many cases.
           </para>
 
         </formalpara>

@@ -157,8 +275,10 @@
         <para>
           The MySQL Server can also determine whether it is possible to
           <quote>prune away</quote> some of the partitions from the
-          <literal>WHERE</literal> clause. See
-          <xref linkend="partitioning-pruning"/>.
+          <literal>WHERE</literal> clause, which can greatly speed up
+          some queries. See <xref linkend="partitioning-pruning"/>, for
+          information about designing tables and queries to take
+          advantage of partition pruning.
         </para>
       </listitem>
 

@@ -168,25 +288,104 @@
           <title>Autodiscovery of table schema changes</title>
 
           <para>
-            In MySQL 5.1, you no longer need to issue <literal>FLUSH
-            TABLES</literal> or a <quote>dummy</quote>
+            In MySQL 5.0, it was necessary to issue a <literal>FLUSH
+            TABLES</literal> statement or a <quote>dummy</quote>
             <literal>SELECT</literal> in order for new
-            <literal>NDB</literal> tables or changes made to schemas of
-            existing <literal>NDB</literal> tables on one SQL node to be
-            visible on the cluster's other SQL nodes.
+            <literal>NDBCLUSTER</literal> tables or changes made to
+            schemas of existing <literal>NDBCLUSTER</literal> tables on
+            one SQL node to be visible on the cluster&apos;s other SQL
+            nodes. In MySQL 5.1, this is no longer necessary; new
+            Cluster tables and changes in the definitions of existing
+            <literal>NDBCLUSTER</literal> tables made on one SQL node
+            are immediately visible to all SQL nodes connected to the
+            cluster.
           </para>
 
         </formalpara>
 
         <note>
           <para>
-            When creating a new database, it is still necessary to issue
-            a <literal>CREATE DATABASE</literal> or <literal>CREATE
-            SCHEMA</literal> statement on each SQL node in the cluster.
+            When creating a new database, it is still necessary in MySQL
+            5.1 to issue a <literal>CREATE DATABASE</literal> or
+            <literal>CREATE SCHEMA</literal> statement on each SQL node
+            in the cluster.
           </para>
         </note>
       </listitem>
 
+      <listitem>
+        <formalpara>
+
+          <title>Distribution awareness (NDB API)</title>
+
+          <para id="mysql-cluster-changes-5-1-distribution-awareness">
+            <firstterm>Distribution awareness</firstterm> is a mechanism
+            by which the best data node is automatically selected to be
+            queried for information. (Conceptually, it is similar in
+            some ways to partition pruning (see
+            <xref linkend="partitioning-pruning"/>). To take advantage
+            of distribution awareness, you should do the following:
+
+            <orderedlist>
+
+              <listitem>
+                <para>
+                  Determine which table column is most likely to be used
+                  for finding matching records.
+                </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  Make this column part of the table&apos;s primary key.
+                </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  Explicitly partition the table by
+                  <literal>KEY</literal>, using this column as the
+                  table&apos; partitioning key.
+                </para>
+              </listitem>
+
+            </orderedlist>
+
+            Following these steps causes records with the same value for
+            the partitioning column to be stored on the same partition
+            (that is, in the same node group). When reading data,
+            transactions are begun on the data node actually having the
+            desired rows instead of this node being determined by the
+            usual round-robin mechanism.
+
+            <important>
+              <para>
+                In order to see a measureable impact on performance, the
+                cluster must have at least four data nodes, since, with
+                only two data nodes, both data nodes have exactly the
+                same data.
+              </para>
+            </important>
+
+            Using distribution awareness can yield performance increase
+            of as great as 45% when using four data nodes, and possibly
+            more when using a greater number of data nodes.
+
+            <note>
+              <para>
+                In mainline MySQL 5.1 releases, distribution awareness
+                was supported only when using the NDB API; support was
+                added for SQL and API nodes in &mccge-series; 6.3 (see
+                <xref linkend="mysql-cluster-changes-5-1-ndb-6-3"/>,
+                which includes an example showing how to create a table
+                in order to take advantage of distribution awareness).
+              </para>
+            </note>
+          </para>
+
+        </formalpara>
+      </listitem>
+
     </itemizedlist>
 
     <para>

@@ -217,124 +416,95 @@
 
   <section id="mysql-cluster-changes-5-1-ndb-6-1">
 
-    <title>Overview of MySQL Cluster Changes in &mccge-series; 6.1.x</title>
+    <title>Features Added in &mccge-series; 6.1</title>
 
     <para>
       The following list provides an overview of significant feature
-      additions and changes made in &mccge-series; 6.1.x releases. For
-      detailed information, see
-      <xref linkend="mysql-cluster-news-6-1"/>.
+      additions and changes made in &mccge-series; 6.1. All of the
+      changes in this list are also available in &mccge-series; 6.2 and
+      6.3 releases. For detailed information about all changes made in
+      &mccge-series; 6.1, see <xref linkend="mysql-cluster-news-6-1"/>.
 
       <itemizedlist>
 
         <listitem>
-          <para>
-            Enhanced backup status reporting, aided in part by the
-            introduction of a <literal>BackupReportFrequency</literal>
-            configuration parameter (MySQL 5.1.14-ndb-6.1.0).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            Maximum number of all nodes in a cluster increased to 255
-            (MySQL 5.1.14-ndb-6.1.1).
-          </para>
-        </listitem>
+            <title>Increased number of cluster nodes</title>
 
-        <listitem>
-          <para>
-            Addition of the <literal>NDB</literal> API
-            <literal>Dictionary::listEvents()</literal> method (MySQL
-            5.1.15-ndb-6.1.3).
-          </para>
-        </listitem>
+            <para>
+              The maximum number of all nodes in a MySQL Cluster has
+              been increased to 255. For more information, see
+              <xref linkend="mysql-cluster-limitations-multiple-nodes"/>.
+            </para>
 
-        <listitem>
-          <para>
-            Ability to disable arbitration, by setting
-            <literal>ArbitrationRank=0</literal> on all nodes (MySQL
-            5.1.15-ndb-6.1.3).
-          </para>
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Inclusion of the <command>ndbd_redo_log_reader</command>
-            utility in the default build (MySQL 5.1.15-ndb-6.1.3).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            New methods of the <literal>Ndb_cluster_connection</literal>
-            class, making it possible to iterate over all existing
-            <literal>Ndb</literal> objects (MySQL 5.1.15-ndb-6.1.4).
-          </para>
-        </listitem>
+            <title>Disabling arbitration</title>
 
-        <listitem>
-          <para>
-            <option>--ndb-wait-connected</option> option for
-            <command>mysqld</command>, causing <command>mysqld</command>
-            wait a specified amount of time to be connected to the
-            cluster before starting to accept client connections (MySQL
-            5.1.15-ndb-6.1.4).
-          </para>
-        </listitem>
+            <para>
+              It is now possible to disable arbitration by setting
+              <literal>ArbitrationRank=0</literal> on all cluster
+              management and SQL nodes. For more information, see
+              <link linkend="mysql-cluster-param-mgm-definition-arbitrationrank"><citetitle>Defining
+              the Management Server:
+              <literal>ArbitrationRank</literal></citetitle></link> and
+              <link linkend="mysql-cluster-param-api-definition-arbitrationrank"><citetitle>Defining
+              SQL and Other API Nodes:
+              <literal>ArbitrationRank</literal></citetitle></link>.
+            </para>
 
-        <listitem>
-          <para>
-            Improved data node memory allocation (MySQL
-            5.1.15-ndb-6.1.4).
-          </para>
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Ability to pipe output of <command>ndb_restore</command> to
-            CSV file (MySQL 5.1.15-ndb-6.1.5).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            A new <literal>FragmentLogFileSize</literal> configuration
-            parameter makes it possible to set the size of redo log
-            files (MySQL 5.1.15-ndb-6.1.11).
-          </para>
+            <title>Additional <literal>DUMP</literal> commands</title>
+
+            <para>
+              New management client <literal>DUMP</literal> commands
+              provide help with tracking transactions, scan operations,
+              and locks. See
+              <xref linkend="mysql-cluster-mgm-client-commands"/>, and
+              <xref linkend="ndb-internals-dump-commands"/>, for more
+              information.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            <literal>MaxAllocate</literal> configuration parameter makes
-            it possible to set the maximum size of the allocation unit
-            used for table memory (MySQL 5.1.15-ndb-6.1.12).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            New management client <literal>DUMP</literal> commands
-            providing help with tracking transactions, scan operations,
-            and locks (MySQL 5.1.15-ndb-6.1.12).
-          </para>
+            <title>Faster Disk Data backups</title>
+
+            <para>
+              Improvements in backups of Disk Data tables can yield a 10
+              to 15% increase in backup speed of Disk Data tables.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Improvements in backups of Disk Data tables resulted in a 10
-            to 15% increase in backup speed of Disk Data tables (MySQL
-            5.1.15-ndb-6.1.13).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            Batching of updates on cluster replication slaves, enabled
-            using the <option>--slave-allow-batching</option> option for
-            <command>mysqld</command> (MySQL 5.1.15-ndb-6.1.17).
-          </para>
+            <title>Batched slave updates</title>
+
+            <para>
+              Batching of updates on cluster replication slaves, enabled
+              using the <option>--slave-allow-batching</option> option
+              for <command>mysqld</command>, increases replication
+              efficiency. For more information, see
+              <xref linkend="mysql-cluster-replication-starting"/>.
+            </para>
+
+          </formalpara>
         </listitem>
 
       </itemizedlist>

@@ -344,213 +514,281 @@
 
   <section id="mysql-cluster-changes-5-1-ndb-6-2">
 
-    <title>Overview of MySQL Cluster Changes in &mccge-series; 6.2.x</title>
+    <title>Features Added in &mccge-series; 6.2</title>
 
     <para>
       The following list provides an overview of significant feature
-      additions and changes made in &mccge-series; 6.2.x releases. For
-      detailed information, see
+      additions and changes made in &mccge-series; 6.2. All of the
+      changes in this list are also available in &mccge-series; 6.3 .
+      For more detailed information about all feature changes and
+      bugfixes made in &mccge-series; 6.2, see
       <xref linkend="mysql-cluster-news-6-2"/>.
 
       <itemizedlist>
 
         <listitem>
-          <para>
-            Mutliple cluster connections by a single MySQL server using
-            the <option>--ndb-cluster-connection-pool</option> startup
-            option for <command>mysqld</command> (MySQL
-            5.1.18-ndb-6.2.2).
-          </para>
+          <formalpara>
+
+            <title>Enhanced backup status reporting</title>
+
+            <para>
+              Backup status reporting has been improved, aided in part
+              by the introduction of a
+              <literal>BackupReportFrequency</literal> configuration
+              parameter; see
+              <link linkend="mysql-cluster-param-ndbd-definition-backupreportfrequency"><citetitle>Defining
+              Data Nodes:
+              <literal>BackupReportFrequency</literal></citetitle></link>,
+              for more information.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            New management client <literal>DUMP</literal> commands
-            providing help with tracking transactions, scan operations,
-            and locks (MySQL 5.1.18-ndb-6.2.2).
-          </para>
+          <formalpara>
+
+            <title>Multiple cluster connections per SQL node</title>
+
+            <para>
+              A single MySQL server acting as a MySQL Cluster SQL node
+              can employ multiple connections to the cluster using the
+              <option>--ndb-cluster-connection-pool</option> startup
+              option for <command>mysqld</command>. This option is
+              described in
+              <link linkend="option_mysqld_ndb-cluster-connection-pool"><citetitle>MySQL
+              Cluster-Related Command Options for
+              <command>mysqld</command>:
+              <option>--ndb-cluster-connection-pool</option>
+              option</citetitle></link>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            The addition of the <literal>NdbRecord</literal> interface
-            and handler for the <literal>NDB</literal> API (MySQL
-            5.1.19-ndb-6.2.3).
-          </para>
+          <formalpara>
+
+            <title>New data access interface</title>
+
+            <para>
+              The <literal>NdbRecord</literal> interface provides a new
+              and simplified data handler for use in NDB API
+              applications. See <xref linkend="interface-ndbrecord"/>,
+              for more information.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Enhanced reporting, aided in part by the introduction of a
-            <literal>BackupReportFrequency</literal> configuration
-            parameter as well as new management client <literal>REPORT
-            BackupStatus</literal> and <literal>REPORT
-            MemoryUsage</literal> commands (MySQL 5.1.19-ndb-6.2.3).
-          </para>
+          <formalpara>
+
+            <title>New reporting commands</title>
+
+            <para>
+              The new management client <literal>REPORT
+              BackupStatus</literal> and <literal>REPORT
+              MemoryUsage</literal> commands provide better access to
+              information about the status of MySQL Cluster backups and
+              how much memory is being used by MySQL Cluster for data
+              and index storage. See
+              <xref linkend="mysql-cluster-mgm-client-commands"/>, for
+              more information about the <literal>REPORT</literal>
+              commands. In addition, in-progress status reporting is
+              provided by the <command>ndb_restore</command> utility;
+              see <xref linkend="mysql-cluster-restore"/>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            In-progress status reporting by
-            <command>ndb_restore</command> (MySQL 5.1.19-ndb-6.2.3).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            Batching of updates on cluster replication slaves, enabled
-            using the <option>--slave-allow-batching</option> option for
-            <command>mysqld</command> (MySQL 5.1.19-ndb-6.2.3).
-          </para>
+            <title>Improved memory allocation and configuration</title>
+
+            <para>
+              Memory is now allocated by the <literal>NDB</literal>
+              kernel to tables on a page-by-page basis, which
+              significantly reduces the memory overhead required for
+              maintaining <literal>NDBCLUSTER</literal> tables. In
+              addition, the <literal>MaxAllocate</literal> configuration
+              parameter now makes it possible to set the maximum size of
+              the allocation unit used for table memory; for more
+              information about this configuratin parameter, see
+              <link linkend="mysql-cluster-param-ndbd-definition-maxallocate"><citetitle>Defining
+              Data Nodes:
+              <literal>MaxAllocate</literal></citetitle></link>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Improved memory allocation in the <literal>NDB</literal>
-            kernel (MySQL 5.1.19-ndb-6.2.3).
-          </para>
+          <para></para>
         </listitem>
 
         <listitem>
-          <para>
-            Improvements in backups of Disk Data tables resulted in a 10
-            to 15% increase in backup speed of Disk Data tables (MySQL
-            5.1.19-ndb-6.2.3).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            <literal>MaxAllocate</literal> configuration parameter makes
-            it possible to set the maximum size of the allocation unit
-            used for table memory (MySQL 5.1.19-ndb-6.2.3).
-          </para>
+            <title>Choice of fixed-width or variable-width columns</title>
+
+            <para>
+              You can control whether fixed-width or variable-width
+              storage is used for a given column of an
+              <literal>NDB</literal> table by employing of the
+              <literal>COLUMN_FORMAT</literal> specifier as part of the
+              column&apos;s definition in a <literal>CREATE
+              TABLE</literal> or <literal>ALTER TABLE</literal>
+              statement. In addition, the ability to control whether a
+              given column of an <literal>NDB</literal> table is stored
+              in memory or on disk, using the <literal>STORAGE</literal>
+              specifier as part of the column's definition in a
+              <literal>CREATE TABLE</literal> or <literal>ALTER
+              TABLE</literal> statement. For more information, see
+              <xref linkend="create-table"/>, and
+              <xref linkend="alter-table"/>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            The ability to control whether fixed-width or variable-width
-            storage is used for a given column of an
-            <literal>NDB</literal> table by means of the
-            <literal>COLUMN_FORMAT</literal> specifier as part of the
-            column's definition in a <literal>CREATE TABLE</literal> or
-            <literal>ALTER TABLE</literal> statement. In addition, the
-            ability to control whether a given column of an
-            <literal>NDB</literal> table is stored in memory or on disk,
-            using the <literal>STORAGE</literal> specifier as part of
-            the column's definition in a <literal>CREATE TABLE</literal>
-            or <literal>ALTER TABLE</literal> statement. (MySQL
-            5.1.19-ndb-6.2.5)
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            The <option>--bind-address</option> cluster management
-            server startup option makes it possible to restrict
-            management client connections to <command>ndb_mgmd</command>
-            to a single host (IP address or hostname) and port. (MySQL
-            5.1.19-ndb-6.2.5)
-          </para>
+            <title>Controlling management client connections</title>
+
+            <para>
+              The <option>--bind-address</option> cluster management
+              server startup option makes it possible to restrict
+              management client connections to
+              <command>ndb_mgmd</command> to a single host (IP address
+              or hostname) and port, which can make MySQL Cluster
+              management operations more secure. For more information
+              about this option, see
+              <xref linkend="mysql-cluster-ndb-mgmd-command-options"/>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Due to a change in the protocol for handling of global
-            checkpoints (GCPs handled in this manner sometimes being
-            referred to as <quote>micro-GCPs</quote>), it is now
-            possible to control how often the GCI number is updated, and
-            how often global checkpoints are written to disk, using the
-            <literal>TimeBetweenEpochs</literal> configuration
-            parameter. This improves the reliability and performance of
-            MySQL Cluster Replication. (MySQL 5.1.22-ndb-6.2.5)
-          </para>
+          <formalpara>
 
-          <para>
-            Additional fine-tuning of micro-GCPs is made possible using
-            the <literal>TimeBetweenEpochsTimeout</literal> confiuration
-            parameter. (MySQL 5.1.22-ndb-6.2.7)
-          </para>
+            <title>Micro-GCPs</title>
+
+            <para>
+              Due to a change in the protocol for handling of global
+              checkpoints (GCPs handled in this manner sometimes being
+              referred to as <quote>micro-GCPs</quote>), it is now
+              possible to control how often the GCI number is updated,
+              and how often global checkpoints are written to disk,
+              using the <literal>TimeBetweenEpochs</literal>
+              configuration parameter. This improves the reliability and
+              performance of MySQL Cluster Replication. For more
+              information, see
+              <link linkend="mysql-cluster-param-ndbd-definition-timebetweenepochs"><citetitle>Defining
+              Data Nodes:
+              <literal>TimeBetweenEpochs</literal></citetitle></link>
+              and
+              <link linkend="mysql-cluster-param-ndbd-definition-timebetweenepochstimeout"><citetitle>Defining
+              Data Nodes:
+              <literal>TimeBetweenEpochsTimeout</literal></citetitle></link>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Support for the online <literal>ALTER TABLE</literal>
-            operations <literal>ADD COLUMN</literal>, <literal>ADD
-            INDEX</literal>, and <literal>DROP INDEX</literal> is
-            available. When the <literal>ONLINE</literal> keyword is
-            used, the <literal>ALTER TABLE</literal> is non-copying,
-            which means that indexes do not have to be re-created, which
-            provides these benefits:
+          <formalpara>
 
-            <itemizedlist>
+            <title>Core online schema change support</title>
 
-              <listitem>
-                <para>
-                  Single user mode is no longer required for
-                  <literal>ALTER TABLE</literal> operations that can be
-                  performed online.
-                </para>
-              </listitem>
+            <para>
+              Support for the online <literal>ALTER TABLE</literal>
+              operations <literal>ADD COLUMN</literal>, <literal>ADD
+              INDEX</literal>, and <literal>DROP INDEX</literal> is
+              available. When the <literal>ONLINE</literal> keyword is
+              used, the <literal>ALTER TABLE</literal> is non-copying,
+              which means that indexes do not have to be re-created,
+              which provides these benefits:
 
-              <listitem>
-                <para>
-                  Transactions can continue during <literal>ALTER
-                  TABLE</literal> operations that can be performed
-                  online.
-                </para>
-              </listitem>
+              <itemizedlist>
 
-              <listitem>
-                <para>
-                  Tables being altered online are not locked.
-                </para>
-              </listitem>
+                <listitem>
+                  <para>
+                    Single user mode is no longer required for
+                    <literal>ALTER TABLE</literal> operations that can
+                    be performed online.
+                  </para>
+                </listitem>
 
-            </itemizedlist>
+                <listitem>
+                  <para>
+                    Transactions can continue during <literal>ALTER
+                    TABLE</literal> operations that can be performed
+                    online.
+                  </para>
+                </listitem>
 
-            Online <literal>CREATE INDEX</literal> and <literal>DROP
-            INDEX</literal> statements are also supported. Online
-            changes can be suppressed using the
-            <literal>OFFLINE</literal> key word. See
-            <xref linkend="alter-table"/>,
-            <xref linkend="create-index"/>, and
-            <xref linkend="drop-index"/>, for more detailed information.
-            (MySQL 5.1.22-ndb-6.2.5)
-          </para>
+                <listitem>
+                  <para>
+                    Tables being altered online are not locked.
+                  </para>
+                </listitem>
 
-          <para>
-            Additional checks against unsupported
-            <literal>ONLINE</literal> operations were implemented, and
-            unnecessary checks were removed. (MySQL 5.1.22-ndb-6.2.7)
-          </para>
+              </itemizedlist>
+
+              Online <literal>CREATE INDEX</literal> and <literal>DROP
+              INDEX</literal> statements are also supported. Online
+              changes can be suppressed using the
+              <literal>OFFLINE</literal> key word. See
+              <xref linkend="alter-table"/>,
+              <xref linkend="create-index"/>, and
+              <xref linkend="drop-index"/>, for more detailed
+              information.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            More information has been added to the
-            <literal>mysql.ndb_binlog_index</literal> table so that it
-            is possible to determine which originating epochs have been
-            applied inside an epoch. This is useful in 3-way
-            replication. (MySQL 5.1.22-ndb-6.2.6)
-          </para>
+          <formalpara>
+
+            <title><literal>mysql.ndb_binlog_index</literal> improvements</title>
+
+            <para>
+              More information has been added to the
+              <literal>mysql.ndb_binlog_index</literal> table so that it
+              is possible to determine which originating epochs have
+              been applied inside an epoch. This is particularly useful
+              for 3-way replication. See
+              <xref linkend="mysql-cluster-replication-schema"/>, for
+              more information.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            <literal>DUMP 8011</literal> provides subscription data in
-            the cluster log. (MySQL 5.1.22-ndb-6.2.9)
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            The <literal>MaxBufferedEpochs</literal> data node
-            configuration parameter provides control over the maximum
-            number of unprocessed epochs by which a subscribing node can
-            lag. Subscribers which exceed this number are disconnected
-            and forced to reconnect. (MySQL 5.1.23-ndb-6.2.14)
-          </para>
+            <title>Epoch lag control</title>
+
+            <para>
+              The <literal>MaxBufferedEpochs</literal> data node
+              configuration parameter provides a means to control the
+              maximum number of unprocessed epochs by which a
+              subscribing node can lag. Subscribers which exceed this
+              number are disconnected and forced to reconnect. For a
+              discussion of this configuration parameter, see
+              <link linkend="mysql-cluster-param-ndbd-definition-maxbufferedepochs"><citetitle>Defining
+              Data Nodes:
+              <literal>MaxBufferedEpochs</literal></citetitle></link>.
+            </para>
+
+          </formalpara>
         </listitem>
 
       </itemizedlist>

@@ -560,211 +798,112 @@
 
   <section id="mysql-cluster-changes-5-1-ndb-6-3">
 
-    <title>Overview of MySQL Cluster Changes in &mccge-series; 6.3.x</title>
+    <title>Features Added in &mccge-series; 6.3</title>
 
     <para>
       The following list provides an overview of significant feature
-      additions and changes made in &mccge-series; 6.3.x releases. For
-      detailed information, see
+      additions and changes first made in &mccge-series; 6.3. For more
+      detailed information about all feature changes and bugfixes made
+      in &mccge-series; 6.3, see
       <xref linkend="mysql-cluster-news-6-3"/>.
 
       <itemizedlist>
 
         <listitem>
-          <para>
-            Enhanced reporting, aided in part by the introduction of a
-            <literal>BackupReportFrequency</literal> configuration
-            parameter as well as new management client <literal>REPORT
-            BackupStatus</literal> and <literal>REPORT
-            MemoryUsage</literal> commands (MySQL 5.1.19-ndb-6.3.0).
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            Implementation of conflict resolution for use in
-            multi-master replication (MySQL 5.1.19-ndb-6.3.0).
-          </para>
+            <title>Conflict detection and resolution</title>
 
-          <para>
-            Improvements in conflict resolution for handling
-            simultaneous updates (MySQL-5.1.22-ndb-6.3.4).
-          </para>
-        </listitem>
+            <para>
+              It is now possible to detect and resolve conflicts that
+              arise in multi-master replication scenarios, such as
+              circular replication, when different masters may try to
+              update the same row on the slave with different data. Both
+              <quote>greatest timestamp wins</quote> and <quote>same
+              timestamp wins</quote> scenarios are supported. For more
+              information, see
+              <xref linkend="mysql-cluster-replication-conflict-resolution"/>.
+            </para>
 
-        <listitem>
-          <para>
-            More information has been added to the
-            <literal>mysql.ndb_binlog_index</literal> table so that it
-            is possible to determine which originating epochs have been
-            applied inside an epoch. This is useful in 3-way
-            replication. (MySQL 5.1.22-ndb-6.3.2)
-          </para>
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            The ability to control whether fixed-width or variable-width
-            storage is used for a given column of an
-            <literal>NDB</literal> table by means of the
-            <literal>COLUMN_FORMAT</literal> specifier as part of the
-            column's definition in a <literal>CREATE TABLE</literal> or
-            <literal>ALTER TABLE</literal> statement. In addition, the
-            ability to control whether a given column of an
-            <literal>NDB</literal> table is stored in memory or on disk,
-            using the <literal>STORAGE</literal> specifier as part of
-            the column's definition in a <literal>CREATE TABLE</literal>
-            or <literal>ALTER TABLE</literal> statement. (MySQL
-            5.1.22-ndb-6.3.2)
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            The <option>--bind-address</option> cluster management
-            server startup option makes it possible to restrict
-            management client connections to <command>ndb_mgmd</command>
-            to a single host (IP address or hostname) and port. (MySQL
-            5.1.22-ndb-6.3.2)
-          </para>
-        </listitem>
+            <title>Recovery of <quote>one master, many slaves</quote> replication setups</title>
 
-        <listitem>
-          <para>
-            Due to a change in the protocol for handling of global
-            checkpoints (GCPs handled in this manner sometimes being
-            referred to as <quote>micro-GCPs</quote>), it is now
-            possible to control how often the GCI number is updated, and
-            how often global checkpoints are written to disk, using the
-            <literal>TimeBetweenEpochs</literal> configuration
-            parameter. This improves the reliability and performance of
-            MySQL Cluster Replication. (MySQL 5.1.22-ndb-6.3.2)
-          </para>
+            <para>
+              Recovery of multi-way replication setups (<quote>one
+              master, many slaves</quote>) is now supported via the
+              <option>--ndb-log-orig</option> server option and changes
+              in the <literal>mysql.ndb_binlog_index</literal> table.
+              See <xref linkend="mysql-cluster-replication-schema"/>,
+              for more information.
+            </para>
 
-          <para>
-            Additional fine-tuning of micro-GCPs is made possible using
-            the <literal>TimeBetweenEpochsTimeout</literal> confiuration
-            parameter. (MySQL 5.1.22-ndb-6.3.4)
-          </para>
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Support for the online <literal>ALTER TABLE</literal>
-            operations <literal>ADD COLUMN</literal>, <literal>ADD
-            INDEX</literal>, and <literal>DROP INDEX</literal> is
-            available. When the <literal>ONLINE</literal> keyword is
-            used, the <literal>ALTER TABLE</literal> is non-copying,
-            which means that indexes do not have to be re-created, which
-            provides these benefits:
+          <formalpara>
 
-            <itemizedlist>
+            <title>Enhanced selection options for transaction coordinator</title>
 
-              <listitem>
-                <para>
-                  Single user mode is no longer required for
-                  <literal>ALTER TABLE</literal> operations that can be
-                  performed online.
-                </para>
-              </listitem>
+            <para>
+              New values and behaviors are introduced for
+              <option>--ndb_optimized_node_selection</option> allowing
+              for greater flexibility when an SQL node chooses a
+              transaction coordinator. See
+              <link linkend="option_mysqld_ndb_optimized_node_selection"><citetitle>MySQL
+              Cluster System Variables:
+              <literal>ndb_optimized_node_selection</literal></citetitle></link>,
+              for more information.
+            </para>
 
-              <listitem>
-                <para>
-                  Transactions can continue during <literal>ALTER
-                  TABLE</literal> operations that can be performed
-                  online.
-                </para>
-              </listitem>
+          </formalpara>
+        </listitem>
 
-              <listitem>
-                <para>
-                  Tables being altered online are not locked.
-                </para>
-              </listitem>
+        <listitem>
+          <formalpara>
 
-            </itemizedlist>
+            <title>Replication heartbeats</title>
 
-            Online <literal>CREATE INDEX</literal> and <literal>DROP
-            INDEX</literal> statements are also supported. Online
-            changes can be suppressed using the
-            <literal>OFFLINE</literal> key word. See
-            <xref linkend="alter-table"/>,
-            <xref linkend="create-index"/>, and
-            <xref linkend="drop-index"/>, for more detailed information.
-            (MySQL 5.1.22-ndb-6.3.2)
-          </para>
-        </listitem>
+            <para>
+              Replication heartbeats facilitate the task of monitoring
+              and detecting failures in master-slave connections in real
+              time. This feature is implemented via a new
+              <literal>MASTER_HEARTBEAT_PERIOD =
+              <replaceable>value</replaceable></literal> clause for the
+              <literal>CHANGE MASTER TO</literal> statement and the
+              addition of two status variables
+              <literal>Slave_heartbeat_period</literal> and
+              <literal>Slave_received_heartbeats</literal>. For more
+              information, see <xref linkend="change-master-to"/>.
+            </para>
 
-        <listitem>
-          <para>
-            Recovery of multi-way replication setups (one master, many
-            slaves) is now supported via the
-            <option>--ndb-log-orig</option> server option and changes in
-            the <literal>mysql.ndb_binlog_index</literal> table. (MySQL
-            5.1.22-ndb-6.3.2)
-          </para>
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            New values and behaviors are introduced for
-            <option>--ndb_optimized_node_selection</option> allowing for
-            greater flexibility when an SQL node chooses a transaction
-            coordinator. (MySQL 5.1.22-ndb-6.3.4)
-          </para>
-        </listitem>
+          <formalpara>
 
-        <listitem>
-          <para>
-            A <option>--bind-address</option> option has been added to a
-            number of MySQL client programs for use on computers having
-            multiple network interfaces. The option allows you to choose
-            which interface (IP address or hostname) is used to connect
-            to the MySQL server. (MySQL 5.1.22-ndb-6.3.4)
-          </para>
-        </listitem>
+            <title><literal>NDB</literal> thread locks</title>
 
-        <listitem>
-          <para>
-            A <option>--master-bind</option> option has been added to
-            <command>mysqld</command>. This makes it possible to specify
-            the network interface to use for connecting to the master by
-            a replication slave having multiple network addresses. This
-            can also be set at run time using the <literal>MASTER_BIND =
-            '<replaceable>interface</replaceable>'</literal> clause in a
-            <literal>CHANGE MASTER TO</literal> statement.(MySQL
-            5.1.22-ndb-6.3.4)
-          </para>
-        </listitem>
+            <para>
+              It is possible to lock <literal>NDB</literal> execution
+              threads and maintenance threads (such as filesystem and
+              other operating system threads) to specific CPUs on
+              multiprocessor data node hosts, and to leverage real-time
+              scheduling using configuration parameters introduced in
+              MySQL 5.1.22-ndb-6.3.4.
+            </para>
 
-        <listitem>
-          <para>
-            Replication heartbeats facilitate the task of monitoring and
-            detecting failures in master-slave connections in real time.
-            This feature is implemented via a new
-            <literal>MASTER_HEARTBEAT_PERIOD =
-            <replaceable>value</replaceable></literal> clause for the
-            <literal>CHANGE MASTER TO</literal> statement and the
-            addition of two status variables
-            <literal>Slave_heartbeat_period</literal> and
-            <literal>Slave_received_heartbeats</literal>. (MySQL
-            5.1.22-ndb-6.3.4)
-          </para>
+          </formalpara>
         </listitem>
 
         <listitem>
           <para>
-            It is possible to lock <literal>NDB</literal> execution
-            threads and maintenance threads (such as filesystem and
-            other operating system threads) to specific CPUs on
-            multiprocessor data node hosts, and to leverage real-time
-            scheduling using configuration parameters introduced in
-            MySQL 5.1.22-ndb-6.3.4.
-          </para>
-        </listitem>
-
-        <listitem>
-          <para>
             The number of unnecessary reads when performing a primary
             key or unique key update has been greatly reduced. Since it
             is seldom necessary to read a record prior to an update,

@@ -776,128 +915,304 @@
         </listitem>
 
         <listitem>
-          <para>
-            Batched operations are better supported for
-            <literal>DELETE</literal> and <literal>UPDATE</literal>;
-            <literal>UPDATE WHERE...</literal> and multiple
-            <literal>DELETE</literal> operations are now correctly
-            implemented. (MySQL 5.1.22-ndb-6.3.6)
-          </para>
+          <formalpara>
+
+            <title>Batching improvements</title>
+
+            <para>
+              Support of batched <literal>DELETE</literal> and
+              <literal>UPDATE</literal> operations has been
+              significantly improved. Batching of <literal>UPDATE
+              WHERE...</literal> and multiple <literal>DELETE</literal>
+              operations is also now implemented.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Introduced the <literal>Ndb_execute_count</literal> system
-            status variable, which measures the number of round trips
-            made by SQL statements to the <literal>NDB</literal> kernel.
-            (MySQL 5.1.22-ndb-6.3.6)
-          </para>
+          <formalpara>
+
+            <title>Improved SQL statement performance metrics</title>
+
+            <para>
+              The <literal>Ndb_execute_count</literal> system status
+              variable measures the number of round trips made by SQL
+              statements to the <literal>NDB</literal> kernel, providing
+              an improved metric for determining efficiency with which
+              statements are excuted. For more information, see
+              <link linkend="option_mysqld_Ndb_execute_count"><citetitle>MySQL
+              Cluster Status Variables:
+              <literal>Ndb_execute_count</literal></citetitle></link>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Compressed local checkpoints and backups can save 50% or
-            more of the disk space used by uncompressed LCPs and
-            backups. These can be enabled using the two new data node
-            configuration parameters <literal>CompressedLCP</literal>
-            and <literal>CompressedBackup</literal>, respectively.
-            (MySQL 5.1.23-ndb-6.3.7)
-          </para>
+          <formalpara>
+
+            <title>Compressed LCPs and backups</title>
+
+            <para>
+              Compressed local checkpoints and backups can save 50% or
+              more of the disk space used by uncompressed LCPs and
+              backups. These can be enabled using the two new data node
+              configuration parameters <literal>CompressedLCP</literal>
+              and <literal>CompressedBackup</literal>, respectively. See
+              <link linkend="mysql-cluster-param-ndbd-definition-compressedbackup"><citetitle>MySQL
+              Cluster Status Variables:
+              <literal>CompressedBackup</literal></citetitle></link>,
+              and
+              <link linkend="mysql-cluster-param-ndbd-definition-compressedlcp"><citetitle>MySQL
+              Cluster Status Variables:
+              <literal>CompressedLCP</literal></citetitle></link>, for
+              more information about these parameters.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            <literal>OPTIMIZE TABLE</literal> is supported for dynamic
-            columns of in-memory <literal>NDB</literal> tables. In such
-            cases, it is no longer necessary to drop (and possibly to
-            re-create) a table, or to perform a rolling restart, in
-            order to recover memory from deleted rows for general re-use
-            by Cluster. The performance of <literal>OPTIMIZE</literal>
-            on Cluster tables can be tuned by adjusting the value of the
-            <literal>ndb_optimization_delay</literal> system variable,
-            which controls the number of milliseconds to wait between
-            processing batches of rows by <literal>OPTIMIZE
-            TABLE</literal>. (MySQL 5.1.23-ndb-6.3.7)
-          </para>
+          <formalpara>
 
-          <para>
-            <literal>OPTIMIZE TABLE</literal> can now be interrupted.
-            This can be done, for example, by killing the SQL thread
-            performing the <literal>OPTIMIZE</literal> operation. (MySQL
-            5.1.23-ndb-6.3.8)
-          </para>
+            <title><literal>OPTIMIZE TABLE</literal> support with
+              <literal>NDBCLUSTER</literal> tables</title>
+
+            <para>
+              <literal>OPTIMIZE TABLE</literal> is supported for dynamic
+              columns of in-memory <literal>NDB</literal> tables. In
+              such cases, it is no longer necessary to drop (and
+              possibly to re-create) a table, or to perform a rolling
+              restart, in order to recover memory from deleted rows for
+              general re-use by Cluster. The performance of
+              <literal>OPTIMIZE</literal> on Cluster tables can be tuned
+              by adjusting the value of the
+              <literal>ndb_optimization_delay</literal> system variable,
+              which controls the number of milliseconds to wait between
+              processing batches of rows by <literal>OPTIMIZE
+              TABLE</literal>. In addition, <literal>OPTIMIZE
+              TABLE</literal> on an <literal>NDBCLUSTER</literal> table
+              can be interrupted by, for example, killing the SQL thread
+              performing the <literal>OPTIMIZE</literal> operation.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            It is possible to cause statements occurring within the same
-            transaction to be run as a batch by setting the session
-            variable <literal>transaction_allow_batching</literal> to
-            <literal>1</literal> or <literal>ON</literal>. To use this
-            feature, <literal>AUTOCOMMIT</literal> must be set to
-            <literal>0</literal> or <literal>OFF</literal>. (MySQL
-            5.1.23-ndb-6.3.7)
-          </para>
+          <formalpara>
 
-          <para>
-            Batch sizes can be controlled using the
-            <option>--ndb-batch-size</option> option for
-            <command>mysqld</command>. (MySQL 5.1.23-ndb-6.3.8)
-          </para>
+            <title>Batching of transactions</title>
+
+            <para>
+              It is possible to cause statements occurring within the
+              same transaction to be run as a batch by setting the
+              session variable
+              <literal>transaction_allow_batching</literal> to
+              <literal>1</literal> or <literal>ON</literal>. To use this
+              feature, <literal>AUTOCOMMIT</literal> must be set to
+              <literal>0</literal> or <literal>OFF</literal>. Batch
+              sizes can be controlled using the
+              <option>--ndb-batch-size</option> option for
+              <command>mysqld</command>. For more information, see
+              <xref linkend="mysql-cluster-mysqld-command-options"/>,
+              and <xref linkend="mysql-cluster-system-variables"/>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            It is possible using <command>ndb_restore</command> to
-            restore data reliably from a column of a given type to a
-            column that uses a <quote>larger</quote> type. (This is also
-            referred to as <firstterm>attribute promotion</firstterm>.)
-            For example, MySQL Cluster backup data that originated in a
-            <literal>SMALLINT</literal> column can be restored to a
-            <literal>MEDIUMINT</literal>, <literal>INT</literal>, or
-            <literal>BIGINT</literal> column. (MySQL 5.1.23-ndb-6.3.8)
-          </para>
+          <formalpara>
+
+            <title>Attribute promotion with <command>ndb_restore</command></title>
+
+            <para>
+              It is possible using <command>ndb_restore</command> to
+              restore data reliably from a column of a given type to a
+              column that uses a <quote>larger</quote> type. This is
+              sometimes referred to as <firstterm>attribute
+              promotion</firstterm>. For example, MySQL Cluster backup
+              data that originated in a <literal>SMALLINT</literal>
+              column can be restored to a <literal>MEDIUMINT</literal>,
+              <literal>INT</literal>, or <literal>BIGINT</literal>
+              column. See <xref linkend="mysql-cluster-restore"/>, for
+              more information.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            <literal>NDB_LE_MemoryUsage.page_size_kb</literal> has been
-            renamed to
-            <literal>NDB_LE_MemoryUsage.page_size_bytes</literal>.
-            (MySQL 5.1.23-ndb-6.3.8)
-          </para>
+          <formalpara>
+
+            <title>Parallel data node recovery</title>
+
+            <para>
+              Recovery of multiple data nodes can now be done in
+              parallel, rather than sequentially. In other words,
+              several data nodes can be restored concurrently, which can
+              often result in much faster recovery times than when they
+              are restored one at a time.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Recovery of multiple data nodes can be done in parallel,
-            rather than sequentially, which can result in much faster
-            recovery times. (MySQL 5.1.23-ndb-6.3.8)
-          </para>
+          <formalpara>
+
+            <title>Increased local checkpoint efficiency</title>
+
+            <para>
+              Only 2 local checkpoints are stored, rather than 3,
+              lowering disk space requirements and the size and number
+              of redo log files.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Only 2 local checkpoints are stored, rather than 3, lowering
-            disk space requirements and the size and number of redo log
-            files. (MySQL 5.1.23-ndb-6.3.8)
-          </para>
+          <formalpara>
+
+            <title><literal>NDBCLUSTER</literal> table persistence control</title>
+
+            <para>
+              Persistence of <literal>NDB</literal> tables can be
+              controlled using the session variables
+              <literal>ndb_table_temporary</literal> and
+              <literal>ndb_table_no_logging</literal>.
+              <literal>ndb_table_no_logging</literal> causes
+              <literal>NDB</literal> tables not to be checkpointed to
+              disk; <literal>ndb_table_temporary</literal> does the
+              same, and in addition, no schema files are created. See
+              <xref linkend="mysql-cluster-option-tables"/>.
+            </para>
+
+          </formalpara>
         </listitem>
 
         <listitem>
-          <para>
-            Persistence of <literal>NDB</literal> tables can be
-            controlled using the session variables
-            <literal>ndb_table_temporary</literal> and
-            <literal>ndb_table_no_logging</literal>.
-            <literal>ndb_table_no_logging</literal> causes
-            <literal>NDB</literal> tables not to be checkpointed to
-            disk; <literal>ndb_table_temporary</literal> does the same,
-            and in addition, no schema files are created. (MySQL
-            5.1.23-ndb-6.3.8)
-          </para>
+          <formalpara>
+
+            <title>Epoll support (<emphasis>Linux only</emphasis>)</title>
+
+            <para>
+              <firstterm>Epoll</firstterm> is an improved method for
+              handling file descriptors, which is more efficient than
+              scanning to determine whether a file descriptor has data
+              to be read. (The term <firstterm>epoll</firstterm> is
+              specific to Linux and equivalent functionality is known by
+              other names on other platforms such as Solaris and
+              FreeBSD.) Currently, MySQL Cluster supports this
+              functionality on Linux only.
+            </para>
+
+          </formalpara>
         </listitem>
 
+        <listitem>
+          <formalpara>
+
+            <title>Distribution awareness (SQL nodes)</title>
+
+            <para>
+              In &mccge-series; 6.3, SQL nodes can take advantage of
+              <link linkend="mysql-cluster-changes-5-1-distribution-awareness">distribution
+              awareness</link>. Here we provide a brief example showing
+              how to design a table to make a given class of queries
+              distrubtion-aware. Suppose an
+              <literal>NDBCLUSTER</literal> table <literal>t1</literal>
+              has the following schema:
+
+<programlisting>
+CREATE TABLE t1 (
+    userid INT NOT NULL,
+    serviceid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
+    data VARCHAR(255)
+)   ENGINE=NDBCLUSTER;
+</programlisting>
+
+              Suppose further that most of the queries to be used in our
+              application test values of the <literal>userid</literal>
+              column of this table. The form of such a query looks
+              something like this:
+
+<programlisting>
+SELECT <replaceable>columns</replaceable> FROM t1 
+    WHERE userid <replaceable>relation</replaceable> <replaceable>value</replaceable>;  
+</programlisting>
+
+              In this query, <replaceable>relation</replaceable>
+              represents some relational operator, such as
+              <literal>=</literal>, <literal>&lt;</literal>,
+              <literal>&gt;</literal>, and so on. Queries using
+              <literal>IN</literal> and a list of values can also be
+              used:
+
+<programlisting>
+SELECT <replaceable>columns</replaceable> FROM t1 
+    WHERE userid IN <replaceable>value_list</replaceable>;  
+</programlisting>
+
+              In order to make use of distribution awareness, we need to
+              make the <literal>userid</literal> column part of the
+              table&apos;s primary key, then explicitly partition the
+              table with this column being used as the partitioning key.
+              (Recall that for a partitioned table having one or more
+              unique keys, all columns of the table&apos;s partitioning
+              key must also be part of all of the unique keys &mdash;
+              for more information and examples, see
+              <xref linkend="partitioning-limitations-partitioning-keys-unique-keys"/>.)
+              In other words, the table schema should be equivalent to
+              the following <literal>CREATE TABLE</literal> statement:
+
+<programlisting>
+CREATE TABLE t1 (
+    userid INT NOT NULL,
+    serviceid INT NOT NULL AUTO_INCREMENT,
+    data VARCHAR(255),
+    PRIMARY KEY p (userid,serviceid)
+)   ENGINE=NDBCLUSTER
+    PARTITION BY KEY(userid);
+</programlisting>
+
+              When the table is partitioned in this way, all rows having
+              the same <literal>userid</literal> value are found on the
+              same node group, and the MySQL Server can immediately
+              select the optimal node to use as the transaction
+              coordinator.
+            </para>
+
+          </formalpara>
+        </listitem>
+
+        <listitem>
+          <formalpara>
+
+            <title>Realtime extensions for multiple CPUs</title>
+
+            <para>
+              When running MySQL Cluster data nodes on hosts with
+              multiple processors, the realtime extensions make it
+              possible to give priority to the data node process and
+              control on which CPU cores it should operate. This can be
+              done using the data node configuration parameters
+              <literal>RealtimeScheduler</literal>,
+              <literal>SchedulerExecutionTimer</literal> and
+              <literal>SchedulerSpinTimer</literal>. Doing so properly
+              can significantly lower response times and make them much
+              more predictable response. For more information about
+              using these parameters, see
+              <link linkend="mysql-cluster-realtime-performance-parameters">Defining
+              Data Nodes: Realtime Performance Parameters</link>
+            </para>
+
+          </formalpara>
+        </listitem>
+
       </itemizedlist>
     </para>
 


Modified: trunk/refman-5.1-maria/Makefile.depends
===================================================================
--- trunk/refman-5.1-maria/Makefile.depends	2008-05-21 12:39:50 UTC (rev 10798)
+++ trunk/refman-5.1-maria/Makefile.depends	2008-05-21 15:12:31 UTC (rev 10799)
Changed blocks: 1, Lines Added: 1, Lines Deleted: 0; 594 bytes

@@ -409,6 +409,7 @@
 	../ndbapi/metadata/class-ndboperation.idmap \
 	../ndbapi/metadata/class-ndbtransaction.idmap \
 	../ndbapi/metadata/class-table.idmap \
+	../ndbapi/metadata/interface-ndbrecord.idmap \
 	../ndbapi/metadata/mgm-api.idmap \
 	../ndbapi/metadata/ndb-errors.idmap \
 	../ndbapi/metadata/ndb-internals.idmap \


Thread
svn commit - mysqldoc@docsrva: r10799 - in trunk: it/refman-5.1 pt/refman-5.1 refman-5.1 refman-5.1-mariajon21 May