List:Commits« Previous MessageNext Message »
From:jon Date:June 27 2007 7:44am
Subject:svn commit - mysqldoc@docsrva: r6918 - in trunk: refman-4.1 refman-5.0 refman-5.1 refman-5.2
View as plain text  
Author: jstephens
Date: 2007-06-27 09:44:30 +0200 (Wed, 27 Jun 2007)
New Revision: 6918

Log:

Reordered introductory sections to get rid of orphan section.



Modified:
   trunk/refman-4.1/mysql-cluster.xml
   trunk/refman-5.0/mysql-cluster.xml
   trunk/refman-5.1/mysql-cluster.xml
   trunk/refman-5.2/mysql-cluster.xml


Modified: trunk/refman-4.1/mysql-cluster.xml
===================================================================
--- trunk/refman-4.1/mysql-cluster.xml	2007-06-26 19:23:09 UTC (rev 6917)
+++ trunk/refman-4.1/mysql-cluster.xml	2007-06-27 07:44:30 UTC (rev 6918)
Changed blocks: 1, Lines Added: 204, Lines Deleted: 200; 17804 bytes

@@ -276,248 +276,252 @@
       should not be a source of problems.
     </para>
 
-  </section>
+    <section id="mysql-cluster-basics">
 
-  <section id="mysql-cluster-basics">
+      <title>MySQL Cluster Core Concepts</title>
 
-    <title>Basic MySQL Cluster Concepts</title>
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>concepts</secondary>
+      </indexterm>
 
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>concepts</secondary>
-    </indexterm>
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>nodes and types</secondary>
+      </indexterm>
 
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>nodes and types</secondary>
-    </indexterm>
+      <indexterm>
+        <primary>data node (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
+      </indexterm>
 
-    <indexterm>
-      <primary>data node (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
-    </indexterm>
+      <indexterm>
+        <primary>management node (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
+      </indexterm>
 
-    <indexterm>
-      <primary>management node (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
-    </indexterm>
+      <indexterm>
+        <primary>SQL node (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
+      </indexterm>
 
-    <indexterm>
-      <primary>SQL node (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
-    </indexterm>
+      <indexterm>
+        <primary>API node (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
+      </indexterm>
 
-    <indexterm>
-      <primary>API node (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
-    </indexterm>
-
-    <indexterm>
-      <primary><command>ndbd</command> (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
+      <indexterm>
+        <primary><command>ndbd</command> (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
 <!-- <seealso>data node (MySQL Cluster)</seealso> -->
-    </indexterm>
+      </indexterm>
 
-    <indexterm>
-      <primary><command>mgmd</command> (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
+      <indexterm>
+        <primary><command>mgmd</command> (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
 <!-- <seealso>management node (MySQL Cluster)</seealso> -->
-    </indexterm>
+      </indexterm>
 
-    <indexterm>
-      <primary><command>ndb_mgmd</command> (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
+      <indexterm>
+        <primary><command>ndb_mgmd</command> (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
 <!-- <seealso>management node (MySQL Cluster)</seealso> -->
-    </indexterm>
+      </indexterm>
 
-    <indexterm>
-      <primary><command>mysqld</command></primary>
-      <secondary>role in MySQL Cluster</secondary>
+      <indexterm>
+        <primary><command>mysqld</command></primary>
+        <secondary>role in MySQL Cluster</secondary>
 <!-- <see>SQL Node (MySQL Cluster)</see> -->
-    </indexterm>
+      </indexterm>
 
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>data node</secondary>
-    </indexterm>
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>data node</secondary>
+      </indexterm>
 
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>management node</secondary>
-    </indexterm>
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>management node</secondary>
+      </indexterm>
 
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>SQL node</secondary>
-    </indexterm>
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>SQL node</secondary>
+      </indexterm>
 
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>API node</secondary>
-    </indexterm>
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>API node</secondary>
+      </indexterm>
 
-    <indexterm>
-      <primary>Configuring MySQL Cluster (concepts)</primary>
-    </indexterm>
+      <indexterm>
+        <primary>Configuring MySQL Cluster (concepts)</primary>
+      </indexterm>
 
-    <para>
-      <firstterm><literal>NDB</literal></firstterm> is an in-memory
-      storage engine offering high-availability and data-persistence
-      features.
-    </para>
+      <para>
+        <firstterm><literal>NDB</literal></firstterm> is an in-memory
+        storage engine offering high-availability and data-persistence
+        features.
+      </para>
 
-    <para>
-      The <literal>NDB</literal> storage engine can be configured with a
-      range of failover and load-balancing options, but it is easiest to
-      start with the storage engine at the cluster level. MySQL
-      Cluster's <literal>NDB</literal> storage engine contains a
-      complete set of data, dependent only on other data within the
-      cluster itself.
-    </para>
+      <para>
+        The <literal>NDB</literal> storage engine can be configured with
+        a range of failover and load-balancing options, but it is
+        easiest to start with the storage engine at the cluster level.
+        MySQL Cluster's <literal>NDB</literal> storage engine contains a
+        complete set of data, dependent only on other data within the
+        cluster itself.
+      </para>
 
-    <para>
-      The cluster portion of MySQL Cluster is currently configured
-      independently of the MySQL servers. In a MySQL Cluster, each part
-      of the cluster is considered to be a <firstterm>node</firstterm>.
-    </para>
+      <para>
+        The cluster portion of MySQL Cluster is currently configured
+        independently of the MySQL servers. In a MySQL Cluster, each
+        part of the cluster is considered to be a
+        <firstterm>node</firstterm>.
+      </para>
 
-    <para>
-      <emphasis role="bold">Note</emphasis>: In many contexts, the term
-      <quote>node</quote> is used to indicate a computer, but when
-      discussing MySQL Cluster it means a <emphasis>process</emphasis>.
-      It is possible to run any number of nodes on a single computer,
-      for which we use the term <firstterm>cluster host</firstterm>.
-    </para>
+      <para>
+        <emphasis role="bold">Note</emphasis>: In many contexts, the
+        term <quote>node</quote> is used to indicate a computer, but
+        when discussing MySQL Cluster it means a
+        <emphasis>process</emphasis>. It is possible to run any number
+        of nodes on a single computer, for which we use the term
+        <firstterm>cluster host</firstterm>.
+      </para>
 
-    <para>
-      (However, it should be noted MySQL does not currently support the
-      use of multiple data nodes on a single computer in a production
-      setting. See
-      <xref linkend="mysql-cluster-limitations-multiple-nodes"/>.)
-    </para>
+      <para>
+        (However, it should be noted MySQL does not currently support
+        the use of multiple data nodes on a single computer in a
+        production setting. See
+        <xref linkend="mysql-cluster-limitations-multiple-nodes"/>.)
+      </para>
 
-    <para>
-      There are three types of cluster nodes, and in a minimal MySQL
-      Cluster configuration, there will be at least three nodes, one of
-      each of these types:
-    </para>
+      <para>
+        There are three types of cluster nodes, and in a minimal MySQL
+        Cluster configuration, there will be at least three nodes, one
+        of each of these types:
+      </para>
 
-    <itemizedlist>
+      <itemizedlist>
 
-      <listitem>
-        <para>
-          <firstterm>Management node</firstterm> (MGM node): The role of
-          this type of node is to manage the other nodes within the
-          MySQL Cluster, performing such functions as providing
-          configuration data, starting and stopping nodes, running
-          backup, and so forth. Because this node type manages the
-          configuration of the other nodes, a node of this type should
-          be started first, before any other node. An MGM node is
-          started with the command <command>ndb_mgmd</command>.
-        </para>
-      </listitem>
+        <listitem>
+          <para>
+            <firstterm>Management node</firstterm> (MGM node): The role
+            of this type of node is to manage the other nodes within the
+            MySQL Cluster, performing such functions as providing
+            configuration data, starting and stopping nodes, running
+            backup, and so forth. Because this node type manages the
+            configuration of the other nodes, a node of this type should
+            be started first, before any other node. An MGM node is
+            started with the command <command>ndb_mgmd</command>.
+          </para>
+        </listitem>
 
-      <listitem>
-        <para>
-          <firstterm>Data node</firstterm>: This type of node stores
-          cluster data. There are as many data nodes as there are
-          replicas, times the number of fragments. For example, with two
-          replicas, each having two fragments, you will need four data
-          nodes. It is not necessary to have more than one replica. A
-          data node is started with the command <command>ndbd</command>.
-        </para>
-      </listitem>
+        <listitem>
+          <para>
+            <firstterm>Data node</firstterm>: This type of node stores
+            cluster data. There are as many data nodes as there are
+            replicas, times the number of fragments. For example, with
+            two replicas, each having two fragments, you will need four
+            data nodes. It is not necessary to have more than one
+            replica. A data node is started with the command
+            <command>ndbd</command>.
+          </para>
+        </listitem>
 
-      <listitem>
-        <para>
-          <firstterm>SQL node</firstterm>: This is a node that accesses
-          the cluster data. In the case of MySQL Cluster, an SQL node is
-          a traditional MySQL server that uses the <literal>NDB
-          Cluster</literal> storage engine. An SQL node is typically
-          started with the command <command>mysqld
-          --ndbcluster</command> or by using <command>mysqld</command>
-          with the <literal>ndbcluster</literal> option added to
-          <filename>my.cnf</filename>.
-        </para>
+        <listitem>
+          <para>
+            <firstterm>SQL node</firstterm>: This is a node that
+            accesses the cluster data. In the case of MySQL Cluster, an
+            SQL node is a traditional MySQL server that uses the
+            <literal>NDB Cluster</literal> storage engine. An SQL node
+            is typically started with the command <command>mysqld
+            --ndbcluster</command> or by using <command>mysqld</command>
+            with the <literal>ndbcluster</literal> option added to
+            <filename>my.cnf</filename>.
+          </para>
 
-        <para>
-          An SQL node is actually just a specialised type of
-          <firstterm>API node</firstterm>, which designates any
-          application which accesses Cluster data. One example of an API
-          node is the <command>ndb_restore</command> utility that is
-          used to restore a cluster backup. It is possible to write such
-          applications using the
-          <ulink url="&base-url-docs;/ndbapi/en/index.html">NDB
-          API</ulink>.
-        </para>
-      </listitem>
+          <para>
+            An SQL node is actually just a specialised type of
+            <firstterm>API node</firstterm>, which designates any
+            application which accesses Cluster data. One example of an
+            API node is the <command>ndb_restore</command> utility that
+            is used to restore a cluster backup. It is possible to write
+            such applications using the
+            <ulink url="&base-url-docs;/ndbapi/en/index.html">NDB
+            API</ulink>.
+          </para>
+        </listitem>
 
-    </itemizedlist>
+      </itemizedlist>
 
-    <para>
-      <emphasis role="bold">Important</emphasis>: It is not realistic to
-      expect to employ a three-node setup in a production environment.
-      Such a configuration provides no redundancy; in order to benefit
-      from MySQL Cluster's high-availability features, you must use
-      multiple data and SQL nodes. The use of multiple management nodes
-      is also highly recommended.
-    </para>
+      <para>
+        <emphasis role="bold">Important</emphasis>: It is not realistic
+        to expect to employ a three-node setup in a production
+        environment. Such a configuration provides no redundancy; in
+        order to benefit from MySQL Cluster's high-availability
+        features, you must use multiple data and SQL nodes. The use of
+        multiple management nodes is also highly recommended.
+      </para>
 
-    <para>
-      For a brief introduction to the relationships between nodes, node
-      groups, replicas, and partitions in MySQL Cluster, see
-      <xref linkend="mysql-cluster-nodes-groups"/>.
-    </para>
+      <para>
+        For a brief introduction to the relationships between nodes,
+        node groups, replicas, and partitions in MySQL Cluster, see
+        <xref linkend="mysql-cluster-nodes-groups"/>.
+      </para>
 
-    <para>
-      Configuration of a cluster involves configuring each individual
-      node in the cluster and setting up individual communication links
-      between nodes. MySQL Cluster is currently designed with the
-      intention that data nodes are homogeneous in terms of processor
-      power, memory space, and bandwidth. In addition, to provide a
-      single point of configuration, all configuration data for the
-      cluster as a whole is located in one configuration file.
-    </para>
+      <para>
+        Configuration of a cluster involves configuring each individual
+        node in the cluster and setting up individual communication
+        links between nodes. MySQL Cluster is currently designed with
+        the intention that data nodes are homogeneous in terms of
+        processor power, memory space, and bandwidth. In addition, to
+        provide a single point of configuration, all configuration data
+        for the cluster as a whole is located in one configuration file.
+      </para>
 
-    <para>
-      The management server (MGM node) manages the cluster configuration
-      file and the cluster log. Each node in the cluster retrieves the
-      configuration data from the management server, and so requires a
-      way to determine where the management server resides. When
-      interesting events occur in the data nodes, the nodes transfer
-      information about these events to the management server, which
-      then writes the information to the cluster log.
-    </para>
+      <para>
+        The management server (MGM node) manages the cluster
+        configuration file and the cluster log. Each node in the cluster
+        retrieves the configuration data from the management server, and
+        so requires a way to determine where the management server
+        resides. When interesting events occur in the data nodes, the
+        nodes transfer information about these events to the management
+        server, which then writes the information to the cluster log.
+      </para>
 
-    <para>
-      In addition, there can be any number of cluster client processes
-      or applications. These are of two types:
-    </para>
+      <para>
+        In addition, there can be any number of cluster client processes
+        or applications. These are of two types:
+      </para>
 
-    <itemizedlist>
+      <itemizedlist>
 
-      <listitem>
-        <para>
-          <emphasis role="bold">Standard MySQL clients</emphasis>: These
-          are no different for MySQL Cluster than they are for standard
-          (non-Cluster) MySQL. In other words, MySQL Cluster can be
-          accessed from existing MySQL applications written in PHP,
-          Perl, C, C++, Java, Python, Ruby, and so on.
-        </para>
-      </listitem>
+        <listitem>
+          <para>
+            <emphasis role="bold">Standard MySQL clients</emphasis>:
+            These are no different for MySQL Cluster than they are for
+            standard (non-Cluster) MySQL. In other words, MySQL Cluster
+            can be accessed from existing MySQL applications written in
+            PHP, Perl, C, C++, Java, Python, Ruby, and so on.
+          </para>
+        </listitem>
 
-      <listitem>
-        <para>
-          <emphasis role="bold">Management clients</emphasis>: These
-          clients connect to the management server and provide commands
-          for starting and stopping nodes gracefully, starting and
-          stopping message tracing (debug versions only), showing node
-          versions and status, starting and stopping backups, and so on.
-        </para>
-      </listitem>
+        <listitem>
+          <para>
+            <emphasis role="bold">Management clients</emphasis>: These
+            clients connect to the management server and provide
+            commands for starting and stopping nodes gracefully,
+            starting and stopping message tracing (debug versions only),
+            showing node versions and status, starting and stopping
+            backups, and so on.
+          </para>
+        </listitem>
 
-    </itemizedlist>
+      </itemizedlist>
 
+    </section>
+
     <section id="mysql-cluster-nodes-groups">
 
       <title>MySQL Cluster Nodes, Node Groups, Replicas, and Partitions</title>


Modified: trunk/refman-5.0/mysql-cluster.xml
===================================================================
--- trunk/refman-5.0/mysql-cluster.xml	2007-06-26 19:23:09 UTC (rev 6917)
+++ trunk/refman-5.0/mysql-cluster.xml	2007-06-27 07:44:30 UTC (rev 6918)
Changed blocks: 1, Lines Added: 204, Lines Deleted: 200; 17804 bytes

@@ -197,248 +197,252 @@
       should not be a source of problems.
     </para>
 
-  </section>
+    <section id="mysql-cluster-basics">
 
-  <section id="mysql-cluster-basics">
+      <title>MySQL Cluster Core Concepts</title>
 
-    <title>Basic MySQL Cluster Concepts</title>
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>concepts</secondary>
+      </indexterm>
 
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>concepts</secondary>
-    </indexterm>
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>nodes and types</secondary>
+      </indexterm>
 
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>nodes and types</secondary>
-    </indexterm>
+      <indexterm>
+        <primary>data node (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
+      </indexterm>
 
-    <indexterm>
-      <primary>data node (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
-    </indexterm>
+      <indexterm>
+        <primary>management node (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
+      </indexterm>
 
-    <indexterm>
-      <primary>management node (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
-    </indexterm>
+      <indexterm>
+        <primary>SQL node (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
+      </indexterm>
 
-    <indexterm>
-      <primary>SQL node (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
-    </indexterm>
+      <indexterm>
+        <primary>API node (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
+      </indexterm>
 
-    <indexterm>
-      <primary>API node (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
-    </indexterm>
-
-    <indexterm>
-      <primary><command>ndbd</command> (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
+      <indexterm>
+        <primary><command>ndbd</command> (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
 <!-- <seealso>data node (MySQL Cluster)</seealso> -->
-    </indexterm>
+      </indexterm>
 
-    <indexterm>
-      <primary><command>mgmd</command> (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
+      <indexterm>
+        <primary><command>mgmd</command> (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
 <!-- <seealso>management node (MySQL Cluster)</seealso> -->
-    </indexterm>
+      </indexterm>
 
-    <indexterm>
-      <primary><command>ndb_mgmd</command> (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
+      <indexterm>
+        <primary><command>ndb_mgmd</command> (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
 <!-- <seealso>management node (MySQL Cluster)</seealso> -->
-    </indexterm>
+      </indexterm>
 
-    <indexterm>
-      <primary><command>mysqld</command></primary>
-      <secondary>role in MySQL Cluster</secondary>
+      <indexterm>
+        <primary><command>mysqld</command></primary>
+        <secondary>role in MySQL Cluster</secondary>
 <!-- <see>SQL Node (MySQL Cluster)</see> -->
-    </indexterm>
+      </indexterm>
 
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>data node</secondary>
-    </indexterm>
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>data node</secondary>
+      </indexterm>
 
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>management node</secondary>
-    </indexterm>
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>management node</secondary>
+      </indexterm>
 
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>SQL node</secondary>
-    </indexterm>
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>SQL node</secondary>
+      </indexterm>
 
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>API node</secondary>
-    </indexterm>
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>API node</secondary>
+      </indexterm>
 
-    <indexterm>
-      <primary>Configuring MySQL Cluster (concepts)</primary>
-    </indexterm>
+      <indexterm>
+        <primary>Configuring MySQL Cluster (concepts)</primary>
+      </indexterm>
 
-    <para>
-      <firstterm><literal>NDB</literal></firstterm> is an in-memory
-      storage engine offering high-availability and data-persistence
-      features.
-    </para>
+      <para>
+        <firstterm><literal>NDB</literal></firstterm> is an in-memory
+        storage engine offering high-availability and data-persistence
+        features.
+      </para>
 
-    <para>
-      The <literal>NDB</literal> storage engine can be configured with a
-      range of failover and load-balancing options, but it is easiest to
-      start with the storage engine at the cluster level. MySQL
-      Cluster's <literal>NDB</literal> storage engine contains a
-      complete set of data, dependent only on other data within the
-      cluster itself.
-    </para>
+      <para>
+        The <literal>NDB</literal> storage engine can be configured with
+        a range of failover and load-balancing options, but it is
+        easiest to start with the storage engine at the cluster level.
+        MySQL Cluster's <literal>NDB</literal> storage engine contains a
+        complete set of data, dependent only on other data within the
+        cluster itself.
+      </para>
 
-    <para>
-      The cluster portion of MySQL Cluster is currently configured
-      independently of the MySQL servers. In a MySQL Cluster, each part
-      of the cluster is considered to be a <firstterm>node</firstterm>.
-    </para>
+      <para>
+        The cluster portion of MySQL Cluster is currently configured
+        independently of the MySQL servers. In a MySQL Cluster, each
+        part of the cluster is considered to be a
+        <firstterm>node</firstterm>.
+      </para>
 
-    <para>
-      <emphasis role="bold">Note</emphasis>: In many contexts, the term
-      <quote>node</quote> is used to indicate a computer, but when
-      discussing MySQL Cluster it means a <emphasis>process</emphasis>.
-      It is possible to run any number of nodes on a single computer,
-      for which we use the term <firstterm>cluster host</firstterm>.
-    </para>
+      <para>
+        <emphasis role="bold">Note</emphasis>: In many contexts, the
+        term <quote>node</quote> is used to indicate a computer, but
+        when discussing MySQL Cluster it means a
+        <emphasis>process</emphasis>. It is possible to run any number
+        of nodes on a single computer, for which we use the term
+        <firstterm>cluster host</firstterm>.
+      </para>
 
-    <para>
-      (However, it should be noted MySQL does not currently support the
-      use of multiple data nodes on a single computer in a production
-      setting. See
-      <xref linkend="mysql-cluster-limitations-multiple-nodes"/>.)
-    </para>
+      <para>
+        (However, it should be noted MySQL does not currently support
+        the use of multiple data nodes on a single computer in a
+        production setting. See
+        <xref linkend="mysql-cluster-limitations-multiple-nodes"/>.)
+      </para>
 
-    <para>
-      There are three types of cluster nodes, and in a minimal MySQL
-      Cluster configuration, there will be at least three nodes, one of
-      each of these types:
-    </para>
+      <para>
+        There are three types of cluster nodes, and in a minimal MySQL
+        Cluster configuration, there will be at least three nodes, one
+        of each of these types:
+      </para>
 
-    <itemizedlist>
+      <itemizedlist>
 
-      <listitem>
-        <para>
-          <firstterm>Management node</firstterm> (MGM node): The role of
-          this type of node is to manage the other nodes within the
-          MySQL Cluster, performing such functions as providing
-          configuration data, starting and stopping nodes, running
-          backup, and so forth. Because this node type manages the
-          configuration of the other nodes, a node of this type should
-          be started first, before any other node. An MGM node is
-          started with the command <command>ndb_mgmd</command>.
-        </para>
-      </listitem>
+        <listitem>
+          <para>
+            <firstterm>Management node</firstterm> (MGM node): The role
+            of this type of node is to manage the other nodes within the
+            MySQL Cluster, performing such functions as providing
+            configuration data, starting and stopping nodes, running
+            backup, and so forth. Because this node type manages the
+            configuration of the other nodes, a node of this type should
+            be started first, before any other node. An MGM node is
+            started with the command <command>ndb_mgmd</command>.
+          </para>
+        </listitem>
 
-      <listitem>
-        <para>
-          <firstterm>Data node</firstterm>: This type of node stores
-          cluster data. There are as many data nodes as there are
-          replicas, times the number of fragments. For example, with two
-          replicas, each having two fragments, you will need four data
-          nodes. It is not necessary to have more than one replica. A
-          data node is started with the command <command>ndbd</command>.
-        </para>
-      </listitem>
+        <listitem>
+          <para>
+            <firstterm>Data node</firstterm>: This type of node stores
+            cluster data. There are as many data nodes as there are
+            replicas, times the number of fragments. For example, with
+            two replicas, each having two fragments, you will need four
+            data nodes. It is not necessary to have more than one
+            replica. A data node is started with the command
+            <command>ndbd</command>.
+          </para>
+        </listitem>
 
-      <listitem>
-        <para>
-          <firstterm>SQL node</firstterm>: This is a node that accesses
-          the cluster data. In the case of MySQL Cluster, an SQL node is
-          a traditional MySQL server that uses the <literal>NDB
-          Cluster</literal> storage engine. An SQL node is typically
-          started with the command <command>mysqld
-          --ndbcluster</command> or by using <command>mysqld</command>
-          with the <literal>ndbcluster</literal> option added to
-          <filename>my.cnf</filename>.
-        </para>
+        <listitem>
+          <para>
+            <firstterm>SQL node</firstterm>: This is a node that
+            accesses the cluster data. In the case of MySQL Cluster, an
+            SQL node is a traditional MySQL server that uses the
+            <literal>NDB Cluster</literal> storage engine. An SQL node
+            is typically started with the command <command>mysqld
+            --ndbcluster</command> or by using <command>mysqld</command>
+            with the <literal>ndbcluster</literal> option added to
+            <filename>my.cnf</filename>.
+          </para>
 
-        <para>
-          An SQL node is actually just a specialised type of
-          <firstterm>API node</firstterm>, which designates any
-          application which accesses Cluster data. One example of an API
-          node is the <command>ndb_restore</command> utility that is
-          used to restore a cluster backup. It is possible to write such
-          applications using the
-          <ulink url="&base-url-docs;/ndbapi/en/index.html">NDB
-          API</ulink>.
-        </para>
-      </listitem>
+          <para>
+            An SQL node is actually just a specialised type of
+            <firstterm>API node</firstterm>, which designates any
+            application which accesses Cluster data. One example of an
+            API node is the <command>ndb_restore</command> utility that
+            is used to restore a cluster backup. It is possible to write
+            such applications using the
+            <ulink url="&base-url-docs;/ndbapi/en/index.html">NDB
+            API</ulink>.
+          </para>
+        </listitem>
 
-    </itemizedlist>
+      </itemizedlist>
 
-    <para>
-      <emphasis role="bold">Important</emphasis>: It is not realistic to
-      expect to employ a three-node setup in a production environment.
-      Such a configuration provides no redundancy; in order to benefit
-      from MySQL Cluster's high-availability features, you must use
-      multiple data and SQL nodes. The use of multiple management nodes
-      is also highly recommended.
-    </para>
+      <para>
+        <emphasis role="bold">Important</emphasis>: It is not realistic
+        to expect to employ a three-node setup in a production
+        environment. Such a configuration provides no redundancy; in
+        order to benefit from MySQL Cluster's high-availability
+        features, you must use multiple data and SQL nodes. The use of
+        multiple management nodes is also highly recommended.
+      </para>
 
-    <para>
-      For a brief introduction to the relationships between nodes, node
-      groups, replicas, and partitions in MySQL Cluster, see
-      <xref linkend="mysql-cluster-nodes-groups"/>.
-    </para>
+      <para>
+        For a brief introduction to the relationships between nodes,
+        node groups, replicas, and partitions in MySQL Cluster, see
+        <xref linkend="mysql-cluster-nodes-groups"/>.
+      </para>
 
-    <para>
-      Configuration of a cluster involves configuring each individual
-      node in the cluster and setting up individual communication links
-      between nodes. MySQL Cluster is currently designed with the
-      intention that data nodes are homogeneous in terms of processor
-      power, memory space, and bandwidth. In addition, to provide a
-      single point of configuration, all configuration data for the
-      cluster as a whole is located in one configuration file.
-    </para>
+      <para>
+        Configuration of a cluster involves configuring each individual
+        node in the cluster and setting up individual communication
+        links between nodes. MySQL Cluster is currently designed with
+        the intention that data nodes are homogeneous in terms of
+        processor power, memory space, and bandwidth. In addition, to
+        provide a single point of configuration, all configuration data
+        for the cluster as a whole is located in one configuration file.
+      </para>
 
-    <para>
-      The management server (MGM node) manages the cluster configuration
-      file and the cluster log. Each node in the cluster retrieves the
-      configuration data from the management server, and so requires a
-      way to determine where the management server resides. When
-      interesting events occur in the data nodes, the nodes transfer
-      information about these events to the management server, which
-      then writes the information to the cluster log.
-    </para>
+      <para>
+        The management server (MGM node) manages the cluster
+        configuration file and the cluster log. Each node in the cluster
+        retrieves the configuration data from the management server, and
+        so requires a way to determine where the management server
+        resides. When interesting events occur in the data nodes, the
+        nodes transfer information about these events to the management
+        server, which then writes the information to the cluster log.
+      </para>
 
-    <para>
-      In addition, there can be any number of cluster client processes
-      or applications. These are of two types:
-    </para>
+      <para>
+        In addition, there can be any number of cluster client processes
+        or applications. These are of two types:
+      </para>
 
-    <itemizedlist>
+      <itemizedlist>
 
-      <listitem>
-        <para>
-          <emphasis role="bold">Standard MySQL clients</emphasis>: These
-          are no different for MySQL Cluster than they are for standard
-          (non-Cluster) MySQL. In other words, MySQL Cluster can be
-          accessed from existing MySQL applications written in PHP,
-          Perl, C, C++, Java, Python, Ruby, and so on.
-        </para>
-      </listitem>
+        <listitem>
+          <para>
+            <emphasis role="bold">Standard MySQL clients</emphasis>:
+            These are no different for MySQL Cluster than they are for
+            standard (non-Cluster) MySQL. In other words, MySQL Cluster
+            can be accessed from existing MySQL applications written in
+            PHP, Perl, C, C++, Java, Python, Ruby, and so on.
+          </para>
+        </listitem>
 
-      <listitem>
-        <para>
-          <emphasis role="bold">Management clients</emphasis>: These
-          clients connect to the management server and provide commands
-          for starting and stopping nodes gracefully, starting and
-          stopping message tracing (debug versions only), showing node
-          versions and status, starting and stopping backups, and so on.
-        </para>
-      </listitem>
+        <listitem>
+          <para>
+            <emphasis role="bold">Management clients</emphasis>: These
+            clients connect to the management server and provide
+            commands for starting and stopping nodes gracefully,
+            starting and stopping message tracing (debug versions only),
+            showing node versions and status, starting and stopping
+            backups, and so on.
+          </para>
+        </listitem>
 
-    </itemizedlist>
+      </itemizedlist>
 
+    </section>
+
     <section id="mysql-cluster-nodes-groups">
 
       <title>MySQL Cluster Nodes, Node Groups, Replicas, and Partitions</title>


Modified: trunk/refman-5.1/mysql-cluster.xml
===================================================================
--- trunk/refman-5.1/mysql-cluster.xml	2007-06-26 19:23:09 UTC (rev 6917)
+++ trunk/refman-5.1/mysql-cluster.xml	2007-06-27 07:44:30 UTC (rev 6918)
Changed blocks: 2, Lines Added: 470, Lines Deleted: 466; 33945 bytes

@@ -205,6 +205,476 @@
       should not be a source of problems.
     </para>
 
+    <section id="mysql-cluster-basics">
+
+      <title>MySQL Cluster Core Concepts</title>
+
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>concepts</secondary>
+      </indexterm>
+
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>nodes and types</secondary>
+      </indexterm>
+
+      <indexterm>
+        <primary>data node (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
+      </indexterm>
+
+      <indexterm>
+        <primary>management node (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
+      </indexterm>
+
+      <indexterm>
+        <primary>SQL node (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
+      </indexterm>
+
+      <indexterm>
+        <primary>API node (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
+      </indexterm>
+
+      <indexterm>
+        <primary><command>ndbd</command> (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
+<!-- <seealso>data node (MySQL Cluster)</seealso> -->
+      </indexterm>
+
+      <indexterm>
+        <primary><command>mgmd</command> (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
+<!-- <seealso>management node (MySQL Cluster)</seealso> -->
+      </indexterm>
+
+      <indexterm>
+        <primary><command>ndb_mgmd</command> (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
+<!-- <seealso>management node (MySQL Cluster)</seealso> -->
+      </indexterm>
+
+      <indexterm>
+        <primary><command>mysqld</command></primary>
+        <secondary>role in MySQL Cluster</secondary>
+<!-- <see>SQL Node (MySQL Cluster)</see> -->
+      </indexterm>
+
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>data node</secondary>
+      </indexterm>
+
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>management node</secondary>
+      </indexterm>
+
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>SQL node</secondary>
+      </indexterm>
+
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>API node</secondary>
+      </indexterm>
+
+      <indexterm>
+        <primary>Configuring MySQL Cluster (concepts)</primary>
+      </indexterm>
+
+      <para>
+        <firstterm><literal>NDB</literal></firstterm> is an in-memory
+        storage engine offering high-availability and data-persistence
+        features.
+      </para>
+
+      <para>
+        The <literal>NDB</literal> storage engine can be configured with
+        a range of failover and load-balancing options, but it is
+        easiest to start with the storage engine at the cluster level.
+        MySQL Cluster's <literal>NDB</literal> storage engine contains a
+        complete set of data, dependent only on other data within the
+        cluster itself.
+      </para>
+
+      <para>
+        The cluster portion of MySQL Cluster is currently configured
+        independently of the MySQL servers. In a MySQL Cluster, each
+        part of the cluster is considered to be a
+        <firstterm>node</firstterm>.
+      </para>
+
+      <para>
+        <emphasis role="bold">Note</emphasis>: In many contexts, the
+        term <quote>node</quote> is used to indicate a computer, but
+        when discussing MySQL Cluster it means a
+        <emphasis>process</emphasis>. It is possible to run any number
+        of nodes on a single computer, for which we use the term
+        <firstterm>cluster host</firstterm>.
+      </para>
+
+      <para>
+        (However, it should be noted MySQL does not currently support
+        the use of multiple data nodes on a single computer in a
+        production setting. See
+        <xref linkend="mysql-cluster-limitations-multiple-nodes"/>.)
+      </para>
+
+      <para>
+        There are three types of cluster nodes, and in a minimal MySQL
+        Cluster configuration, there will be at least three nodes, one
+        of each of these types:
+      </para>
+
+      <itemizedlist>
+
+        <listitem>
+          <para>
+            <firstterm>Management node</firstterm> (MGM node): The role
+            of this type of node is to manage the other nodes within the
+            MySQL Cluster, performing such functions as providing
+            configuration data, starting and stopping nodes, running
+            backup, and so forth. Because this node type manages the
+            configuration of the other nodes, a node of this type should
+            be started first, before any other node. An MGM node is
+            started with the command <command>ndb_mgmd</command>.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <firstterm>Data node</firstterm>: This type of node stores
+            cluster data. There are as many data nodes as there are
+            replicas, times the number of fragments. For example, with
+            two replicas, each having two fragments, you will need four
+            data nodes. It is not necessary to have more than one
+            replica. A data node is started with the command
+            <command>ndbd</command>.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <firstterm>SQL node</firstterm>: This is a node that
+            accesses the cluster data. In the case of MySQL Cluster, an
+            SQL node is a traditional MySQL server that uses the
+            <literal>NDB Cluster</literal> storage engine. An SQL node
+            is typically started with the command <command>mysqld
+            --ndbcluster</command> or by using <command>mysqld</command>
+            with the <literal>ndbcluster</literal> option added to
+            <filename>my.cnf</filename>.
+          </para>
+
+          <para>
+            An SQL node is actually just a specialised type of
+            <firstterm>API node</firstterm>, which designates any
+            application which accesses Cluster data. One example of an
+            API node is the <command>ndb_restore</command> utility that
+            is used to restore a cluster backup. It is possible to write
+            such applications using the
+            <ulink url="&base-url-docs;/ndbapi/en/index.html">NDB
+            API</ulink>.
+          </para>
+        </listitem>
+
+      </itemizedlist>
+
+      <para>
+        <emphasis role="bold">Important</emphasis>: It is not realistic
+        to expect to employ a three-node setup in a production
+        environment. Such a configuration provides no redundancy; in
+        order to benefit from MySQL Cluster's high-availability
+        features, you must use multiple data and SQL nodes. The use of
+        multiple management nodes is also highly recommended.
+      </para>
+
+      <para>
+        For a brief introduction to the relationships between nodes,
+        node groups, replicas, and partitions in MySQL Cluster, see
+        <xref linkend="mysql-cluster-nodes-groups"/>.
+      </para>
+
+      <para>
+        Configuration of a cluster involves configuring each individual
+        node in the cluster and setting up individual communication
+        links between nodes. MySQL Cluster is currently designed with
+        the intention that data nodes are homogeneous in terms of
+        processor power, memory space, and bandwidth. In addition, to
+        provide a single point of configuration, all configuration data
+        for the cluster as a whole is located in one configuration file.
+      </para>
+
+      <para>
+        The management server (MGM node) manages the cluster
+        configuration file and the cluster log. Each node in the cluster
+        retrieves the configuration data from the management server, and
+        so requires a way to determine where the management server
+        resides. When interesting events occur in the data nodes, the
+        nodes transfer information about these events to the management
+        server, which then writes the information to the cluster log.
+      </para>
+
+      <para>
+        In addition, there can be any number of cluster client processes
+        or applications. These are of two types:
+      </para>
+
+      <itemizedlist>
+
+        <listitem>
+          <para>
+            <emphasis role="bold">Standard MySQL clients</emphasis>:
+            These are no different for MySQL Cluster than they are for
+            standard (non-Cluster) MySQL. In other words, MySQL Cluster
+            can be accessed from existing MySQL applications written in
+            PHP, Perl, C, C++, Java, Python, Ruby, and so on.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <emphasis role="bold">Management clients</emphasis>: These
+            clients connect to the management server and provide
+            commands for starting and stopping nodes gracefully,
+            starting and stopping message tracing (debug versions only),
+            showing node versions and status, starting and stopping
+            backups, and so on.
+          </para>
+        </listitem>
+
+      </itemizedlist>
+
+    </section>
+
+    <section id="mysql-cluster-nodes-groups">
+
+      <title>MySQL Cluster Nodes, Node Groups, Replicas, and Partitions</title>
+
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>nodes and node groups</secondary>
+      </indexterm>
+
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>replicas</secondary>
+      </indexterm>
+
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>partitions</secondary>
+      </indexterm>
+
+      <indexterm>
+        <primary>node groups (MySQL Cluster)</primary>
+      </indexterm>
+
+      <indexterm>
+        <primary>replicas (MySQL Cluster)</primary>
+      </indexterm>
+
+      <indexterm>
+        <primary>partitions (MySQL Cluster)</primary>
+      </indexterm>
+
+      <remark role="note">
+        Author: Jon Stephens, with valuable assistance from Tomas Ulin,
+        Jeb Miller, and Hartmut Holzgraefe
+      </remark>
+
+      <remark role="note">
+        Revised with feedback from Mikael Ronström and bug reports
+      </remark>
+
+      <para>
+        This section discusses the manner in which MySQL Cluster divides
+        and duplicates data for storage.
+      </para>
+
+      <para>
+        Central to an understanding of this topic are the following
+        concepts, listed here with brief definitions:
+      </para>
+
+      <itemizedlist>
+
+        <listitem>
+          <para>
+            <emphasis role="bold">(Data) Node</emphasis>: An
+            <command>ndbd</command> process, which stores a
+            <firstterm>replica</firstterm> &mdash;that is, a copy of the
+            <firstterm>partition</firstterm> (see below) assigned to the
+            node group of which the node is a member.
+          </para>
+
+          <para>
+            Each data node should be located on a separate computer.
+            While it is also possible to host multiple
+            <command>ndbd</command> processes on a single computer, such
+            a configuration is not supported.
+          </para>
+
+          <para>
+            It is common for the terms <quote>node</quote> and
+            <quote>data node</quote> to be used interchangeably when
+            referring to an <command>ndbd</command> process; where
+            mentioned, management (MGM) nodes
+            (<command>ndb_mgmd</command> processes) and SQL nodes
+            (<command>mysqld</command> processes) are specified as such
+            in this discussion.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <emphasis role="bold">Node Group</emphasis>: A node group
+            consists of one or more nodes, and stores partitions, or
+            sets of <firstterm>replicas</firstterm> (see next item).
+          </para>
+
+          <para>
+            <emphasis role="bold">Note</emphasis>: Currently, all node
+            groups in a cluster must have the same number of nodes.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <emphasis role="bold">Partition</emphasis>: This is a
+            portion of the data stored by the cluster. There are as many
+            cluster partitions as nodes participating in the cluster.
+            Each node is responsible for keeping at least one copy of
+            any partitions assigned to it (that is, at least one
+            replica) available to the cluster.
+          </para>
+
+          <para>
+            A replica belongs entirely to a single node; a node can (and
+            usually does) store several replicas.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <emphasis role="bold">Replica</emphasis>: This is a copy of
+            a cluster partition. Each node in a node group stores a
+            replica. Also sometimes known as a <firstterm>partition
+            replica</firstterm>. The number of replicas is equal to the
+            number of nodes per node group.
+          </para>
+        </listitem>
+
+      </itemizedlist>
+
+      <para>
+        The following diagram illustrates a MySQL Cluster with four data
+        nodes, arranged in two node groups of two nodes each; nodes 1
+        and 2 belong to node group 0, and nodes 3 and 4 belong to node
+        group 1. Note that only data (<command>ndbd</command>) nodes are
+        shown here; although a working cluster requires an
+        <command>ndb_mgm</command> process for cluster management and at
+        least one SQL node to access the data stored by the cluster,
+        these have been omitted in the figure for clarity.
+      </para>
+
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="images/replicas-groups-1-1.png" format="PNG"/>
+        </imageobject>
+        <textobject>
+          <phrase lang="en">A MySQL Cluster, with 2 node groups having 2
+          nodes each</phrase>
+        </textobject>
+      </mediaobject>
+
+      <para>
+        The data stored by the cluster is divided into four partitions,
+        numbered 0, 1, 2, and 3. Each partition is stored &mdash; in
+        multiple copies &mdash; on the same node group. Partitions are
+        stored on alternate node groups:
+      </para>
+
+      <itemizedlist>
+
+        <listitem>
+          <para>
+            Partition 0 is stored on node group 0; a <firstterm>primary
+            replica</firstterm> (primary copy) is stored on node 1, and
+            a <firstterm>backup replica</firstterm> (backup copy of the
+            partition) is stored on node 2.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Partition 1 is stored on the other node group (node group
+            1); this partition's primary replica is on node 3, and its
+            backup replica is on node 4.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Partition 2 is stored on node group 0. However, the placing
+            of its two replicas is reversed from that of Partition 0;
+            for Partition 2, the primary replica is stored on node 2,
+            and the backup on node 1.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Partition 3 is stored on node group 1, and the placement of
+            its two replicas are reversed from those of partition 1.
+            That is, its primary replica is located on node 4, with the
+            backup on node 3.
+          </para>
+        </listitem>
+
+      </itemizedlist>
+
+      <para>
+        What this means regarding the continued operation of a MySQL
+        Cluster is this: so long as each node group participating in the
+        cluster has at least one node operating, the cluster has a
+        complete copy of all data and remains viable. This is
+        illustrated in the next diagram.
+      </para>
+
+      <remark role="todo">
+        [js] Not a very good caption; think of a better one.
+      </remark>
+
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="images/replicas-groups-1-2.png" format="PNG"/>
+        </imageobject>
+        <textobject>
+          <phrase lang="en">Nodes required to keep a 2x2 cluster
+          viable</phrase>
+        </textobject>
+      </mediaobject>
+
+      <para>
+        In this example, where the cluster consists of two node groups
+        of two nodes each, any combination of at least one node in node
+        group 0 and at least one node in node group 1 is sufficient to
+        keep the cluster <quote>alive</quote> (indicated by arrows in
+        the diagram). However, if <emphasis>both</emphasis> nodes from
+        <emphasis>either</emphasis> node group fail, the remaining two
+        nodes are not sufficient (shown by the arrows marked out with an
+        <emphasis role="bold">X</emphasis>); in either case, the cluster
+        has lost an entire partition and so can no longer provide access
+        to a complete set of all cluster data.
+      </para>
+
+    </section>
+
   </section>
 
   <section id="mysql-cluster-cge">

@@ -793,472 +1263,6 @@
 
   </section>
 
-  <section id="mysql-cluster-basics">
-
-    <title>Basic MySQL Cluster Concepts</title>
-
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>concepts</secondary>
-    </indexterm>
-
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>nodes and types</secondary>
-    </indexterm>
-
-    <indexterm>
-      <primary>data node (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
-    </indexterm>
-
-    <indexterm>
-      <primary>management node (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
-    </indexterm>
-
-    <indexterm>
-      <primary>SQL node (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
-    </indexterm>
-
-    <indexterm>
-      <primary>API node (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
-    </indexterm>
-
-    <indexterm>
-      <primary><command>ndbd</command> (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
-<!-- <seealso>data node (MySQL Cluster)</seealso> -->
-    </indexterm>
-
-    <indexterm>
-      <primary><command>mgmd</command> (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
-<!-- <seealso>management node (MySQL Cluster)</seealso> -->
-    </indexterm>
-
-    <indexterm>
-      <primary><command>ndb_mgmd</command> (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
-<!-- <seealso>management node (MySQL Cluster)</seealso> -->
-    </indexterm>
-
-    <indexterm>
-      <primary><command>mysqld</command></primary>
-      <secondary>role in MySQL Cluster</secondary>
-<!-- <see>SQL Node (MySQL Cluster)</see> -->
-    </indexterm>
-
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>data node</secondary>
-    </indexterm>
-
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>management node</secondary>
-    </indexterm>
-
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>SQL node</secondary>
-    </indexterm>
-
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>API node</secondary>
-    </indexterm>
-
-    <indexterm>
-      <primary>Configuring MySQL Cluster (concepts)</primary>
-    </indexterm>
-
-    <para>
-      <firstterm><literal>NDB</literal></firstterm> is an in-memory
-      storage engine offering high-availability and data-persistence
-      features.
-    </para>
-
-    <para>
-      The <literal>NDB</literal> storage engine can be configured with a
-      range of failover and load-balancing options, but it is easiest to
-      start with the storage engine at the cluster level. MySQL
-      Cluster's <literal>NDB</literal> storage engine contains a
-      complete set of data, dependent only on other data within the
-      cluster itself.
-    </para>
-
-    <para>
-      The cluster portion of MySQL Cluster is currently configured
-      independently of the MySQL servers. In a MySQL Cluster, each part
-      of the cluster is considered to be a <firstterm>node</firstterm>.
-    </para>
-
-    <para>
-      <emphasis role="bold">Note</emphasis>: In many contexts, the term
-      <quote>node</quote> is used to indicate a computer, but when
-      discussing MySQL Cluster it means a <emphasis>process</emphasis>.
-      It is possible to run any number of nodes on a single computer,
-      for which we use the term <firstterm>cluster host</firstterm>.
-    </para>
-
-    <para>
-      (However, it should be noted MySQL does not currently support the
-      use of multiple data nodes on a single computer in a production
-      setting. See
-      <xref linkend="mysql-cluster-limitations-multiple-nodes"/>.)
-    </para>
-
-    <para>
-      There are three types of cluster nodes, and in a minimal MySQL
-      Cluster configuration, there will be at least three nodes, one of
-      each of these types:
-    </para>
-
-    <itemizedlist>
-
-      <listitem>
-        <para>
-          <firstterm>Management node</firstterm> (MGM node): The role of
-          this type of node is to manage the other nodes within the
-          MySQL Cluster, performing such functions as providing
-          configuration data, starting and stopping nodes, running
-          backup, and so forth. Because this node type manages the
-          configuration of the other nodes, a node of this type should
-          be started first, before any other node. An MGM node is
-          started with the command <command>ndb_mgmd</command>.
-        </para>
-      </listitem>
-
-      <listitem>
-        <para>
-          <firstterm>Data node</firstterm>: This type of node stores
-          cluster data. There are as many data nodes as there are
-          replicas, times the number of fragments. For example, with two
-          replicas, each having two fragments, you will need four data
-          nodes. It is not necessary to have more than one replica. A
-          data node is started with the command <command>ndbd</command>.
-        </para>
-      </listitem>
-
-      <listitem>
-        <para>
-          <firstterm>SQL node</firstterm>: This is a node that accesses
-          the cluster data. In the case of MySQL Cluster, an SQL node is
-          a traditional MySQL server that uses the <literal>NDB
-          Cluster</literal> storage engine. An SQL node is typically
-          started with the command <command>mysqld
-          --ndbcluster</command> or by using <command>mysqld</command>
-          with the <literal>ndbcluster</literal> option added to
-          <filename>my.cnf</filename>.
-        </para>
-
-        <para>
-          An SQL node is actually just a specialised type of
-          <firstterm>API node</firstterm>, which designates any
-          application which accesses Cluster data. One example of an API
-          node is the <command>ndb_restore</command> utility that is
-          used to restore a cluster backup. It is possible to write such
-          applications using the
-          <ulink url="&base-url-docs;/ndbapi/en/index.html">NDB
-          API</ulink>.
-        </para>
-      </listitem>
-
-    </itemizedlist>
-
-    <para>
-      <emphasis role="bold">Important</emphasis>: It is not realistic to
-      expect to employ a three-node setup in a production environment.
-      Such a configuration provides no redundancy; in order to benefit
-      from MySQL Cluster's high-availability features, you must use
-      multiple data and SQL nodes. The use of multiple management nodes
-      is also highly recommended.
-    </para>
-
-    <para>
-      For a brief introduction to the relationships between nodes, node
-      groups, replicas, and partitions in MySQL Cluster, see
-      <xref linkend="mysql-cluster-nodes-groups"/>.
-    </para>
-
-    <para>
-      Configuration of a cluster involves configuring each individual
-      node in the cluster and setting up individual communication links
-      between nodes. MySQL Cluster is currently designed with the
-      intention that data nodes are homogeneous in terms of processor
-      power, memory space, and bandwidth. In addition, to provide a
-      single point of configuration, all configuration data for the
-      cluster as a whole is located in one configuration file.
-    </para>
-
-    <para>
-      The management server (MGM node) manages the cluster configuration
-      file and the cluster log. Each node in the cluster retrieves the
-      configuration data from the management server, and so requires a
-      way to determine where the management server resides. When
-      interesting events occur in the data nodes, the nodes transfer
-      information about these events to the management server, which
-      then writes the information to the cluster log.
-    </para>
-
-    <para>
-      In addition, there can be any number of cluster client processes
-      or applications. These are of two types:
-    </para>
-
-    <itemizedlist>
-
-      <listitem>
-        <para>
-          <emphasis role="bold">Standard MySQL clients</emphasis>: These
-          are no different for MySQL Cluster than they are for standard
-          (non-Cluster) MySQL. In other words, MySQL Cluster can be
-          accessed from existing MySQL applications written in PHP,
-          Perl, C, C++, Java, Python, Ruby, and so on.
-        </para>
-      </listitem>
-
-      <listitem>
-        <para>
-          <emphasis role="bold">Management clients</emphasis>: These
-          clients connect to the management server and provide commands
-          for starting and stopping nodes gracefully, starting and
-          stopping message tracing (debug versions only), showing node
-          versions and status, starting and stopping backups, and so on.
-        </para>
-      </listitem>
-
-    </itemizedlist>
-
-    <section id="mysql-cluster-nodes-groups">
-
-      <title>MySQL Cluster Nodes, Node Groups, Replicas, and Partitions</title>
-
-      <indexterm>
-        <primary>MySQL Cluster</primary>
-        <secondary>nodes and node groups</secondary>
-      </indexterm>
-
-      <indexterm>
-        <primary>MySQL Cluster</primary>
-        <secondary>replicas</secondary>
-      </indexterm>
-
-      <indexterm>
-        <primary>MySQL Cluster</primary>
-        <secondary>partitions</secondary>
-      </indexterm>
-
-      <indexterm>
-        <primary>node groups (MySQL Cluster)</primary>
-      </indexterm>
-
-      <indexterm>
-        <primary>replicas (MySQL Cluster)</primary>
-      </indexterm>
-
-      <indexterm>
-        <primary>partitions (MySQL Cluster)</primary>
-      </indexterm>
-
-      <remark role="note">
-        Author: Jon Stephens, with valuable assistance from Tomas Ulin,
-        Jeb Miller, and Hartmut Holzgraefe
-      </remark>
-
-      <remark role="note">
-        Revised with feedback from Mikael Ronström and bug reports
-      </remark>
-
-      <para>
-        This section discusses the manner in which MySQL Cluster divides
-        and duplicates data for storage.
-      </para>
-
-      <para>
-        Central to an understanding of this topic are the following
-        concepts, listed here with brief definitions:
-      </para>
-
-      <itemizedlist>
-
-        <listitem>
-          <para>
-            <emphasis role="bold">(Data) Node</emphasis>: An
-            <command>ndbd</command> process, which stores a
-            <firstterm>replica</firstterm> &mdash;that is, a copy of the
-            <firstterm>partition</firstterm> (see below) assigned to the
-            node group of which the node is a member.
-          </para>
-
-          <para>
-            Each data node should be located on a separate computer.
-            While it is also possible to host multiple
-            <command>ndbd</command> processes on a single computer, such
-            a configuration is not supported.
-          </para>
-
-          <para>
-            It is common for the terms <quote>node</quote> and
-            <quote>data node</quote> to be used interchangeably when
-            referring to an <command>ndbd</command> process; where
-            mentioned, management (MGM) nodes
-            (<command>ndb_mgmd</command> processes) and SQL nodes
-            (<command>mysqld</command> processes) are specified as such
-            in this discussion.
-          </para>
-        </listitem>
-
-        <listitem>
-          <para>
-            <emphasis role="bold">Node Group</emphasis>: A node group
-            consists of one or more nodes, and stores partitions, or
-            sets of <firstterm>replicas</firstterm> (see next item).
-          </para>
-
-          <para>
-            <emphasis role="bold">Note</emphasis>: Currently, all node
-            groups in a cluster must have the same number of nodes.
-          </para>
-        </listitem>
-
-        <listitem>
-          <para>
-            <emphasis role="bold">Partition</emphasis>: This is a
-            portion of the data stored by the cluster. There are as many
-            cluster partitions as nodes participating in the cluster.
-            Each node is responsible for keeping at least one copy of
-            any partitions assigned to it (that is, at least one
-            replica) available to the cluster.
-          </para>
-
-          <para>
-            A replica belongs entirely to a single node; a node can (and
-            usually does) store several replicas.
-          </para>
-        </listitem>
-
-        <listitem>
-          <para>
-            <emphasis role="bold">Replica</emphasis>: This is a copy of
-            a cluster partition. Each node in a node group stores a
-            replica. Also sometimes known as a <firstterm>partition
-            replica</firstterm>. The number of replicas is equal to the
-            number of nodes per node group.
-          </para>
-        </listitem>
-
-      </itemizedlist>
-
-      <para>
-        The following diagram illustrates a MySQL Cluster with four data
-        nodes, arranged in two node groups of two nodes each; nodes 1
-        and 2 belong to node group 0, and nodes 3 and 4 belong to node
-        group 1. Note that only data (<command>ndbd</command>) nodes are
-        shown here; although a working cluster requires an
-        <command>ndb_mgm</command> process for cluster management and at
-        least one SQL node to access the data stored by the cluster,
-        these have been omitted in the figure for clarity.
-      </para>
-
-      <mediaobject>
-        <imageobject>
-          <imagedata fileref="images/replicas-groups-1-1.png" format="PNG"/>
-        </imageobject>
-        <textobject>
-          <phrase lang="en">A MySQL Cluster, with 2 node groups having 2
-          nodes each</phrase>
-        </textobject>
-      </mediaobject>
-
-      <para>
-        The data stored by the cluster is divided into four partitions,
-        numbered 0, 1, 2, and 3. Each partition is stored &mdash; in
-        multiple copies &mdash; on the same node group. Partitions are
-        stored on alternate node groups:
-      </para>
-
-      <itemizedlist>
-
-        <listitem>
-          <para>
-            Partition 0 is stored on node group 0; a <firstterm>primary
-            replica</firstterm> (primary copy) is stored on node 1, and
-            a <firstterm>backup replica</firstterm> (backup copy of the
-            partition) is stored on node 2.
-          </para>
-        </listitem>
-
-        <listitem>
-          <para>
-            Partition 1 is stored on the other node group (node group
-            1); this partition's primary replica is on node 3, and its
-            backup replica is on node 4.
-          </para>
-        </listitem>
-
-        <listitem>
-          <para>
-            Partition 2 is stored on node group 0. However, the placing
-            of its two replicas is reversed from that of Partition 0;
-            for Partition 2, the primary replica is stored on node 2,
-            and the backup on node 1.
-          </para>
-        </listitem>
-
-        <listitem>
-          <para>
-            Partition 3 is stored on node group 1, and the placement of
-            its two replicas are reversed from those of partition 1.
-            That is, its primary replica is located on node 4, with the
-            backup on node 3.
-          </para>
-        </listitem>
-
-      </itemizedlist>
-
-      <para>
-        What this means regarding the continued operation of a MySQL
-        Cluster is this: so long as each node group participating in the
-        cluster has at least one node operating, the cluster has a
-        complete copy of all data and remains viable. This is
-        illustrated in the next diagram.
-      </para>
-
-      <remark role="todo">
-        [js] Not a very good caption; think of a better one.
-      </remark>
-
-      <mediaobject>
-        <imageobject>
-          <imagedata fileref="images/replicas-groups-1-2.png" format="PNG"/>
-        </imageobject>
-        <textobject>
-          <phrase lang="en">Nodes required to keep a 2x2 cluster
-          viable</phrase>
-        </textobject>
-      </mediaobject>
-
-      <para>
-        In this example, where the cluster consists of two node groups
-        of two nodes each, any combination of at least one node in node
-        group 0 and at least one node in node group 1 is sufficient to
-        keep the cluster <quote>alive</quote> (indicated by arrows in
-        the diagram). However, if <emphasis>both</emphasis> nodes from
-        <emphasis>either</emphasis> node group fail, the remaining two
-        nodes are not sufficient (shown by the arrows marked out with an
-        <emphasis role="bold">X</emphasis>); in either case, the cluster
-        has lost an entire partition and so can no longer provide access
-        to a complete set of all cluster data.
-      </para>
-
-    </section>
-
-  </section>
-
   <section id="mysql-cluster-multi-computer">
 
     <title>Simple Multi-Computer How-To</title>


Modified: trunk/refman-5.2/mysql-cluster.xml
===================================================================
--- trunk/refman-5.2/mysql-cluster.xml	2007-06-26 19:23:09 UTC (rev 6917)
+++ trunk/refman-5.2/mysql-cluster.xml	2007-06-27 07:44:30 UTC (rev 6918)
Changed blocks: 2, Lines Added: 394, Lines Deleted: 390; 30664 bytes

@@ -205,442 +205,252 @@
       should not be a source of problems.
     </para>
 
-  </section>
+    <section id="mysql-cluster-basics">
 
-  <section id="mysql-cluster-cge">
+      <title>MySQL Cluster Core Concepts</title>
 
-    <title>&mccge-series;</title>
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>concepts</secondary>
+      </indexterm>
 
-    <para>
-      &mccge-series; is a branch of MySQL 5.1 using advanced versions of
-      the <literal>NDB</literal> storage engine and
-      <literal>NDB</literal> API. It is intended for use in the
-      telcommunications industry, and is available in binary and source
-      form to commercial customers. Two development trees can also be
-      accessed via <ulink url="http://mysql.bkbits.net/"/>:
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>nodes and types</secondary>
+      </indexterm>
 
-      <itemizedlist>
+      <indexterm>
+        <primary>data node (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
+      </indexterm>
 
-        <listitem>
-          <para>
-            <literal>mysql-5.1-telco</literal>
-          </para>
-        </listitem>
+      <indexterm>
+        <primary>management node (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
+      </indexterm>
 
-        <listitem>
-          <para>
-            <literal>mysql-5.1-telco-6.1</literal>
-          </para>
-        </listitem>
+      <indexterm>
+        <primary>SQL node (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
+      </indexterm>
 
-      </itemizedlist>
-    </para>
+      <indexterm>
+        <primary>API node (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
+      </indexterm>
 
-    <formalpara>
+      <indexterm>
+        <primary><command>ndbd</command> (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
+<!-- <seealso>data node (MySQL Cluster)</seealso> -->
+      </indexterm>
 
-      <title>&mccge-series; versioning</title>
+      <indexterm>
+        <primary><command>mgmd</command> (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
+<!-- <seealso>management node (MySQL Cluster)</seealso> -->
+      </indexterm>
 
-      <para>
-        &mccge-series; &mdash; sometimes also referred to as
-        <quote>CGE</quote> &mdash; follows a somewhat different release
-        pattern from the mainline MySQL 5.1 Cluster series of releases.
-        Each &mccge-series; release is identified by a two-part version
-        string which identifies the mainline MySQL version from which
-        the CGE release was branched and the version of the
-        <literal>NDB</literal> storage engine used. For example, the
-        first CGE release was <literal>mysql-5.1.14-ndb-6.1.0</literal>.
-        The version string tells us that this version:
+      <indexterm>
+        <primary><command>ndb_mgmd</command> (MySQL Cluster)</primary>
+        <secondary>defined</secondary>
+<!-- <seealso>management node (MySQL Cluster)</seealso> -->
+      </indexterm>
 
-        <itemizedlist>
+      <indexterm>
+        <primary><command>mysqld</command></primary>
+        <secondary>role in MySQL Cluster</secondary>
+<!-- <see>SQL Node (MySQL Cluster)</see> -->
+      </indexterm>
 
-          <listitem>
-            <para>
-              Derives from MySQL 5.1.14, and contains all feature
-              enhancement and bugfixes from MySQL 5.1, up to and
-              including MySQL 5.1.14.
-            </para>
-          </listitem>
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>data node</secondary>
+      </indexterm>
 
-          <listitem>
-            <para>
-              Uses version 6.1.0 of the <literal>NDB</literal> storage
-              engine.
-            </para>
-          </listitem>
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>management node</secondary>
+      </indexterm>
 
-        </itemizedlist>
-      </para>
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>SQL node</secondary>
+      </indexterm>
 
-    </formalpara>
+      <indexterm>
+        <primary>MySQL Cluster</primary>
+        <secondary>API node</secondary>
+      </indexterm>
 
-    <remark role="note">
-      [js] Needs to be updated with each new CGE release.
-    </remark>
+      <indexterm>
+        <primary>Configuring MySQL Cluster (concepts)</primary>
+      </indexterm>
 
-    <formalpara>
+      <para>
+        <firstterm><literal>NDB</literal></firstterm> is an in-memory
+        storage engine offering high-availability and data-persistence
+        features.
+      </para>
 
-      <title>&mccge-series; change history</title>
+      <para>
+        The <literal>NDB</literal> storage engine can be configured with
+        a range of failover and load-balancing options, but it is
+        easiest to start with the storage engine at the cluster level.
+        MySQL Cluster's <literal>NDB</literal> storage engine contains a
+        complete set of data, dependent only on other data within the
+        cluster itself.
+      </para>
 
       <para>
-        Changelogs for &mccge-series; releases may be found in
-        <xref linkend="news-5-1-x"/>, and are grouped together according
-        to the mainline MySQL 5.1 version from which they derive, in the
-        following sections:
-
-        <itemizedlist>
-
-          <listitem>
-            <para>
-              <xref linkend="news-5-1-14-cge"/>: Includes
-              <xref linkend="news-5-1-14-ndb-6-1-0"/>.
-            </para>
-
-            <para>
-              This release includes all feature enhancements and
-              bugfixes made in MySQL 5.1 up to and including the 5.1.14
-              release.
-            </para>
-          </listitem>
-
-          <listitem>
-            <para>
-              <xref linkend="news-5-1-15-cge"/>: Includes
-              <xref linkend="news-5-1-15-ndb-6-1-1"/>,
-              <xref linkend="news-5-1-15-ndb-6-1-2"/>,
-              <xref linkend="news-5-1-15-ndb-6-1-3"/>,
-              <xref linkend="news-5-1-15-ndb-6-1-4"/>,
-              <xref linkend="news-5-1-15-ndb-6-1-5"/>, and
-              <xref linkend="news-5-1-15-ndb-6-1-6"/>.
-            </para>
-
-            <para>
-              These releases include all feature enhancements and
-              bugfixes made in MySQL 5.1 up to and including 5.1.15, as
-              well as those CGE-specific enhancements made in
-              MySQL-5.1.14-ndb-6.1.0.
-            </para>
-          </listitem>
-
-          <listitem>
-            <para>
-              <xref linkend="news-5-1-16-cge"/>: Includes
-              <xref linkend="news-5-1-16-ndb-6-2-0"/> and
-              <xref linkend="news-5-1-18-ndb-6-2-1"/>.
-            </para>
-
-            <para>
-              These releases include all feature enhancements and
-              bugfixes made in MySQL 5.1 up to and including 5.1.16, as
-              well as those CGE-specific enhancements that were made in
-              ndb-6.1.<replaceable>x</replaceable> releases.
-            </para>
-          </listitem>
-
-        </itemizedlist>
-
-        Each of the &mccge-series; includes enhancements to the
-        <literal>NDB</literal> storage engine that do not appear in the
-        mainline MySQL &current-series; tree. We plan to port these to
-        MySQL &current-series; or later mainline MySQL releases at some
-        point in the future.
+        The cluster portion of MySQL Cluster is currently configured
+        independently of the MySQL servers. In a MySQL Cluster, each
+        part of the cluster is considered to be a
+        <firstterm>node</firstterm>.
       </para>
 
-    </formalpara>
-
-    <para>
-      Some fixes that were applied first in &mccge-series; have already
-      been ported to MySQL &current-series;. In these cases, the fix is
-      listed twice in <xref linkend="news-5-1-x"/>.
-    </para>
-
-    <para>
-      Since all bugfixes applied in &mccge-series; relate to MySQL
-      Cluster, changelog entries for CGE releases are not prefixed with
-      <quote><literal>NDB Cluster</literal>:</quote> as MySQL Cluster
-      bugfixes in mainline MySQL &current-series; are.
-    </para>
-
-    <important>
       <para>
-        This chapter of the MySQL Manual covers both MySQL
-        &current-series; and &mccge-series;.
+        <emphasis role="bold">Note</emphasis>: In many contexts, the
+        term <quote>node</quote> is used to indicate a computer, but
+        when discussing MySQL Cluster it means a
+        <emphasis>process</emphasis>. It is possible to run any number
+        of nodes on a single computer, for which we use the term
+        <firstterm>cluster host</firstterm>.
       </para>
 
       <para>
-        Information which applies to &mccge-series; releases but not to
-        mainline &current-series; releases is indicated with a warning
-        such as this one:
+        (However, it should be noted MySQL does not currently support
+        the use of multiple data nodes on a single computer in a
+        production setting. See
+        <xref linkend="mysql-cluster-limitations-multiple-nodes"/>.)
       </para>
-      
-      &mccge-warning-begin;
-      
+
       <para>
-        Information which applies to mainline MySQL &current-series;
-        releases but not to &mccge-series; releases is indicated with a
-        warning such as this one:
+        There are three types of cluster nodes, and in a minimal MySQL
+        Cluster configuration, there will be at least three nodes, one
+        of each of these types:
       </para>
-      
-      &mccge-warning-unsupported-begin;
-    </important>
 
-    <para>
-      Currently, both the ndb-6.1.<replaceable>x</replaceable> and
-      ndb-6.2.<replaceable>x</replaceable> series are under active
-      development, with the ndb-6.1.<replaceable>x</replaceable> series
-      intended for use by telecommunications customers and
-      ndb-6.2.<replaceable>x</replaceable> intended for testing
-      purposes.
-    </para>
+      <itemizedlist>
 
-    <para>
-      Additional information about obtaining &mccge-series; binaries can
-      be found on the MySQL AB web site at
-      <ulink url="http://www.mysql.com/products/database/clustercge/"/>,
-      or by contacting <email>sales@stripped</email>.
-    </para>
+        <listitem>
+          <para>
+            <firstterm>Management node</firstterm> (MGM node): The role
+            of this type of node is to manage the other nodes within the
+            MySQL Cluster, performing such functions as providing
+            configuration data, starting and stopping nodes, running
+            backup, and so forth. Because this node type manages the
+            configuration of the other nodes, a node of this type should
+            be started first, before any other node. An MGM node is
+            started with the command <command>ndb_mgmd</command>.
+          </para>
+        </listitem>
 
-  </section>
+        <listitem>
+          <para>
+            <firstterm>Data node</firstterm>: This type of node stores
+            cluster data. There are as many data nodes as there are
+            replicas, times the number of fragments. For example, with
+            two replicas, each having two fragments, you will need four
+            data nodes. It is not necessary to have more than one
+            replica. A data node is started with the command
+            <command>ndbd</command>.
+          </para>
+        </listitem>
 
-  <section id="mysql-cluster-basics">
+        <listitem>
+          <para>
+            <firstterm>SQL node</firstterm>: This is a node that
+            accesses the cluster data. In the case of MySQL Cluster, an
+            SQL node is a traditional MySQL server that uses the
+            <literal>NDB Cluster</literal> storage engine. An SQL node
+            is typically started with the command <command>mysqld
+            --ndbcluster</command> or by using <command>mysqld</command>
+            with the <literal>ndbcluster</literal> option added to
+            <filename>my.cnf</filename>.
+          </para>
 
-    <title>Basic MySQL Cluster Concepts</title>
+          <para>
+            An SQL node is actually just a specialised type of
+            <firstterm>API node</firstterm>, which designates any
+            application which accesses Cluster data. One example of an
+            API node is the <command>ndb_restore</command> utility that
+            is used to restore a cluster backup. It is possible to write
+            such applications using the
+            <ulink url="&base-url-docs;/ndbapi/en/index.html">NDB
+            API</ulink>.
+          </para>
+        </listitem>
 
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>concepts</secondary>
-    </indexterm>
+      </itemizedlist>
 
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>nodes and types</secondary>
-    </indexterm>
+      <para>
+        <emphasis role="bold">Important</emphasis>: It is not realistic
+        to expect to employ a three-node setup in a production
+        environment. Such a configuration provides no redundancy; in
+        order to benefit from MySQL Cluster's high-availability
+        features, you must use multiple data and SQL nodes. The use of
+        multiple management nodes is also highly recommended.
+      </para>
 
-    <indexterm>
-      <primary>data node (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
-    </indexterm>
+      <para>
+        For a brief introduction to the relationships between nodes,
+        node groups, replicas, and partitions in MySQL Cluster, see
+        <xref linkend="mysql-cluster-nodes-groups"/>.
+      </para>
 
-    <indexterm>
-      <primary>management node (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
-    </indexterm>
+      <para>
+        Configuration of a cluster involves configuring each individual
+        node in the cluster and setting up individual communication
+        links between nodes. MySQL Cluster is currently designed with
+        the intention that data nodes are homogeneous in terms of
+        processor power, memory space, and bandwidth. In addition, to
+        provide a single point of configuration, all configuration data
+        for the cluster as a whole is located in one configuration file.
+      </para>
 
-    <indexterm>
-      <primary>SQL node (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
-    </indexterm>
+      <para>
+        The management server (MGM node) manages the cluster
+        configuration file and the cluster log. Each node in the cluster
+        retrieves the configuration data from the management server, and
+        so requires a way to determine where the management server
+        resides. When interesting events occur in the data nodes, the
+        nodes transfer information about these events to the management
+        server, which then writes the information to the cluster log.
+      </para>
 
-    <indexterm>
-      <primary>API node (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
-    </indexterm>
+      <para>
+        In addition, there can be any number of cluster client processes
+        or applications. These are of two types:
+      </para>
 
-    <indexterm>
-      <primary><command>ndbd</command> (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
-<!-- <seealso>data node (MySQL Cluster)</seealso> -->
-    </indexterm>
+      <itemizedlist>
 
-    <indexterm>
-      <primary><command>mgmd</command> (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
-<!-- <seealso>management node (MySQL Cluster)</seealso> -->
-    </indexterm>
+        <listitem>
+          <para>
+            <emphasis role="bold">Standard MySQL clients</emphasis>:
+            These are no different for MySQL Cluster than they are for
+            standard (non-Cluster) MySQL. In other words, MySQL Cluster
+            can be accessed from existing MySQL applications written in
+            PHP, Perl, C, C++, Java, Python, Ruby, and so on.
+          </para>
+        </listitem>
 
-    <indexterm>
-      <primary><command>ndb_mgmd</command> (MySQL Cluster)</primary>
-      <secondary>defined</secondary>
-<!-- <seealso>management node (MySQL Cluster)</seealso> -->
-    </indexterm>
+        <listitem>
+          <para>
+            <emphasis role="bold">Management clients</emphasis>: These
+            clients connect to the management server and provide
+            commands for starting and stopping nodes gracefully,
+            starting and stopping message tracing (debug versions only),
+            showing node versions and status, starting and stopping
+            backups, and so on.
+          </para>
+        </listitem>
 
-    <indexterm>
-      <primary><command>mysqld</command></primary>
-      <secondary>role in MySQL Cluster</secondary>
-<!-- <see>SQL Node (MySQL Cluster)</see> -->
-    </indexterm>
+      </itemizedlist>
 
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>data node</secondary>
-    </indexterm>
+    </section>
 
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>management node</secondary>
-    </indexterm>
-
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>SQL node</secondary>
-    </indexterm>
-
-    <indexterm>
-      <primary>MySQL Cluster</primary>
-      <secondary>API node</secondary>
-    </indexterm>
-
-    <indexterm>
-      <primary>Configuring MySQL Cluster (concepts)</primary>
-    </indexterm>
-
-    <para>
-      <firstterm><literal>NDB</literal></firstterm> is an in-memory
-      storage engine offering high-availability and data-persistence
-      features.
-    </para>
-
-    <para>
-      The <literal>NDB</literal> storage engine can be configured with a
-      range of failover and load-balancing options, but it is easiest to
-      start with the storage engine at the cluster level. MySQL
-      Cluster's <literal>NDB</literal> storage engine contains a
-      complete set of data, dependent only on other data within the
-      cluster itself.
-    </para>
-
-    <para>
-      The cluster portion of MySQL Cluster is currently configured
-      independently of the MySQL servers. In a MySQL Cluster, each part
-      of the cluster is considered to be a <firstterm>node</firstterm>.
-    </para>
-
-    <para>
-      <emphasis role="bold">Note</emphasis>: In many contexts, the term
-      <quote>node</quote> is used to indicate a computer, but when
-      discussing MySQL Cluster it means a <emphasis>process</emphasis>.
-      It is possible to run any number of nodes on a single computer,
-      for which we use the term <firstterm>cluster host</firstterm>.
-    </para>
-
-    <para>
-      (However, it should be noted MySQL does not currently support the
-      use of multiple data nodes on a single computer in a production
-      setting. See
-      <xref linkend="mysql-cluster-limitations-multiple-nodes"/>.)
-    </para>
-
-    <para>
-      There are three types of cluster nodes, and in a minimal MySQL
-      Cluster configuration, there will be at least three nodes, one of
-      each of these types:
-    </para>
-
-    <itemizedlist>
-
-      <listitem>
-        <para>
-          <firstterm>Management node</firstterm> (MGM node): The role of
-          this type of node is to manage the other nodes within the
-          MySQL Cluster, performing such functions as providing
-          configuration data, starting and stopping nodes, running
-          backup, and so forth. Because this node type manages the
-          configuration of the other nodes, a node of this type should
-          be started first, before any other node. An MGM node is
-          started with the command <command>ndb_mgmd</command>.
-        </para>
-      </listitem>
-
-      <listitem>
-        <para>
-          <firstterm>Data node</firstterm>: This type of node stores
-          cluster data. There are as many data nodes as there are
-          replicas, times the number of fragments. For example, with two
-          replicas, each having two fragments, you will need four data
-          nodes. It is not necessary to have more than one replica. A
-          data node is started with the command <command>ndbd</command>.
-        </para>
-      </listitem>
-
-      <listitem>
-        <para>
-          <firstterm>SQL node</firstterm>: This is a node that accesses
-          the cluster data. In the case of MySQL Cluster, an SQL node is
-          a traditional MySQL server that uses the <literal>NDB
-          Cluster</literal> storage engine. An SQL node is typically
-          started with the command <command>mysqld
-          --ndbcluster</command> or by using <command>mysqld</command>
-          with the <literal>ndbcluster</literal> option added to
-          <filename>my.cnf</filename>.
-        </para>
-
-        <para>
-          An SQL node is actually just a specialised type of
-          <firstterm>API node</firstterm>, which designates any
-          application which accesses Cluster data. One example of an API
-          node is the <command>ndb_restore</command> utility that is
-          used to restore a cluster backup. It is possible to write such
-          applications using the
-          <ulink url="&base-url-docs;/ndbapi/en/index.html">NDB
-          API</ulink>.
-        </para>
-      </listitem>
-
-    </itemizedlist>
-
-    <para>
-      <emphasis role="bold">Important</emphasis>: It is not realistic to
-      expect to employ a three-node setup in a production environment.
-      Such a configuration provides no redundancy; in order to benefit
-      from MySQL Cluster's high-availability features, you must use
-      multiple data and SQL nodes. The use of multiple management nodes
-      is also highly recommended.
-    </para>
-
-    <para>
-      For a brief introduction to the relationships between nodes, node
-      groups, replicas, and partitions in MySQL Cluster, see
-      <xref linkend="mysql-cluster-nodes-groups"/>.
-    </para>
-
-    <para>
-      Configuration of a cluster involves configuring each individual
-      node in the cluster and setting up individual communication links
-      between nodes. MySQL Cluster is currently designed with the
-      intention that data nodes are homogeneous in terms of processor
-      power, memory space, and bandwidth. In addition, to provide a
-      single point of configuration, all configuration data for the
-      cluster as a whole is located in one configuration file.
-    </para>
-
-    <para>
-      The management server (MGM node) manages the cluster configuration
-      file and the cluster log. Each node in the cluster retrieves the
-      configuration data from the management server, and so requires a
-      way to determine where the management server resides. When
-      interesting events occur in the data nodes, the nodes transfer
-      information about these events to the management server, which
-      then writes the information to the cluster log.
-    </para>
-
-    <para>
-      In addition, there can be any number of cluster client processes
-      or applications. These are of two types:
-    </para>
-
-    <itemizedlist>
-
-      <listitem>
-        <para>
-          <emphasis role="bold">Standard MySQL clients</emphasis>: These
-          are no different for MySQL Cluster than they are for standard
-          (non-Cluster) MySQL. In other words, MySQL Cluster can be
-          accessed from existing MySQL applications written in PHP,
-          Perl, C, C++, Java, Python, Ruby, and so on.
-        </para>
-      </listitem>
-
-      <listitem>
-        <para>
-          <emphasis role="bold">Management clients</emphasis>: These
-          clients connect to the management server and provide commands
-          for starting and stopping nodes gracefully, starting and
-          stopping message tracing (debug versions only), showing node
-          versions and status, starting and stopping backups, and so on.
-        </para>
-      </listitem>
-
-    </itemizedlist>
-
     <section id="mysql-cluster-nodes-groups">
 
       <title>MySQL Cluster Nodes, Node Groups, Replicas, and Partitions</title>

@@ -867,6 +677,200 @@
 
   </section>
 
+  <section id="mysql-cluster-cge">
+
+    <title>&mccge-series;</title>
+
+    <para>
+      &mccge-series; is a branch of MySQL 5.1 using advanced versions of
+      the <literal>NDB</literal> storage engine and
+      <literal>NDB</literal> API. It is intended for use in the
+      telcommunications industry, and is available in binary and source
+      form to commercial customers. Two development trees can also be
+      accessed via <ulink url="http://mysql.bkbits.net/"/>:
+
+      <itemizedlist>
+
+        <listitem>
+          <para>
+            <literal>mysql-5.1-telco</literal>
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <literal>mysql-5.1-telco-6.1</literal>
+          </para>
+        </listitem>
+
+      </itemizedlist>
+    </para>
+
+    <formalpara>
+
+      <title>&mccge-series; versioning</title>
+
+      <para>
+        &mccge-series; &mdash; sometimes also referred to as
+        <quote>CGE</quote> &mdash; follows a somewhat different release
+        pattern from the mainline MySQL 5.1 Cluster series of releases.
+        Each &mccge-series; release is identified by a two-part version
+        string which identifies the mainline MySQL version from which
+        the CGE release was branched and the version of the
+        <literal>NDB</literal> storage engine used. For example, the
+        first CGE release was <literal>mysql-5.1.14-ndb-6.1.0</literal>.
+        The version string tells us that this version:
+
+        <itemizedlist>
+
+          <listitem>
+            <para>
+              Derives from MySQL 5.1.14, and contains all feature
+              enhancement and bugfixes from MySQL 5.1, up to and
+              including MySQL 5.1.14.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              Uses version 6.1.0 of the <literal>NDB</literal> storage
+              engine.
+            </para>
+          </listitem>
+
+        </itemizedlist>
+      </para>
+
+    </formalpara>
+
+    <remark role="note">
+      [js] Needs to be updated with each new CGE release.
+    </remark>
+
+    <formalpara>
+
+      <title>&mccge-series; change history</title>
+
+      <para>
+        Changelogs for &mccge-series; releases may be found in
+        <xref linkend="news-5-1-x"/>, and are grouped together according
+        to the mainline MySQL 5.1 version from which they derive, in the
+        following sections:
+
+        <itemizedlist>
+
+          <listitem>
+            <para>
+              <xref linkend="news-5-1-14-cge"/>: Includes
+              <xref linkend="news-5-1-14-ndb-6-1-0"/>.
+            </para>
+
+            <para>
+              This release includes all feature enhancements and
+              bugfixes made in MySQL 5.1 up to and including the 5.1.14
+              release.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <xref linkend="news-5-1-15-cge"/>: Includes
+              <xref linkend="news-5-1-15-ndb-6-1-1"/>,
+              <xref linkend="news-5-1-15-ndb-6-1-2"/>,
+              <xref linkend="news-5-1-15-ndb-6-1-3"/>,
+              <xref linkend="news-5-1-15-ndb-6-1-4"/>,
+              <xref linkend="news-5-1-15-ndb-6-1-5"/>, and
+              <xref linkend="news-5-1-15-ndb-6-1-6"/>.
+            </para>
+
+            <para>
+              These releases include all feature enhancements and
+              bugfixes made in MySQL 5.1 up to and including 5.1.15, as
+              well as those CGE-specific enhancements made in
+              MySQL-5.1.14-ndb-6.1.0.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <xref linkend="news-5-1-16-cge"/>: Includes
+              <xref linkend="news-5-1-16-ndb-6-2-0"/> and
+              <xref linkend="news-5-1-18-ndb-6-2-1"/>.
+            </para>
+
+            <para>
+              These releases include all feature enhancements and
+              bugfixes made in MySQL 5.1 up to and including 5.1.16, as
+              well as those CGE-specific enhancements that were made in
+              ndb-6.1.<replaceable>x</replaceable> releases.
+            </para>
+          </listitem>
+
+        </itemizedlist>
+
+        Each of the &mccge-series; includes enhancements to the
+        <literal>NDB</literal> storage engine that do not appear in the
+        mainline MySQL &current-series; tree. We plan to port these to
+        MySQL &current-series; or later mainline MySQL releases at some
+        point in the future.
+      </para>
+
+    </formalpara>
+
+    <para>
+      Some fixes that were applied first in &mccge-series; have already
+      been ported to MySQL &current-series;. In these cases, the fix is
+      listed twice in <xref linkend="news-5-1-x"/>.
+    </para>
+
+    <para>
+      Since all bugfixes applied in &mccge-series; relate to MySQL
+      Cluster, changelog entries for CGE releases are not prefixed with
+      <quote><literal>NDB Cluster</literal>:</quote> as MySQL Cluster
+      bugfixes in mainline MySQL &current-series; are.
+    </para>
+
+    <important>
+      <para>
+        This chapter of the MySQL Manual covers both MySQL
+        &current-series; and &mccge-series;.
+      </para>
+
+      <para>
+        Information which applies to &mccge-series; releases but not to
+        mainline &current-series; releases is indicated with a warning
+        such as this one:
+      </para>
+      
+      &mccge-warning-begin;
+      
+      <para>
+        Information which applies to mainline MySQL &current-series;
+        releases but not to &mccge-series; releases is indicated with a
+        warning such as this one:
+      </para>
+      
+      &mccge-warning-unsupported-begin;
+    </important>
+
+    <para>
+      Currently, both the ndb-6.1.<replaceable>x</replaceable> and
+      ndb-6.2.<replaceable>x</replaceable> series are under active
+      development, with the ndb-6.1.<replaceable>x</replaceable> series
+      intended for use by telecommunications customers and
+      ndb-6.2.<replaceable>x</replaceable> intended for testing
+      purposes.
+    </para>
+
+    <para>
+      Additional information about obtaining &mccge-series; binaries can
+      be found on the MySQL AB web site at
+      <ulink url="http://www.mysql.com/products/database/clustercge/"/>,
+      or by contacting <email>sales@stripped</email>.
+    </para>
+
+  </section>
+
   <section id="mysql-cluster-multi-computer">
 
     <title>Simple Multi-Computer How-To</title>


Thread
svn commit - mysqldoc@docsrva: r6918 - in trunk: refman-4.1 refman-5.0 refman-5.1 refman-5.2jon27 Jun