MySQL Cluster: High Availability for the Masses?!

Category: MySQL
Reviewed by: redemption   
Reviewed on: May 28 2004
» Discuss this topic (1 Posts)

Note! If anyone has access to slides that were shown during the 2004 MySQL User's Conference, please post in the forum to let us know!!!

If you're like me, you're pretty excited about the upcoming MySQL clustering technology that is slated for release later on in 2004. For most small use sites MySQL on a single server is no doubt enough, but if you're doing 200 queries a second or have gigabytes of data, you're no doubt faced with either using replication or else praying your Db holds up under pressure. MySQL Cluster is not out yet, they expect it to be in Alpha for the 4.1.2 release. Final Cluster will be a part of the 4.1 release branch since the 4.0 branch is only in maintenance mode now. So what makes MySQL Cluster COOL for high volume use?

  1. Transparency
  2. Load balancing
  3. No Single Point of Failure
  4. Hot swappable Auto Configuration Like Behaviour
  5. Crash Recovery
  6. Transactions
  7. Auto Detection of failed Nodes
  8. Multiple clusters across different geographies

Transparency & Load Balancing

Unlike regular MySQL replication, Clustering will be completely transparent to your application. You don't need another layer in your application which will load balance the requests to MySQL, the MySQL Cluster itself will self manage incoming queries and requests through its Nodes. Ideally, most applications will be able to take advantage of Clustering with little actual coding changes, which makes this a very appealing upgrade for MANY organizations.

Not only is it transparent, its intelligent. The system will balance loads, allow paralelle processing, and also supposedly support all memory databases - a feature I am keen on trying myself.

MySQL says that performance is top knotch. While redundancy and failover protection are important features to many people, performance alone is something that might convince many high volume server admins to use MySQL Cluster. According to numbers published by MySQL AB, response times are sub 5ms and a simple 2 Node cluster of single CPU servers can handle 10K replicated transactions/sec.

No Single Point of Failure

MySQL Cluster is designed with the goal of providing no single point of failure. If a controlling server goes down others can take its place. Nodes can also fail without affecting the Cluster - so long as there remains enough servers to take on the load your failover will be near unnoticeable - even mid transaction!