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.sqlthat 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
GRANT, or any of the other statements described elsewhere in this Manual (see 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 7.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
NDBby 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_reads) and additions to the
counterstable (in the
ndbinfoinformation 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_pushdownserver system variable. See also the description of the status variables referenced in the previous paragraph, as well as Section 7.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
MaxNoOfLocalScanswhen this parameter is not set in
config.inihas 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.