Bug #44301 Got error 741 'Unsupported alter table' from NDB

Submitted: 15 Apr 2009 17:14 Modified: 10 Aug 2009 12:35
Reporter: Matthew Bilek Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S2 (Serious)
Version:mysql-5.1-telco-7.0 OS:Linux
Assigned to: Jonas Oreland CPU Architecture:Any
Tags: mysql-5.1-telco-7.0.4

[15 Apr 2009 17:14] Matthew Bilek
Description:
After adding a third node to a MySQL Cluster 7.0.4 with NoOfReplicas=1, I get an error message of "Got error 741 'Unsupported alter table' from NDB" when submitting the SQL command "ALTER ONLINE TABLE <table name> REORGANIZE PARTITION;".

This is per the instructions in the MySQL documentation "17.7.8.3. Adding MySQL Cluster Data Nodes Online: Detailed Example".

Inserting rows will only be added to the previous existing data nodes, but node the newly added data node.

Also, the ndb_desc command indicated that all columns in the table are memory based and that only two (2) partitions are available, one for each pre-existing data node.  No partition for the new data node added since the ALTER SQL statement failed.

How to repeat:
OS: CentOS 5.3
DB: MySQL Cluster 7.0.4

1 - Management Node
1 - API Node
2 - Existing Data Nodes

NoOfReplicas=1

Standard procedure of adding extra data node is followed.
[16 Apr 2009 9:38] Jonas Oreland
a question:
do you either:
- add one datanode, create node group; alter table reorganize;
- add another datanode; create node group; alter table reorganize;

or
- add one datanode; create node group
  add another datanode; create node group
  alter table reorganize

/Jonas
[16 Apr 2009 13:53] Matthew Bilek
I performed the first one listed:
- add one datanode, create node group; alter table reorganize;

Example:

Update configuration file:
/var/lib/mysql-cluster/config.ini

Shutdown:
ndb_mgm>shutdown

Start:
shell>/usr/local/mysql/libexec/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --reload
shell>/usr/local/mysql/bin/ndb_mgm

Start of the existing data nodes:
shell>/usr/local/mysql/libexec/ndbd
Waited until the management client reports Node X: Started for all existing data nodes.

Perform a rolling restart of cluster API node:
shell>/usr/local/mysql/bin/mysqladmin -u root -p shutdown
shell>/usr/local/mysql/bin/mysqld_safe --user=mysql --ndbcluster &

Perform an initial start of the new data node:
shell>/usr/local/mysql/libexec/ndbd --initial
Waited until the management client reports Node X: Started for all new data nodes.

Create a new node groups:
ndb_mgm>create nodegroup 4
Nodegroup 2 created

Redistribute cluster data:
ndb_mgm>ALL REPORT MEMORY
shell>/usr/local/mysql/bin/ndb_desc -c <hostname|IP> -d <schema> <table name> -p
mysql>ALTER ONLINE TABLE <table name> REORGANIZE PARTITION;
mysql>SHOW WARNINGS;
+-------+------+--------------------------------------------------+
| Level | Code | Message                                          |
+-------+------+--------------------------------------------------+
| Error | 1296 | Got error 741 'Unsupported alter table' from NDB |
+-------+------+--------------------------------------------------+
[23 Apr 2009 13:07] Jonathan Miller
Workarounds is either 2 replicas with adding 2 DN at a time, or doing off-line add node.
[6 Aug 2009 13:53] 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/80282

2963 Jonas Oreland	2009-08-06
      ndb - bug#44301
        ALTER TABLE REORGANIZE PARTITION - could fail if with 741 unsupported
        alter table if appropriate hash-map was not present
      
        This could be due to e.g adding going from 4 to 6 nodes (2 replica)
        or from 2 to 3 nodes (1-replica) or lots of other cases...
      
        Solution is to call prepareHashMap also in reorg-case
          and add support for reorg-case inside prepareHashMap by
          reusing Create default hashmap if not exist which
          will findout how many fragments currently is default
     @ storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp
        Add extra check for hashmap vs fragmentCount
[10 Aug 2009 11:58] Jonas Oreland
pushed to 7.0.7
[10 Aug 2009 12:35] Jon Stephens
Documented bugfix in the NDB-7.0.7 changelog as follows:

        ALTER TABLE REORGANIZE PARTITION could fail with Error 741
        (Unsupported alter table) if the appropriate hash-map was not
        present. This could occur when adding nodes online; for example,
        when going from 2 data nodes to 3 data nodes with
        NoOfreplicas=1, or from 4 data nodes to 6 data nodes with
        NoOfreplicas=2.

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.044 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.