MySQL NDB Cluster

MySQL Cluster Carrier Grade Edition

MySQL Cluster is a technology providing clustering and auto-sharding for the MySQL database management system.

MySQL Cluster is implemented through the NDB or NDBCLUSTER storage engine for MySQL. Provides:

  • Synchronous replication

  • Very good small transactions ratio

  • Very good high concurrency (many client threads)

  • Huge transaction capacity, more than 1M trx/s are not uncommon

  • Failover can be ~1s

  • No single point of failure

  • Geographical disaster recovery capacity built-in

  • Strong at async replication, applying by batches gives multithreaded apply at the data node level

  • Can scale reads and writes, the framework implements sharding by hashes

Limitations

  • Not a drop-in replacement for Innodb, you need to tune the schema and the queries

  • Only for specific types of application (not a general purpose database, reporting

  • Only the Read-commited isolation level is available

  • Hardware heavy, need 4 servers mininum for full HA

  • Indexes must be kept in memory, even with disk-based tables

  • Complex to operate, lots of parameters to adjust

  • Need a load balancer for failover

  • Very new foreign key support, field reports scarce on it