The Allure of MySQL Cluster
Author: Charleste King | 3 min read | December 8, 2015
MySQL Cluster is an attractive way to connect servers offering users high availability, redundancy, no downtime, and numerous other benefits.
Originally known as Network Database (NDB) before its acquisition by MySQL, MySQL Cluster was designed as a NoSQL, in-memory database primarily intended for use by telecommunications companies. As explained by Chloe Green, writing on the Information Age website:
This technology provided shared-nothing clustering and auto-sharding, delivering high availability and high throughput with low latency, while enabling near linear scalability. Thanks to these developments, MySQL became more attractive to more companies and new sectors, such as telecom and finance.
Reduced Downtime With MySQL Cluster
MySQL Cluster is designed specifically to offer 99.999 percent availability, which makes it, according to MySQL, resilient against failure. This high availability also provides users with the ability to conduct scheduled maintenance tasks without any downtime.
It is also designed to prevent outages through features such as synchronous replication and automatic failover. With synchronous replication, data within each data node is replicated to another data node. It also has a self-healing capability that enables failed nodes to automatically restart and resynchronize before rejoining the cluster.
Although conventional wisdom holds that MySQL Cluster’s redundancy would prevent data loss, the system isn’t foolproof. As much as we would all like to think instantaneous redundancy exists, sadly, there is no such thing.
MySQL Cluster Performance Benefits
There are several performance-related benefits associated with MySQL Cluster. This includes redundancy, multi-threads, ACID compliance, and more. A user can choose to write different data to different places, for example. Allied with this feature is its geographic replication feature, which allows developers to scale any of their databases across various locations. By allowing distributed clusters to connect with a remote data center, this addresses issues inherent in geographic latency.
A feature designed to help with query speed when using replication is read-write splitting. This is an architecture designed to execute read-only statements on MySQL slaves. All other queries are executed on the MySQL master.
Those organizations considering moving their operations into the cloud can still use MySQL Cluster. With more interest in taking advantage of the cloud environment, there are various options available, some of which include support for MySQL Cluster, including Microsoft Azure. (Although Amazon Web Services has its Amazon RDS for MySQL, it has two different replication features.) And Oracle OpenStack for Oracle Linux includes MySQL Cluster.
Problems with MySQL Cluster
Datavail supports both MySQL Cluster and Master/Slave for database replication. Although it seems to work well on the surface, MySQL Cluster is actually fragile. In working with our clients’ MySQL Cluster environments, we have seen some odd, idiosyncratic errors and problems. We have helped several organizations migrate to MySQL Cluster, but have also helped others migrate away from it.
Many of these caveats are discussed in our white paper The Trade-Offs Between MySQL Cluster and Master/Slave available for download.
If you are debating a change in how your organization structures its databases, consider contacting Datavail to discuss the merits of each of these options in the context of your unique operations. We can provide a custom solution designed for your enterprise.