The following improvements to MySQL Cluster have been made in MySQL Cluster NDB 7.1.
These features are in early development phase. Timing, availability, and implementation details are not guaranteed, and are subject to change at any time without notice.
Java connectors for MySQL Cluster.
The MySQL Cluster distribution now includes 2 new Java
user APIs, ClusterJ and ClusterJPA. ClusterJ is an
object-relational interface in a manner similar to that of
Java persistence frameworks such as Hibernate. Cluster JPA
is a reimplementation of OpenJPA. ClusterJ uses a backend
library (NdbJTie) that provides access to the
NDB storage engine without
using a MySQL Server connection or JDBC. ClusterJPA also
uses NdbJTie when it improves performance, but can also
process complex queries using JDBC and a MySQL Server
connection, where it can take advantage of the MySQL query
ClusterJ and Cluster JPA can also be made to work with recent MySQL Cluster NDB 7.0 releases although the necessary library and JAR files are included only in MySQL Cluster NDB 7.1.1 and later.
MySQL Cluster information database (
ndbinfo information database makes
it possible to obtain real-time characteristics of a MySQL
Cluster by issuing queries from the
mysql client or other MySQL client
ndbinfo provides metadata
specific to MySQL Cluster similarly to how the
INFORMATION_SCHEMA database provides
metadata for the standard MySQL Server. This eliminates
much of the need to read log files, issue
commands in the ndb_mgm client, or
parse the output of ndb_config in order
to get configuration and status information from a running
For more information, see
Section 5.8, “The
ndbinfo MySQL Cluster Information Database”.
Native support for default column values.
Starting with MySQL Cluster NDB 7.1.0, default values for
table columns are stored in the NDB kernel rather than by
the MySQL server as was done previously. This means that
inserts on tables having column value defaults can be
smaller and faster than before, because less data must be
sent from SQL nodes to
Tables created using previous MySQL Cluster releases can
still be used in MySQL Cluster 7.1.0 and later; however,
they do not support native default values until they are
upgraded. You can upgrade a table with non-native default
values to support native default values using an offline
ALTER TABLE statement.
Further enhancements based on this work that we hope to implement in future MySQL Cluster releases include the following:
requirements, since there is no longer any need to
store the default value for every row
efficiently, because there is no need any longer to
read the current row before replacing it
Provide idempotency in replication for tables having non-nullable columns
--nowait-nodes option for management
It is now possible to configure a cluster with two
management servers, but to start the cluster using only
one of them by starting the management node daemon with
option. The other management server can then be started at
a later time to join the running MySQL Cluster.
Improved lock handling for primary key lookups on
A MySQL Cluster table stores all but the first 256 bytes
TEXT column values in a
BLOB table; when
executing queries against such tables, a shared lock is
obtained. Prior to MySQL Cluster NDB 7.1.1, when the query
used a primary key lookup and took place within a
transaction, the lock was held for the duration of the
transaction, even after no more data was being read from
NDB table. Now in such
cases, the lock is released when all
BLOB data associated with
the table has been read. (Bug#49190)
A shared lock is also taken for unique key lookups; it is still the case that this lock is held for the duration of the transaction.
Heartbeat thread policy and priority.
Beginning with MySQL Cluster NDB 7.1.2, a new
HeartbeatThreadPriority makes it
possible to set the policy and the priority for the
heartbeat thread on management and API nodes.
Improved access to partitioning information.
The ndb_desc utility now provides
additional information about the partitioning of data
stored in MySQL Cluster. Beginning with MySQL Cluster NDB
option causes this program to include partition
in its output. Also beginning with MySQL Cluster NDB
causes ndb_desc to include information
about data distribution (that is, which table fragments
are stored on which data nodes). Each of these options
also requires the use of the
Information about partition-to-node mappings can also be
obtained using the
Table::getFragmentNodes() method, also
added in MySQL Cluster NDB 7.1.2.
Replication attribute promotion and demotion.
Beginning with MySQL Cluster NDB 7.1.3, MySQL Cluster
Replication supports attribute promotion and demotion when
replicating between columns of different but similar types
on the master and the slave. For example, it is possible
to promote an
INT column on
the master to a
column on the slave, and to demote a
TEXT column to a
The implementation of type demotion distinguishes between
lossy and non-lossy type conversions, and their use on the
slave can be controlled by setting the
global server system variable.
For more information, see Attribute promotion and demotion (MySQL Cluster).
was removed from
ndbinfo in MySQL
Cluster NDB 7.1.3. Applications which used this table can
and should be rewritten to use other
ndbinfo tables. For more information,
see Section 5.8.8, “The
ndbinfo pools Table”.