Documentation Home
MySQL 5.7 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 35.1Mb
PDF (A4) - 35.2Mb
Man Pages (TGZ) - 256.4Kb
Man Pages (Zip) - 361.2Kb
Info (Gzip) - 3.4Mb
Info (Zip) - 3.4Mb
Excerpts from this Manual

21.2.4.1 What is New in NDB Cluster 7.5

Major changes and new features in NDB Cluster 7.5 which are likely to be of interest are shown in the following list:

  • ndbinfo Enhancements.  A number of changes are made in thendbinfo database, chief of which is that it now provides detailed information about NDB Cluster node configuration parameters.

    Theconfig_params table has been made read-only, and has been enhanced with additional columns providing information about each configuration parameter, including the parameter's type, default value, maximum and minimum values (where applicable), a brief description of the parameter, and whether the parameter is required. This table also provides each parameter with a uniqueparam_number.

    A row in theconfig_values table shows the current value of a given parameter on the node having a specified ID. The parameter is identified by the value of theconfig_param column, which maps to theconfig_params table'sparam_number.

    Using this relationship you can write a join on these two tables to obtain the default, maximum, minimum, and current values for one or more NDB Cluster configuration parameters by name. An example SQL statement using such a join is shown here:

    SELECT  p.param_name AS Name,        v.node_id AS Node,        p.param_type AS Type,        p.param_default AS 'Default',        p.param_min AS Minimum,        p.param_max AS Maximum,        CASE p.param_mandatory WHEN 1 THEN 'Y' ELSE 'N' END AS 'Required',        v.config_value AS CurrentFROM    config_params pJOIN    config_values vON      p.param_number = v.config_paramWHERE   p. param_name IN ('NodeId', 'HostName','DataMemory', 'IndexMemory');

    For more information about these changes, seeSection 21.6.15.8, “The ndbinfo config_params Table”. SeeSection 21.6.15.9, “The ndbinfo config_values Table”, for further information and examples.

    In addition, thendbinfo database no longer depends on theMyISAM storage engine. Allndbinfo tables and views now useNDB (shown asNDBINFO).

    Several newndbinfo tables were introduced in NDB 7.5.4. These tables are listed here, with brief descriptions:

    • dict_obj_info provides the names and types of database objects inNDB, as well as information about parent obejcts where applicable

    • table_distribution_status providesNDB table distribution status information

    • table_fragments provides information about the distribution ofNDB table fragments

    • table_info provides information about logging, checkpointing, storage, and other options in force for eachNDB table

    • table_replicas provides information about fragment replicas

    See the descriptions of the individual tables for more information.

  • Default row and column format changes.  Starting with NDB 7.5.1, the default value for both theROW_FORMAT option and theCOLUMN_FORMAT option forCREATE TABLE can be set toDYNAMIC rather thanFIXED, using a new MySQL server variablendb_default_column_format is added as part of this change; set this toFIXED orDYNAMIC (or startmysqld with the equivalent option--ndb-default-column-format=FIXED) to force this value to be used forCOLUMN_FORMAT andROW_FORMAT. Prior to NDB 7.5.4, the default for this variable wasDYNAMIC; in this and later versions, the default isFIXED, which provides backwards compatibility with prior releases (Bug #24487363).

    The row format and column format used by existing table columns are unaffected by this change. New columns added to such tables use the new defaults for these (possibly overridden byndb_default_column_format), and existing columns are changed to use these as well, provided that theALTER TABLE statement performing this operation specifiesALGORITHM=COPY.

    Note

    A copyingALTER TABLE cannot be done implicitly ifmysqld is run with--ndb-allow-copying-alter-table=FALSE.

  • ndb_binlog_index no longer dependent on MyISAM.  As of NDB 7.5.2, thendb_binlog_index table employed in NDB Cluster Replication now uses theInnoDB storage engine instead ofMyISAM. When upgrading, you can runmysql_upgrade with--force--upgrade-system-tables to cause it to executeALTER TABLE ... ENGINE=INNODB on this table. Use ofMyISAM for this table remains supported for backward compatibility.

    A benefit of this change is that it makes it possible to depend on transactional behavior and lock-free reads for this table, which can help alleviate concurrency issues during purge operations and log rotation, and improve the availability of this table.

  • ALTER TABLE changes.  NDB Cluster formerly supported an alternative syntax for onlineALTER TABLE. This is no longer supported in NDB Cluster 7.5, which makes exclusive use ofALGORITHM = DEFAULT|COPY|INPLACE for table DDL, as in the standard MySQL Server.

    Another change affecting the use of this statement is thatALTER TABLE ... ALGORITHM=INPLACE RENAME may now contain DDL operations in addition to the renaming.

  • ExecuteOnComputer parameter deprecated.  TheExecuteOnComputer configuration parameter formanagement nodes,data nodes, andAPI nodes has been deprecated and is now subject to removal in a future release of NDB Cluster. You should use the equivalentHostName parameter for all three types of nodes.

  • records-per-key optimization.  The NDB handler now uses the records-per-key interface for index statistics implemented for the optimizer in MySQL 5.7.5. Some of the benefits from this change include those listed here:

    • The optimizer now chooses better execution plans in many cases where a less optimal join index or table join order would previously have been chosen

    • Row estimates shown byEXPLAIN are more accurate

    • Cardinality estimates shown bySHOW INDEX are improved

  • Connection pool node IDs.  NDB 7.5.0 adds themysqld--ndb-cluster-connection-pool-nodeids option, which allows a set of node IDs to be set for the connection pool. This setting overrides--ndb-nodeid, which means that it also overrides both the--ndb-connectstring option and theNDB_CONNECTSTRING environment variable.

    Note

    You can set the size for the connection pool using the--ndb-cluster-connection-pool option formysqld.

  • create_old_temporals removed.  Thecreate_old_temporals system variable was deprecated in NDB Cluster 7.4, and has now been removed.

  • ndb_mgm Client PROMPT command.  NDB Cluster 7.5 adds a new command for setting the client's command-line prompt. The following example illustrates the use of thePROMPT command:

    ndb_mgm> PROMPT mgm#1:mgm#1: SHOWCluster Configuration---------------------[ndbd(NDB)]     4 node(s)id=5    @10.100.1.1  (mysql-5.7.44-ndb-7.5.36, Nodegroup: 0, *)id=6    @10.100.1.3  (mysql-5.7.44-ndb-7.5.36, Nodegroup: 0)id=7    @10.100.1.9  (mysql-5.7.44-ndb-7.5.36, Nodegroup: 1)id=8    @10.100.1.11  (mysql-5.7.44-ndb-7.5.36, Nodegroup: 1)[ndb_mgmd(MGM)] 1 node(s)id=50   @10.100.1.8  (mysql-5.7.44-ndb-7.5.36)[mysqld(API)]   2 node(s)id=100  @10.100.1.8  (5.7.44-ndb-7.5.36)id=101  @10.100.1.10  (5.7.44-ndb-7.5.36)mgm#1: PROMPTndb_mgm> EXITjon@valhaj:/usr/local/mysql/bin>

    For additional information and examples, seeSection 21.6.1, “Commands in the NDB Cluster Management Client”.

  • Increased FIXED column storage per fragment.  NDB Cluster 7.5 and later supports a maximum of 128 TB per fragment of data inFIXED columns. In NDB Cluster 7.4 and earlier, this was 16 GB per fragment.

  • Deprecated parameters removed.  The following NDB Cluster data node configuration parameters were deprecated in previous releases of NDB Cluster, and were removed in NDB 7.5.0:

    • Id: deprecated in NDB 7.1.9; replaced byNodeId.

    • NoOfDiskPagesToDiskDuringRestartTUP,NoOfDiskPagesToDiskDuringRestartACC: both deprecated, had no effect; replaced in MySQL 5.1.6 byDiskCheckpointSpeedInRestart, which itself was later deprecated (in NDB 7.4.1) and is now also removed.

    • NoOfDiskPagesToDiskAfterRestartACC,NoOfDiskPagesToDiskAfterRestartTUP: both deprecated, and had no effect; replaced in MySQL 5.1.6 byDiskCheckpointSpeed, which itself was later deprecated (in NDB 7.4.1) and is now also removed.

    • ReservedSendBufferMemory: Deprecated; no longer had any effect.

    • MaxNoOfIndexes: archaic (pre-MySQL 4.1), had no effect; long since replaced byMaxNoOfOrderedIndexes orMaxNoOfUniqueHashIndexes.

    • Discless: archaic (pre-MySQL 4.1) synonym for and long since replaced byDiskless.

    The archaic and unused (and for this reason also previously undocumented)ByteOrder computer configuration parameter was also removed in NDB 7.5.0.

    The parameters just described are not supported in NDB 7.5. Attempting to use any of these parameters in an NDB Cluster configuration file now results in an error.

  • DBTC scan enhancements.  Scans have been improved by reducing the number of signals used for communication between theDBTC andDBDIH kernel blocks inNDB, enabling higher scalability of data nodes when used for scan operations by decreasing the use of CPU resources for scan operations, in some cases by an estimated five percent.

    Also as result of these changes response times should be greatly improved, which could help prevent issues with overload of the main threads. In addition, scans made in theBACKUP kernel block have also been improved and made more efficient than in previous releases.

  • JSON column support.  NDB 7.5.2 and later supports theJSON column type forNDB tables and the JSON functions found in the MySQL Server, subject to the limitation that anNDB table can have at most 3JSON columns.

  • Read from any fragment replica; specify number of hashmap partition fragments.  Previously, all reads were directed towards the primary fragment replica except for simple reads. (A simple read is a read that locks the row while reading it.) Beginning with NDB 7.5.2, it is possible to enable reads from any fragment replica. This is disabled by default but can be enabled for a given SQL node using thendb_read_backup system variable added in this release.

    Previously, it was possible to define tables with only one type of partition mapping, with one primary partition on each LDM in each node, but in NDB 7.5.2 it becomes possible to be more flexible about the assignment of partitions by setting a partition balance (fragment count type). Possible balance schemes are one per node, one per node group, one per LDM per node, and one per LDM per node group.

    This setting can be controlled for individual tables by means of aPARTITION_BALANCE option (renamed fromFRAGMENT_COUNT_TYPE in NDB 7.5.4) embedded inNDB_TABLE comments inCREATE TABLE orALTER TABLE statements. Settings for table-levelREAD_BACKUP are also supported using this syntax. For more information and examples, seeSection 13.1.18.9, “Setting NDB Comment Options”.

    In NDB API applications, a table's partition balance can also be get and set using methods supplied for this purpose; seeTable::getPartitionBalance(), andTable::setPartitionBalance(), as well asObject::PartitionBalance, for more information about these.

    As part of this work, NDB 7.5.2 also introduces thendb_data_node_neighbour system variable. This is intended for use, in transaction hinting, to provide anearby data node to this SQL node.

    In addition, when restoring table schemas,ndb_restore--restore-meta now uses the target cluster's default partitioning, rather than using the same number of partitions as the original cluster from which the backup was taken. SeeSection 21.5.24.2.2, “Restoring to More Nodes Than the Original”, for more information and an example.

    NDB 7.5.3 adds a further enhancement toREAD_BACKUP: In this and later versions, it is possible to setREAD_BACKUP for a given table online as part ofALTER TABLE ... ALGORITHM=INPLACE ....

  • ThreadConfig improvements.  A number of enhancements and feature additions are implemented in NDB 7.5.2 for theThreadConfig multithreaded data node (ndbmtd) configuration parameter, including support for an increased number of platforms. These changes are described in the next few paragraphs.

    Non-exclusive CPU locking is now supported on FreeBSD and Windows, usingcpubind andcpuset. Exclusive CPU locking is now supported on Solaris (only) using thecpubind_exclusive andcpuset_exclusive parameters which are introduced in this release.

    Thread prioritzation is now available, controlled by the newthread_prio parameter.thread_prio is supported on Linux, FreeBSD, Windows, and Solaris, and varies somewhat by platform. For more information, see the description ofThreadConfig.

    Therealtime parameter is now supported on Windows platforms.

  • Partitions larger than 16 GB.  Due to an improvement in the hash index implementation used by NDB Cluster data nodes, partitions ofNDB tables may now contain more than 16 GB of data for fixed columns, and the maximum partition size for fixed columns is now raised to 128 TB. The previous limitation was due to the fact that theDBACC block in theNDB kernel used only 32-bit references to the fixed-size part of a row in theDBTUP block, although 45-bit references to this data are used inDBTUP itself and elsewhere in the kernel outsideDBACC; all such references in to the data handled in theDBACC block now use 45 bits instead.

  • Print SQL statements from ndb_restore.  NDB 7.5.4 adds the--print-sql-log option for thendb_restore utility provided with the NDB Cluster distribution. This option enables SQL logging tostdout.Important: Every table to be restored using this option must have an explicitly defined primary key.

    SeeSection 21.5.24, “ndb_restore — Restore an NDB Cluster Backup”, for more information.

  • Organization of RPM packages.  Beginning with NDB 7.5.4, the naming and organization of RPM packages provided for NDB Cluster align more closely with those released for the MySQL server. The names of all NDB Cluster RPMs are now prefixed withmysql-cluster. Data nodes are now installed using thedata-node package; management nodes are now installed from themanagement-server package; and SQL nodes require theserver andcommon packages. MySQL andNDB client programs, including themysql client and thendb_mgm management client, are now included in theclient RPM.

    For a detailed listing of NDB Cluster RPMs and other information, seeSection 21.3.1.2, “Installing NDB Cluster from RPM”.

  • ndbinfo processes and config_nodes tables.  NDB 7.5.7 adds two tables to thendbinfo information database to provide information about cluster nodes; these tables are listed here:

    • config_nodes: This table provides the node ID, process type, and host name for each node listed in an NDB cluster's configuration file.

    • Theprocesses shows information about nodes currently connected to the cluster; this information includes the process name and system process ID; for each data node and SQL node, it also shows the process ID of the node's angel process. In addition, the table shows a service address for each connected node; this address can be set in NDB API applications using theNdb_cluster_connection::set_service_uri() method, which is also added in NDB 7.5.7.

  • System name.  The system name of an NDB cluster can be used to identify a specific cluster. Beginning with NDB 7.5.7, the MySQL Server shows this name as the value of theNdb_system_name status variable; NDB API applications can use theNdb_cluster_connection::get_system_name() method which is added in the same release.

    A system name based on the time the management server was started is generated automatically; you can override this value by adding a[system] section to the cluster's configuration file and setting theName parameter to a value of your choice in this section, prior to starting the management server.

  • ndb_restore options.  Beginning with NDB 7.5.13, the--nodeid and--backupid options are both required when invokingndb_restore.

  • ndb_blob_tool enhancements.  Beginning with NDB 7.5.18, thendb_blob_tool utility can detect missing blob parts for which inline parts exist and replace these with placeholder blob parts (consisting of space characters) of the correct length. To check whether there are missing blob parts, use the--check-missing option with this program. To replace any missing blob parts with placeholders, use the--add-missing option.

    For more information, seeSection 21.5.6, “ndb_blob_tool — Check and Repair BLOB and TEXT columns of NDB Cluster Tables”.

  • --ndb-log-fail-terminate option.  Beginning with NDB 7.5.18, you can cause the SQL node to terminate whenever it is unable to log all row events fully. This can be done by startingmysqld with the--ndb-log-fail-terminate option.

  • NDB programs—NDBT dependency removal.  The dependency of a number ofNDB utility programs on theNDBT library has been removed. This library is used internally for development, and is not required for normal use; its inclusion in these programs could lead to unwanted issues when testing.

    Affected programs are listed here, along with theNDB versions in which the dependency was removed:

    The principal effect of this change for users is that these programs no longer printNDBT_ProgramExit -status following completion of a run. Applications that depend upon such behavior should be updated to reflect the change when upgrading to the indicated versions.

  • Auto-Installer deprecation and removal.  The MySQL NDB Cluster Auto-Installer web-based installation tool (ndb_setup.py) is deprecated in NDB 7.5.20, and is removed in NDB 7.5.21 and later. It is no longer supported.

  • ndbmemcache deprecation and removal. ndbmemcache is no longer supported.ndbmemcache was deprecated in NDB 7.5.20, and removed in NDB 7.5.21.

  • Node.js support removed.  Beginning with the NDB Cluster 7.5.20 release, support for Node.js by NDB 7.5 has been removed.

    Support for Node.js by NDB Cluster is maintained in NDB 8.0 only.

  • Conversion between NULL and NOT NULL during restore operations.  Beginning with NDB 7.5.23,ndb_restore can support restoring ofNULL columns asNOT NULL and the reverse, using the options listed here:

    • To restore aNULL column asNOT NULL, use the--lossy-conversions option.

      The column originally declared asNULL must not contain anyNULL rows; if it does,ndb_restore exits with an error.

    • To restore aNOT NULL column asNULL, use the--promote-attributes option.

    For more information, see the descriptions of the indicatedndb_restore options.

  • OpenSSL 3.0 support.  Beginning with NDB 7.5.31, all MySQL server and client binaries included in theNDB distribution are compiled with support for Open SSL 3.0

ClusterJPA is no longer supported beginning with NDB 7.5.7; its source code and binary have been removed from the NDB Cluster distribution.

NDB Cluster 7.5 is also supported by MySQL Cluster Manager, which provides an advanced command-line interface that can simplify many complex NDB Cluster management tasks. SeeMySQL Cluster Manager 1.4.8 User Manual, for more information.