This section provides general information about the behavior of and current limitations in adding NDB Cluster nodes online.
Redistribution of Data.
The ability to add new nodes online includes a means to
reorganize NDBCLUSTER
table data
and indexes so that they are distributed across all data
nodes, including the new ones, by means of the
ALTER
TABLE ... REORGANIZE PARTITION
statement. Table
reorganization of both in-memory and Disk Data tables is
supported. This redistribution does not currently include
unique indexes (only ordered indexes are redistributed).
The redistribution for NDBCLUSTER
tables already existing before the new data nodes were added is
not automatic, but can be accomplished using simple SQL
statements in mysql or another MySQL client
application. However, all data and indexes added to tables
created after a new node group has been added are distributed
automatically among all cluster data nodes, including those
added as part of the new node group.
Partial starts. It is possible to add a new node group without all of the new data nodes being started. It is also possible to add a new node group to a degraded cluster—that is, a cluster that is only partially started, or where one or more data nodes are not running. In the latter case, the cluster must have enough nodes running to be viable before the new node group can be added.
Effects on ongoing operations.
Normal DML operations using NDB Cluster data are not prevented
by the creation or addition of a new node group, or by table
reorganization. However, it is not possible to perform DDL
concurrently with table reorganization—that is, no other
DDL statements can be issued while an
ALTER TABLE ...
REORGANIZE PARTITION
statement is executing. In
addition, during the execution of ALTER TABLE ...
REORGANIZE PARTITION
(or the execution of any other
DDL statement), it is not possible to restart cluster data
nodes.
Failure handling. Failures of data nodes during node group creation and table reorganization are handled as shown in the following table:
Table 25.38 Data node failure handling during node group creation and table reorganization
Failure during | Failure in “Old” data node | Failure in “New” data node | System Failure |
---|---|---|---|
Node group creation |
|
|
|
Table reorganization |
|
|
|
Dropping node groups.
The ndb_mgm client supports a
DROP NODEGROUP
command,
but it is possible to drop a node group only when no data
nodes in the node group contain any data. Since there is
currently no way to “empty” a specific data node
or node group, this command works only the following two
cases:
After issuing
CREATE NODEGROUP
in the ndb_mgm client, but before issuing anyALTER TABLE ... REORGANIZE PARTITION
statements in the mysql client.After dropping all
NDBCLUSTER
tables usingDROP TABLE
.TRUNCATE TABLE
does not work for this purpose because the data nodes continue to store the table definitions.