I saw this interesting article : http://mikaelronstrom.blogspot.com/2012/02/105bn-qpm-using-mysql-cluster-72.html and it made me get interested in MySQL Cluster.

After little chat with hosting provider and i was told i may not be able to achieve to such performance on the Cloud Architecture which brings me to my question :

MySQL Cluster On Cloud vs MySQL Cluster On Dedicated Cluster

  1. Are there really any performance difference
  2. Which is better and why ( using different factors eg. Scalability , Cost Implication etc)



The biggest difference will come from networking - Mikael's tests were run over Infiniband whereas most hosting or cloud providers will not give you that type of dedicated bandwidth. As a distributed database, MySQL Cluster needs high network bandwidth to support message passing between the nodes, so the higher the network latency, the lower the read or write performance, though this can be offset by increasing concurrent load to the database

If you want to know more about the benchmark itself and how to run it on your own cloud vendors environment, check out this blog: https://blogs.oracle.com/MySQL/entry/performance_testing_of_mysql_cluster

| improve this answer | |

Actually there is an option to get high performance networking between cluster instances on the cloud. Some providers let you order special "cluster instances" which are connected using fast network technology (Infiniband or something similar). This makes the cloud option equivalent in terms of performance to a cluster in your data center - of course you will need to consider the costs, because the cluster instances are much more expensive than regular instances.

Here is a link to documentation of the cluster instance option on Amazon EC2. They describe it as follows:

Amazon EC2 offers two cluster instance types: cluster compute instances and cluster graphics processing unit (GPU) instances. These instance types provide a very large amount of computational power coupled with increased network performance. They are well suited for High Performance Compute (HPC) applications and other demanding network-bound applications, such as many science and engineering applications, financial modeling applications, and business analytics applications. You can logically group cluster instances into clusters (known as cluster placement groups). This allows applications to get the full-bisection bandwidth and low-latency network performance required for tightly coupled, node-to-node communication typical of many HPC applications.

Yet another option for DB clustering on the cloud is services like Xeround's cloud database, RackSpace MySQL, etc. However I'm not sure how the performance of these services measure up to an infiniband cluster.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.