MySQL Blog Archive
For the latest blogs go to blogs.oracle.com/mysql
NDB Cluster 8.0 is Generally Available

MySQL’s NDB Cluster Development team proudly announces NDB Cluster 8.0 General Availability.

NDB 8.0.19 GA is a completely new generation of the world’s highest throughput transactional datastore MySQL NDB Cluster. Some of the key highlights of 8.0 are

  • NDB is now fully aligned with MySQL Server 8.0 and includes the latest server maintenance release
  • Dynamic Memory Management for transaction memory resources removes configuration complexity and allocates transaction resources automatically
  • Up to 4 replicas are fully supported now and allows cluster to maintain 1 to 4 copies of data
  • Cluster capacity has dramatically been increased by supporting more data nodes
  • Once again we raised the performance bar for cluster’s parallel and distributed SQL execution
  • We reworked our entire disk based tables system. You can now build large multi-TB systems with only two data nodes.
  • Synchronized privileges dramatically simplifies the management of user privileges across all MySQL Servers of a cluster

The above represents only some of the key enhancements. For more details please also see MySQL NDB Cluster 8.0 – What’s new?

Starting with the 8.0 version NDB is developed in, built from, and released with the MySQL 8.0 source code tree. We aim to release all 8.0 releases on the same schedule as MySQL Server and with the respective latest MySQL Server version. This project had the internal name Seagull and was one of the largest NDB projects ever, removing the longstanding nontrivial differences between the NDB Server and MySQL Server code base.

One of the challenging 8.0 features was the adoption of MySQL Server’s New Data Dictionary. NDB always enjoyed its own transactional data dictionary. NDB 8.0 has completely reworked the schema and metadata distribution and synchronization mechanisms between MySQL Servers to align its own data dictionary with MySQL Server’s.

No worries, you will still be able to upgrade from NDB 7.6 to 8.0 in an online matter. Old .FRM files will be converted on-the-fly and to the new dictionary format.

With NDB’s new Dynamic Memory Management cluster’s transaction processing memory will now be dynamically allocated from a pool. No more MaxNoOfTransactions, MaxNoOfOperations, MaxNoOf… configuration is necessary. This reduces operational complexity, increases system stability and saves memory by minimizing overallocation. For best real-time behavior a fine grained control is still possible.

With the full support for 3 and 4 replicas we also add majority to the methods of node failure handling. If half of the previously available nodes are alive NDB arbitration is still used. In the other scenarios majority will decide which nodes survive in order to avoid split brain scenarios. This improves availability for 3 and 4 replica configurations.

Improvements to our parallel and distributed SQL execution increase the execution time of several TPC-H like queries. Some queries enjoy a 60x speed-up.

Larger rows allow you to build tables with more or larger columns. Online column rename has been a feature implemented by popular demand. Up to 144 data nodes are now supported and are another cornerstone for building databases with hundreds of terabytes of data.

NDB 8.0 also introduces synchronization of user privileges. Synchronized privileges replace the old distributed privileges. Rather than storing privileges centrally in NDB they are now synchronized via NDB and stored in MySQL Server. This dramatically improves operational efficiency by simply granting the NDB_STORED_USER privilege to users which should be synchronized via NDB.

There are many more exiting changes to MySQL NDB 8.0. Download it from dev.mysql.com and try it out!