List:Commits« Previous MessageNext Message »
From:jon.stephens Date:April 21 2011 10:04am
Subject:svn commit - mysqldoc@oter02: r25956 - in trunk: dynamic-docs/changelog dynamic-docs/command-optvars refman-5.1
View as plain text  
Author: js221926
Date: 2011-04-21 12:04:36 +0200 (Thu, 21 Apr 2011)
New Revision: 25956

Log:

Documented fix for Cluster BUG#11766167 / BUG#59213:

  Ability to use NodeGroup=65536 (and not use --nowait-nodes)

  New StartNoNodegroupTimeout data node configuration parameter



Modified:
   trunk/dynamic-docs/changelog/mysqld-2.xml
   trunk/dynamic-docs/command-optvars/ndb-config-params.xml
   trunk/refman-5.1/mysql-cluster-configuration-core.xml
   trunk/refman-5.1/mysql-cluster-management.xml
   trunk/refman-5.1/mysql-cluster-overview.xml


Modified: trunk/dynamic-docs/changelog/mysqld-2.xml
===================================================================
--- trunk/dynamic-docs/changelog/mysqld-2.xml	2011-04-21 07:48:02 UTC (rev 25955)
+++ trunk/dynamic-docs/changelog/mysqld-2.xml	2011-04-21 10:04:36 UTC (rev 25956)
Changed blocks: 1, Lines Added: 57, Lines Deleted: 0; 2391 bytes

@@ -10,6 +10,63 @@
 
     <tags>
       <highlight type="cluster"/>
+      <manual type="online add nodes"/>
+      <manual type="NodeGroup"/>
+      <manual type="StartNoNodeGroupTimeout"/>
+      <manual type="--nowait-nodes"/>
+    </tags>
+
+    <bugs>
+      <fixes bugid="11766167"/>
+      <fixes bugid="59213"/>
+    </bugs>
+
+    <versions>
+      <version ver="5.1.56-ndb-7.0.24"/>
+      <version ver="5.1.56-ndb-7.1.13"/>
+    </versions>
+
+    <message>
+
+      <para>
+        It is now possible to add data nodes online to a running MySQL
+        Cluster without performing a rolling restart of the cluster or
+        starting data node processes with the
+        <option role="ndbd">--nowait-nodes</option> option. This can be
+        done by setting <literal role="ndbparam:ndbd">Nodegroup =
+        65536</literal> in the <filename>config.ini</filename> file for
+        any data nodes that should be started at a later time, when
+        first starting the cluster. (It was possible to set
+        <literal role="ndbparam:ndbd">NodeGroup</literal> to this value
+        previously, but the management server failed to start.)
+      </para>
+
+      <para>
+        As part of this fix, a new data node configuration parameter
+        <literal role="ndbparam:ndbd">StartNoNodeGroupTimeout</literal>
+        has been added. When the management server sees that there are
+        data nodes with no node group (that is, nodes for which
+        <literal role="ndbparam:ndbd">Nodegroup = 65536</literal>), it
+        waits
+        <literal role="ndbparam:ndbd">StartNoNodeGroupTimeout</literal>
+        milliseconds before treating these nodes as though they were
+        listed with the <option role="ndbd">--nowait-nodes</option>
+        option, and proceeds to start.
+      </para>
+
+      <para>
+        For more information, see
+        <xref linkend="mysql-cluster-online-add-node"/>.
+      </para>
+
+    </message>
+
+  </logentry>
+
+  <logentry entrytype="feature">
+
+    <tags>
+      <highlight type="cluster"/>
       <manual type="ndbinfo.nodes"/>
       <manual type="configuration"/>
       <manual type="restarts"/>


Modified: trunk/dynamic-docs/command-optvars/ndb-config-params.xml
===================================================================
--- trunk/dynamic-docs/command-optvars/ndb-config-params.xml	2011-04-21 07:48:02 UTC (rev 25955)
+++ trunk/dynamic-docs/command-optvars/ndb-config-params.xml	2011-04-21 10:04:36 UTC (rev 25956)
Changed blocks: 2, Lines Added: 25, Lines Deleted: 1; 1456 bytes

@@ -2959,7 +2959,7 @@
     </shortdescription>
 
     <values vartype="numeric" platform="all" inversion="5.1.30-ndb-6.4.0" units="">
-      <value default="" minimum="0" maximum="64K"/>
+      <value default="" minimum="0" maximum="65536"/>
     </values>
 
     <versions>

@@ -4486,6 +4486,30 @@
 
   </mysqloption>
 
+  <mysqloption id="startnonodegrouptimeout-ndbd" section="cluster" subsection="ndbd">
+
+    <xrefto id="ndbparam-ndbd-startnonodegrouptimeout"/>
+
+    <name>StartNoNodeGroupTimeout</name>
+
+    <shortdescription>
+      Time to wait for nodes without a nodegroup before trying to start
+      (0=forever)
+    </shortdescription>
+
+    <values vartype="numeric" platform="all" inversion="5.1.56-ndb-7.0.24" units="milliseconds">
+      <value default="15000" minimum="0" maximum="4294967039"/>
+    </values>
+
+    <versions>
+      <manual version="5.1"/>
+      <introduced version="5.1.56-ndb-7.0.24,5.1.56-ndb-7.1.13"/>
+    </versions>
+
+    <restart type="node" initial="no"/>
+
+  </mysqloption>
+
   <mysqloption id="startpartialtimeout-ndbd" section="cluster" subsection="ndbd">
 
     <xrefto id="ndbparam-ndbd-startpartialtimeout"/>


Modified: trunk/refman-5.1/mysql-cluster-configuration-core.xml
===================================================================
--- trunk/refman-5.1/mysql-cluster-configuration-core.xml	2011-04-21 07:48:02 UTC (rev 25955)
+++ trunk/refman-5.1/mysql-cluster-configuration-core.xml	2011-04-21 10:04:36 UTC (rev 25956)
Changed blocks: 2, Lines Added: 45, Lines Deleted: 1; 2901 bytes

@@ -2304,7 +2304,7 @@
             parameter is chiefly intended for use in adding a new node
             group to a running MySQL Cluster without having to perform a
             rolling restart. For this purpose, you should set it to
-            65535 (the maximum value). You are not required to set a
+            65536 (the maximum value). You are not required to set a
             <literal role="ndbparam:ndbd">NodeGroup</literal> value for
             all cluster data nodes, only for those nodes which are to be
             started and added to the cluster as a new node group at a

@@ -4545,6 +4545,50 @@
         </listitem>
 
         <listitem>
+          <para id="ndbparam-ndbd-startnonodegrouptimeout">
+            <indexterm>
+              <primary>StartNoNodeGroupTimeout</primary>
+            </indexterm>
+
+            <literal role="ndbparam:ndbd">StartNoNodeGroupTimeout</literal>
+          </para>
+
+          <para condition="dynamic:optvar:item" role="5.1:ndb-config-params:startnonodegrouptimeout-ndbd"/>
+
+          <para>
+            When a data node is configured with
+            <literal role="ndbparam:ndbd">Nodegroup = 65536</literal>, is
+            regarded as not being assigned to any node group. When that
+            is done, the cluster waits
+            <literal>StartNoNodegroupTimeout</literal> milliseconds,
+            then treats such nodes as though they had been added to the
+            list passed to the
+            <option role="ndbd">--nowait-nodes</option> option, and
+            starts. The default value is <literal>15000</literal> (that is, the
+            management server waits 15
+            seconds). Setting this parameter equal to
+            <literal>0</literal> means that the cluster waits
+            indefinitely.
+          </para>
+
+          <para>
+            <literal>StartNoNodegroupTimeout</literal> must be the same
+            for all data nodes in the cluster; for this reason, you
+            should always set it in the <literal>[ndbd
+            default]</literal> section of the
+            <filename>config.ini</filename> file, rather than for
+            individual data nodes.
+          </para>
+
+          <para>
+            This parameter was added in MySQL Cluster NDB 7.0.24 and
+            MySQL Cluster NDB 7.1.13. See
+            <xref linkend="mysql-cluster-online-add-node"/>, for more
+            information.
+          </para>
+        </listitem>
+
+        <listitem>
           <para id="ndbparam-ndbd-heartbeatintervaldbdb">
             <indexterm>
               <primary>HeartbeatIntervalDbDb</primary>


Modified: trunk/refman-5.1/mysql-cluster-management.xml
===================================================================
--- trunk/refman-5.1/mysql-cluster-management.xml	2011-04-21 07:48:02 UTC (rev 25955)
+++ trunk/refman-5.1/mysql-cluster-management.xml	2011-04-21 10:04:36 UTC (rev 25956)
Changed blocks: 13, Lines Added: 100, Lines Deleted: 46; 10719 bytes

@@ -12505,7 +12505,7 @@
         <listitem>
           <para>
             After dropping all <literal role="se">NDBCLUSTER</literal>
-            tables using <literal>DROP TABLE</literal>.
+            tables using <literal role="stmt">DROP TABLE</literal>.
           </para>
 
           <para>

@@ -12671,20 +12671,17 @@
 
       </orderedlist>
 
-      <note>
-        <para>
-          Previously, when adding multiple new node groups to a MySQL
-          Cluster, it was necessary to add only the nodes to be assigned
-          to a given new node group, create that node group using
-          <literal>CREATE NODEGROUP</literal>, then repeat this process
-          for each new node group to be added to the cluster. Beginning
-          with MySQL Cluster NDB 7.0.16 and MySQL Cluster 7.1.5, this
-          issue is resolved; you can all the nodes desired, then issue
-          several <literal>CREATE NODEGROUP</literal> commands in
-          succession to add the new node groups to the cluster.
-          (Bug#54497)
-        </para>
-      </note>
+      <para>
+        You can add all the nodes desired, then issue several
+        <literal>CREATE NODEGROUP</literal> commands in succession to
+        add the new node groups to the cluster. Prior to MySQL Cluster
+        NDB 7.0.16 and MySQL Cluster NDB 7.1.5, when adding multiple new
+        node groups to a MySQL Cluster, it was necessary to add only the
+        nodes to be assigned to a given new node group, create that node
+        group using <literal>CREATE NODEGROUP</literal>, then repeat
+        this process for each new node group to be added to the cluster.
+        (Bug#54497)
+      </para>
 
     </section>
 

@@ -12804,11 +12801,10 @@
           In this example, we show the single-threaded
           <command>ndbd</command> being used for the data node
           processes. However&mdash;beginning with MySQL Cluster NDB
-          7.0.4 (Bug#43108)&mdash;you can also apply this example, if
-          you are using the multi-threaded <command>ndbmtd</command> by
-          substituting <command>ndbmtd</command> for
-          <command>ndbd</command> wherever it appears in the steps that
-          follow.
+          7.0.4&mdash;you can also apply this example, if you are using
+          the multi-threaded <command>ndbmtd</command> by substituting
+          <command>ndbmtd</command> for <command>ndbd</command> wherever
+          it appears in the steps that follow. (Bug#43108)
         </para>
       </note>
 

@@ -12864,7 +12860,7 @@
 [api]
 Id=21
 HostName = 192.168.0.21
-      </programlisting>
+</programlisting>
 
       <para>
         Once you have made the necessary changes, save the file.

@@ -12971,17 +12967,17 @@
 Node 1: Node shutdown completed, restarting, no start.
 Node 1 is being restarted
 
-ndb_mgm&gt; Node 1: Start initiated (version &ndb-engine-current-7.0;)
-Node 1: Started (version &ndb-engine-current-7.0;)
+ndb_mgm&gt; Node 1: Start initiated (version &ndb-engine-current-7.1;)
+Node 1: Started (version &ndb-engine-current-7.1;)
 
 ndb_mgm&gt; <userinput>2 RESTART</userinput>
 Node 2: Node shutdown initiated
 Node 2: Node shutdown completed, restarting, no start.
 Node 2 is being restarted
 
-ndb_mgm&gt; Node 2: Start initiated (version &ndb-engine-current-7.0;)
+ndb_mgm&gt; Node 2: Start initiated (version &ndb-engine-current-7.1;)
 
-ndb_mgm&gt; Node 2: Started (version &ndb-engine-current-7.0;)
+ndb_mgm&gt; Node 2: Started (version &ndb-engine-current-7.1;)
 </programlisting>
 
       <important>

@@ -12994,6 +12990,15 @@
         </para>
       </important>
 
+      <para>
+        Beginning with MySQL Cluster NDB 7.0.24 and MySQL Cluster NDB
+        7.1.13, you can verify that all existing data nodes were
+        restarted using the updated configuration by checking the
+        <literal>ndbinfo.nodes</literal> table in the
+        <command>mysql</command> client. (See
+        <xref linkend="mysql-cluster-ndbinfo-nodes"/>.)
+      </para>
+
       <formalpara>
 
         <title>Step 4: Perform a rolling restart of all cluster API nodes</title>

@@ -13198,8 +13203,9 @@
       <para>
         You can cause the data to be redistributed among all of the data
         nodes by performing, for each
-        <literal role="se">NDBCLUSTER</literal> table, an <literal>ALTER
-        ONLINE TABLE ... REORGANIZE PARTITION</literal> statement in the
+        <literal role="se">NDBCLUSTER</literal> table, an
+        <literal role="stmt" condition="alter-table">ALTER ONLINE TABLE
+        ... REORGANIZE PARTITION</literal> statement in the
         <command>mysql</command> client. After issuing the statement
         <literal>ALTER ONLINE TABLE ips REORGANIZE PARTITION</literal>,
         you can see using <command>ndb_desc</command> that the data for

@@ -13279,12 +13285,14 @@
       </note>
 
       <para>
-        In addition, for each table, the <literal>ALTER ONLINE
+        In addition, for each table, the
+        <literal role="stmt" condition="alter-table">ALTER ONLINE
         TABLE</literal> statement should be followed by an
-        <literal>OPTIMIZE TABLE</literal> to reclaim wasted space. You
-        can obtain a list of all <literal role="se">NDBCLUSTER</literal>
-        tables using the following query against the
-        <literal>INFORMATION_SCHEMA.TABLES</literal> table:
+        <literal role="stmt">OPTIMIZE TABLE</literal> to reclaim wasted
+        space. You can obtain a list of all
+        <literal role="se">NDBCLUSTER</literal> tables using the
+        following query against the
+        <literal role="is">INFORMATION_SCHEMA.TABLES</literal> table:
       </para>
 
 <programlisting>

@@ -13299,9 +13307,9 @@
           for a MySQL Cluster table is always
           <literal role="se">NDBCLUSTER</literal>, regardless of whether
           the <literal>CREATE TABLE</literal> statement used to create
-          the table (or <literal>ALTER TABLE</literal> statement used to
-          convert an existing table from a different storage engine)
-          used <literal role="se">NDB</literal> or
+          the table (or <literal role="stmt">ALTER TABLE</literal>
+          statement used to convert an existing table from a different
+          storage engine) used <literal role="se">NDB</literal> or
           <literal role="se">NDBCLUSTER</literal> in its
           <literal>ENGINE</literal> option.
         </para>

@@ -13385,12 +13393,17 @@
 Id = 2
 HostName = 192.168.0.2
 
+[ndbd]
 Id = 3
 HostName = 192.168.0.3
+Nodegroup = 65536   # MySQL Cluster NDB 7.0.24 and later; 
+                    # MySQL Cluster NDB 7.1.13 and later
 
 [ndbd]
 Id = 4
 HostName = 192.168.0.4
+Nodegroup = 65536   # MySQL Cluster NDB 7.0.24 and later; 
+                    # MySQL Cluster NDB 7.1.13 and later
 
 [mgm]
 HostName = 192.168.0.10

@@ -13406,12 +13419,13 @@
 </programlisting>
 
       <para>
-        In this case, you must perform the initial start of the cluster
-        using the <option role="ndbd">--nowait-nodes</option> option
-        with <command>ndbd</command> (or <command>ndbmtd</command> in
-        MySQL Cluster NDB 7.0.4 and later) for each of the data nodes
-        that you wish to have online immediately, so that the cluster
-        does not wait for the remaining nodes to start:
+        Prior to MySQL Cluster NDB 7.0.24 and MySQL Cluster NDB 7.1.13,
+        you must perform the initial start of the cluster using the
+        <option role="ndbd">--nowait-nodes</option> option with
+        <command>ndbd</command> (or <command>ndbmtd</command> in MySQL
+        Cluster NDB 7.0.4 and later) for each of the data nodes that you
+        wish to have online immediately, so that the cluster does not
+        wait for the remaining nodes to start:
       </para>
 
 <programlisting>

@@ -13419,6 +13433,45 @@
 </programlisting>
 
       <para>
+        Beginning with MySQL Cluster NDB 7.0.24 and MySQL Cluster NDB
+        7.1.13, the data nodes to be brought online at a later time
+        (nodes 3 and 4) can be configured with
+        <literal role="ndbparam:ndbd">NodeGroup = 65536</literal>, in
+        which case it is not necessary to start the nodes to be started
+        immediately (nodes 1 and 2) with the
+        <option role="ndbd">--nowait-nodes</option> option, so nodes 1
+        and 2 can each be started as shown here:
+      </para>
+
+<programlisting>
+shell&gt; <userinput>ndbd -c 192.168.0.10 --initial</userinput>
+</programlisting>
+
+      <para>
+        The data nodes configured with
+        <literal role="ndbparam:ndbd">NodeGroup = 65536</literal> are
+        treated by the management server as though you had started nodes
+        1 and 2 using <option role="ndbd">--nowait-nodes=3,4</option>
+        after waiting for a period of time determined by the setting for
+        the
+        <literal role="ndbparam:ndbd">StartNoNodeGroupTimeout</literal>
+        data node configuration parameter (also introduced in MySQL
+        Cluster NDB 7.0.24 and MySQL Cluster NDB 7.1.13). By default,
+        this is 15 seconds (15000 milliseconds).
+      </para>
+
+      <note>
+        <para>
+          <literal role="ndbparam:ndbd">StartNoNodegroupTimeout</literal>
+          must be the same for all data nodes in the cluster; for this
+          reason, you should always set it in the <literal>[ndbd
+          default]</literal> section of the
+          <filename>config.ini</filename> file, rather than for
+          individual data nodes.
+        </para>
+      </note>
+
+      <para>
         When you are ready to add the second node group, you need only
         perform the following additional steps:
       </para>

@@ -13449,11 +13502,12 @@
 
         <listitem>
           <para>
-            In the <command>mysql</command> client, issue <literal>ALTER
-            ONLINE TABLE ... REORGANIZE PARTITION</literal> and
-            <literal>OPTIMIZE TABLE</literal> statements for each
-            existing <literal role="se">NDBCLUSTER</literal> table. (As
-            noted elsewhere in this section, existing MySQL Cluster
+            In the <command>mysql</command> client, issue
+            <literal role="stmt" condition="alter-table">ALTER ONLINE
+            TABLE ... REORGANIZE PARTITION</literal> and
+            <literal role="stmt">OPTIMIZE TABLE</literal> statements for
+            each existing <literal role="se">NDBCLUSTER</literal> table.
+            (As noted elsewhere in this section, existing MySQL Cluster
             tables cannot use the new nodes for data distribution until
             this has been done.)
           </para>


Modified: trunk/refman-5.1/mysql-cluster-overview.xml
===================================================================
--- trunk/refman-5.1/mysql-cluster-overview.xml	2011-04-21 07:48:02 UTC (rev 25955)
+++ trunk/refman-5.1/mysql-cluster-overview.xml	2011-04-21 10:04:36 UTC (rev 25956)
Changed blocks: 2, Lines Added: 65, Lines Deleted: 11; 3969 bytes

@@ -2289,20 +2289,50 @@
           </formalpara>
         </listitem>
 
+        <listitem>
+          <formalpara>
+
+            <title>Configuration version information in <literal>ndbinfo.nodes</literal></title>
+
+            <para>
+              You can see which version or versions of the MySQL Cluster
+              configuration file are in effect on the data nodes by
+              checking the <literal>config_generation</literal> column
+              which is added to the <literal>ndbinfo.nodes</literal>
+              table in MySQL Cluster NDB 7.1.13. For more information,
+              see <xref linkend="mysql-cluster-ndbinfo-nodes"/>.
+            </para>
+
+          </formalpara>
+        </listitem>
+
+        <listitem>
+          <formalpara>
+
+            <title>Improvements in adding data nodes online</title>
+
+            <para>
+              Begining with MySQL Cluster NDB 7.0.24, it is possible to
+              add data nodes online to a running MySQL Cluster without
+              performing a rolling restart of the cluster or starting
+              data node processes with the
+              <option role="ndbd">--nowait-nodes</option> option. This
+              can be done by setting
+              <literal role="ndbparam:ndbd">Nodegroup = 65536</literal>
+              in the <filename>config.ini</filename> file for any data
+              nodes that should be started at a later time, when first
+              starting the cluster. The amount of time the cluster waits
+              before doing this can be controlled using the
+              <literal role="ndbparam:ndbd">StartNoNodeGroupTimeout</literal>
+              data node configuration parameter.
+            </para>
+
+          </formalpara>
+        </listitem>
+
       </itemizedlist>
 
       <para>
-        A <literal>config_generation</literal> column has been added to
-        the <literal>ndbinfo.nodes</literal> table. By checking this
-        column, it is now possible to determine which version or
-        versions of the MySQL Cluster configuration file are in effect
-        on the data nodes. This information can be especially useful
-        when performing a rolling restart of the cluster in order to
-        update its configuration. For more information, see
-        <xref linkend="mysql-cluster-ndbinfo-nodes"/>.
-      </para>
-
-      <para>
         MySQL Cluster NDB 7.1 (actually, MySQL Cluster NDB 6.3 and
         later) is also supported by &mcm;, which provides an advanced
         command-line interface that can simplify many complex MySQL

@@ -3336,6 +3366,30 @@
           </formalpara>
         </listitem>
 
+        <listitem>
+          <formalpara>
+
+            <title>Improvements in adding data nodes online</title>
+
+            <para>
+              Begining with MySQL Cluster NDB 7.0.24, it is possible to
+              add data nodes online to a running MySQL Cluster without
+              performing a rolling restart of the cluster or starting
+              data node processes with the
+              <option role="ndbd">--nowait-nodes</option> option. This
+              can be done by setting
+              <literal role="ndbparam:ndbd">Nodegroup = 65536</literal>
+              in the <filename>config.ini</filename> file for any data
+              nodes that should be started at a later time, when first
+              starting the cluster. The amount of time the cluster waits
+              before doing this can be controlled using the
+              <literal role="ndbparam:ndbd">StartNoNodeGroupTimeout</literal>
+              data node configuration parameter.
+            </para>
+
+          </formalpara>
+        </listitem>
+
       </itemizedlist>
 
       <para>


Thread
svn commit - mysqldoc@oter02: r25956 - in trunk: dynamic-docs/changelog dynamic-docs/command-optvars refman-5.1jon.stephens21 Apr