A number of limitations and related issues existing in earlier versions of MySQL Cluster have been resolved:
Variable-length column support.
The NDBCLUSTER storage engine now
supports variable-length column types for in-memory
tables.
Previously, for example, any Cluster table having one or
more VARCHAR fields which contained only
relatively small values, much more memory and disk space
were required when using the NDBCLUSTER
storage engine than would have been the case for the same
table and data using the MyISAM engine.
In other words, in the case of a VARCHAR
column, such a column required the same amount of storage as
a CHAR column of the same size. In MySQL
5.1, this is no longer the case for in-memory tables, where
storage requirements for variable-length column types such
as VARCHAR and BINARY
are comparable to those for these column types when used in
MyISAM tables (see
Section 10.5, “Data Type Storage Requirements”).
For MySQL Cluster Disk Data tables, the fixed-width limitation continues to apply. See Section 20.12, “MySQL Cluster Disk Data Tables”.
Replication with MySQL Cluster. It is now possible to use MySQL replication with Cluster databases. For details, see Section 20.11, “MySQL Cluster Replication”.
Circular Replication. Circular replication is supported for MySQL Cluster beginning with MySQL 5.1.18. See Section 20.11.3, “Known Issues in MySQL Cluster Replication”.
auto_increment_increment and
auto_increment_offset.
The auto_increment_increment and
auto_increment_offset server system
variables are supported for Cluster replication beginning
with MySQL 5.1.20.
Database autodiscovery and online schema changes. Autodiscovery of databases is now supported for multiple MySQL servers accessing the same MySQL Cluster, provided that a given mysqld is already running and is connected to the cluster at the time that the database is created on a different mysqld.
What this means is that if a mysqld
process first connects to the cluster after a database named
db_name has been created, you
should issue a CREATE SCHEMA
statement on
the “new” MySQL server when it first accesses
that MySQL Cluster. Once this has been done, the
“new” mysqld should be able
to detect any tables in that database tables without errors.
db_name
This also means that online schema changes in
NDB tables are now possible. That is, the
result of operations such as ALTER TABLE
and CREATE INDEX performed on one SQL
node in the cluster are now visible to the cluster's other
SQL nodes without any additional action being taken.
Backup and restore between architectures. Beginning with MySQL 5.1.10, it is possible to perform a Cluster backup and restore between different architectures. Previously — for example — you could not back up a cluster running on a big-endian platform and then restore from that backup to a cluster running on a little-endian system. (Bug#19255)
Character set directory.
Beginning with MySQL 5.1.10, it is possible to install
MySQL with Cluster support to a non-default location and
change the search path for font description files using
either the --basedir or
--character-sets-dir options.
(Previously, ndbd in MySQL 5.1 searched
only the default path — typically
/usr/local/mysql/share/mysql/charsets
— for character sets.)
In MySQL 5.1, it is no longer necessary, when running multiple management servers, to restart all the cluster's data nodes to enable the management nodes to see one another.
Length of CREATE TABLE statements.
CREATE TABLE statements may be no more
than 4096 characters in length. This limitation
affects MySQL 5.1.6, 5.1.7, and 5.1.8 only.
(See Bug#17813)
IGNORE and REPLACE functionality.
In MySQL 5.1.7 and earlier, INSERT
IGNORE, UPDATE IGNORE, and
REPLACE were supported only for primary
keys, but not for unique keys. It was possible to work
around this issue by removing the constraint, then
dropping the unique index, performing any inserts, and
then adding the unique index again.
This limitation was removed for INSERT
IGNORE and REPLACE in MySQL
5.1.8. (See Bug#17431.)
AUTO_INCREMENT columns.
In MySQL 5.1.10 and earlier versions, the maximum number
of tables having AUTO_INCREMENT columns
— including those belonging to hidden primary keys
— was 2048.
This limitation was lifted in MySQL 5.1.11.
Maximum number of cluster nodes. Prior to MySQL Cluster NDB 6.1.1, the total maximum number of nodes in a MySQL Cluster was 63, including all SQL nodes (MySQL Servers), API nodes (applications accessing the cluster other than MySQL servers), data nodes, and management servers.
Starting with MySQL Cluster NDB 6.1.1, up to 255 API nodes (including MySQL servers acting as cluster SQL nodes) are supported by a single cluster. The total number of data nodes and management nodes beginning with this version is 63, of which up to 48 can be data nodes.
The limitation that a data node cannot have a node ID greater than 49 continues to apply.
Recovery of memory from deleted rows.
Beginning with MySQL Cluster NDB 6.3.7, memory can be
reclaimed from an NDB table for reuse
with any NDB table by employing
OPTIMIZE TABLE, subject to the
following limitations:
Only in-memory tables are supported; the
OPTIMIZE TABLE statement still
has no effect on MySQL Cluster Disk Data tables.
Only variable-length columns (such as those declared
as VARCHAR,
TEXT, or BLOB)
are supported.
However, you can force columns defined using
fixed-length data types (such as
CHAR) to be dynamic using the
ROW_FORMAT or
COLUMN_FORMAT option with a
CREATE TABLE or ALTER
TABLE statement.
See Section 12.1.10, “CREATE TABLE Syntax”, and
Section 12.1.4, “ALTER TABLE Syntax”, for information on
these options.
You can regulate the effects of
OPTIMIZE on performance by adjusting
the value of the global system variable
ndb_optimization_delay, which sets the
number of milliseconds to wait between batches of rows
being processed by OPTIMIZE. The
default value is 10 milliseconds. It is possible to set a
lower value (to a minimum of 0), but
not recommended. The maximum is 100000 milliseconds (that
is, 100 seconds).

User Comments
Add your own comment.