The following improvements to MySQL Cluster were made in MySQL Cluster NDB 7.2.0.
Distribution of MySQL users and privileges.
Automatic distribution of MySQL users and privileges
across all SQL nodes in a given MySQL Cluster is now
supported. To enable this support, you must first import
an SQL script
share/mysql/ndb_dist_priv.sql that is
included with the MySQL Cluster NDB 7.2 distribution. This
script creates several stored procedures which you can use
to enable privilege distribution and perform related
tasks.
When a new MySQL Server joins a MySQL Cluster where privilege distribution is in effect, it also participates in the privilege distribution automatically.
Once privilege distribution is enabled, all changes to the
grant tables made on any mysqld attached
to the cluster are immediately available on any other
attached MySQL Servers. This is true whether the changes are
made using CREATE USER,
GRANT, or any of the other
statements described elsewhere in this Manual (see
Section 13.7.1, “Account Management Statements”.) This includes
privileges relating to stored routines and views; however,
automatic distribution of the views or stored routines
themselves is not currently supported.
For more information, see Section 17.5.14, “Distributed MySQL Privileges for MySQL Cluster”.
Distributed pushed-down joins.
Many joins can now be pushed down to the NDB kernel for
processing on MySQL Cluster data nodes. Previously, a join
was handled in MySQL Cluster by means of repeated accesses
of NDB by the SQL node;
however, when pushed-down joins are enabled, a pushable
join is sent in its entirety to the data nodes, where it
can be distributed among the data nodes and executed in
parallel on multiple copies of the data, with a single,
merged result being returned to mysqld.
This can reduce greatly the number of round trips between
an SQL node and the data nodes required to handle such a
join, leading to greatly improved performance of join
processing.
It is possible to determine when joins can be pushed down to
the data nodes by examining the join with
EXPLAIN. A number of new
system status variables
(Ndb_pushed_queries_defined,
Ndb_pushed_queries_dropped,
Ndb_pushed_queries_executed,
and Ndb_pushed_reads) and
additions to the counters
table (in the ndbinfo
information database) can also be helpful in determining
when and how well joins are being pushed down.
More information and examples are available in the
description of the
ndb_join_pushdown server
system variable. See also the description of the status
variables referenced in the previous paragraph, as well as
Section 17.5.10.7, “The ndbinfo counters Table”.
Improved default values for data node configuration parameters.
In order to provide more resiliency to environmental
issues and better handling of some potential failure
scenarios, and to perform more reliably with increases in
memory and other resource requirements brought about by
recent improvements in join handling by
NDB, the default values for a
number of MySQL Cluster data node configuration parameters
have been changed. The parameters and changes are
described in the following list:
HeartbeatIntervalDbDb:
Default increased from 1500 ms to 5000 ms.
ArbitrationTimeout:
Default increased from 3000 ms to 7500 ms.
TimeBetweenEpochsTimeout:
Now effectively disabled by default (default changed
from 4000 ms to 0).
SharedGlobalMemory:
Default increased from 20 MB to 128 MB.
MaxParallelScansPerFragment:
Default increased from 32 to 256.
In addition, the value computed for
MaxNoOfLocalScans
when this parameter is not set in
config.ini has been increased by a
factor of 4.
MySQL Cluster NDB 7.2.1 and later MySQL Cluster NDB 7.2 releases are based on MySQL Server 5.5 and are not covered here. See MySQL Cluster NDB 7.2.