Bug #47366 ndb_config --xml --configinfo: show restart types
Submitted: 16 Sep 2009 11:53 Modified: 28 Dec 2009 19:48
Reporter: Sivert Sørumgård Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S3 (Non-critical)
Version:mysql-5.1-telco-7.0 OS:Any
Assigned to: Magnus Blåudd CPU Architecture:Any
Tags: 7.0.6

[16 Sep 2009 11:53] Sivert Sørumgård
Description:
ndb_config should include information about how to restart nodes for a config variable change to take effect. This could be done with one attribute "restart" with values "InitialNode", "Node", "InitialSystem" or "System". Or it could be done with two attributes: "restart" with values "node" or "system", and "initial" with values "true" or "false". 

Example: <param name="NoOfReplicas" comment="Number of copies of all data in the database (1-4)" type="unsigned" default="2" mandatory="true" min="1" max="4" restart="system" initial="true"/>

How to repeat:
Observe ndb_config --configinfo output; information about when to do restart --initial is not available.
[17 Sep 2009 5:57] Sveta Smirnova
Thank you for the reasonable feature request.
[29 Oct 2009 12:24] Magnus Blåudd
Will make it possible to flag each parameter with the below suggested flags and then add the resulting tags in the .xml file based in that.

    /*
      Flags  telling how the system must be restarted for a changed
      parameter to take effect

      Default is none of these flags set, which means node restart
      of one node at a time for the setting to take effect

      CS_RESTART_INITIAL
      Each data node need to be restarted one at a time with --initial

      CS_RESTART_SYSTEM
      The whole system need to be stopped and then started up again

      CS_RESTART_SYSTEM + CS_RESTART_INITIAL
      The whole system need to be stopped and then restarted with --initial
      thus destroying any data in the cluster
    */
    CI_RESTART_SYSTEM = 4, // System restart is necessary to apply setting
    CI_RESTART_INITIAL = 8 // Initial restart is necessary to apply setting
[3 Nov 2009 14:48] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/89148
[3 Nov 2009 15:33] Magnus Blåudd
Approved on IRC and phone
[3 Nov 2009 16:54] Magnus Blåudd
Pushed to 6.3 and 7.0.10
[4 Nov 2009 14:57] Jon Stephens
Documented bugfix in the NDB-6.3.29 and 7.0.10 changelogs as follows:

        The output from ndb_config --xml --configinfo now includes the
        restart type required for resetting each configuration
        parameter.

Closed.
[17 Dec 2009 19:37] Jon Stephens
The restart info now appears in ConfigInfo.cpp, but is not present in the output of 'ndb_config --configinfo' or 'ndb_config --configinfo --xml'. Users should not have to read source files to get this info.

Checked with 6.3.29/7.0.10/7.1.0 built yesterday.

See also BUG#49781.
[18 Dec 2009 21:15] Magnus Blåudd
The restart type is not printed if not changed from default. I.e all parameters that does not say anything about restart uses the default value, which is to restart ALL nodes in the cluster(ndb_mgmd, ndbd and api nodes).

Currently only very limited number of parameters have a value that differs from the  default. See my "grep" below:

msvensson@pilot:~/mysql/7.0/storage/ndb/tools$ ./ndb_config --configinfo --xml | grep restart
    <param name="NoOfReplicas" comment="Number of copies of all data in the database (1-4)" type="unsigned" default="2" min="1" max="4" restart="system" initial="true"/>
    <param name="StopOnError" comment="If set to N, ndbd(DB) automatically restarts/recovers in case of node failure" type="bool" default="true"/>
    <param name="Diskless" comment="Run wo/ disk" type="bool" default="false" restart="system" initial="true"/>
    <param name="LogLevelNodeRestart" comment="Node restart, node failure info printed on stdout" type="unsigned" default="0" min="0" max="15"/>
    <param name="DiskCheckpointSpeedInRestart" comment="Bytes per second allowed to be written by checkpoint during restart" type="unsigned" default="104857600" min="1048576" max="4294967039"/>
    <param name="InitialLogfileGroup" comment="Logfile group that will be created during initial start" type="string" restart="system" initial="true"/>
    <param name="InitialTablespace" comment="Tablespace that will be created during initial start" type="string" restart="system" initial="true"/>
    <param name="BuildIndexThreads" comment="No of threads to use for building ordered indexes during system/node restart" type="unsigned" default="0" min="0" max="128"/>
    <param name="NoOfReplicas" comment="Number of copies of all data in the database (1-4)" type="unsigned" default="2" min="1" max="4" restart="system" initial="true"/>
    <param name="StopOnError" comment="If set to N, ndbd(DB) automatically restarts/recovers in case of node failure" type="bool" default="true"/>
    <param name="Diskless" comment="Run wo/ disk" type="bool" default="false" restart="system" initial="true"/>
    <param name="LogLevelNodeRestart" comment="Node restart, node failure info printed on stdout" type="unsigned" default="0" min="0" max="15"/>
    <param name="DiskCheckpointSpeedInRestart" comment="Bytes per second allowed to be written by checkpoint during restart" type="unsigned" default="104857600" min="1048576" max="4294967039"/>
    <param name="InitialLogfileGroup" comment="Logfile group that will be created during initial start" type="string" restart="system" initial="true"/>
    <param name="InitialTablespace" comment="Tablespace that will be created during initial start" type="string" restart="system" initial="true"/>
    <param name="BuildIndexThreads" comment="No of threads to use for building ordered indexes during system/node restart" type="unsigned" default="0" min="0" max="128"/>
[19 Dec 2009 11:38] Jon Stephens
Understood, I'll update changelog entry/ndb_config description and my scripts that pull this info out of XML output for docs to accomodate this.

Thanks for the clarification.
[28 Dec 2009 19:17] Jon Stephens
Updated changelog entry reads,

        The output from ndb_config --configinfo --xml now indicates, 
        for each configuration parameter, whether nodes need to be
        restarted using the --initial option when resetting that 
        parameter.

Also updated ndb_config --xml option description in Manual.

Closed.
[29 Dec 2009 9:38] Jon Stephens
Recent email discussion with Magnus has to revealed to me that I've been imbibing too much or too little Yuletide glögg, and that I just wasn't 'getting it'.

I've updated the changelog entry and related info in the description of ndb_config's --xml option.

The docs commit is here: http://lists.mysql.com/commits/95775