Tuesday, May 22, 2012

MySQL Cluster 7.2 achieves 4.3BN reads per minute

Previously we announced that MySQL Cluster 7.2.5 achieved 1.05BN reads per minute on an 8-node configuration using Intel Xeon X5670 CPUs. We got the chance to try out MySQL Cluster 7.2 now also on a bigger cluster using the new Intel Xeon generation, Intel Xeon E5-2670. Using these machines we achieved a new record of 4.3BN reads per minute (72M reads per second) with 30 data nodes.

Running benchmarks is always interesting since one never really knows where the bottleneck appears. In this benchmark the actual bottleneck was that the benchmark programs didn't have the ability to drive through more transactions per second. So we have good expectations we can improve those numbers even further in coming MySQL Cluster releases.

These numbers really attest that the new MySQL Cluster 7.2 generation is a real powerhouse when it comes to performance.

10 comments:

  1. How much of that performance increase is due to increasing from 8 nodes to 30 nodes, and how much is due to using a better CPU?

    I wondered if you could get linear scalability going from 8 nodes to 30 nodes using the same CPU.

    ReplyDelete
  2. The performance increase due to increased data nodes is more or less linear as mentioned in the blog on 1BN updates per minute.

    In this particular benchmark however the limitation wasn't due to data nodes, it was due to the limit of 255 API nodes. Each API node could drive about 300k TPS.

    The performance increase due to better CPU is around 55% as mentioned in another blog.

    ReplyDelete
  3. Anonymous12:17 PM

    Dear Mikael,

    The read the white paper on new benchmak. I got confused about few points like data node means a single cpu or a box with 2 cpu. So 30 nodes means 15 cpus or 30cpus?
    Test was done using single table or mutiple?
    And what is the size of the table or number of rows.
    We are considering mysql cluster for some work and these information can be of great importance.

    Regards,
    SYED

    ReplyDelete
  4. Test was done with multiple tables. The table size is around 100 bytes per row and the number of rows is usually a number of hundred of millions or more. The actual number of tables and number of rows depends on the benchmark parameters.

    ReplyDelete
  5. Anonymous7:01 PM

    Can one use "native" infiniband (not TCP over infiniband) with MySQL Cluster and in that case what drivers etc is needed and where can one read about how to configure NDB for this? I only see SCI mentioned as alternative to TCP...

    ReplyDelete
  6. It's not possible to use "native" Infiniband, only an old version of "native" SCI. But obviously one can write a similar transporter for "native" Infiniband, it's open source :)

    Our experience is that SDP is almost as fast as native Infiniband, so we haven't spent much time and resources on this problem.

    ReplyDelete
  7. Anonymous7:36 AM

    Dear Mikael,

    Could you please let us know about linux 6.1 used for this benchmark reflects to Oracle linux 6.1 or RHEL 6.1, since in the whitepaper just mentioned linux 6.1!

    Regards,
    SYED

    ReplyDelete
  8. Linux 6.1 refers to Oracle Linux 6.1

    ReplyDelete
  9. Anonymous7:27 AM

    Dear Mikael,

    Thanks for the information.

    Do you expect any difference in perfromance of MySQL Cluster if RHEL 6.1 is used instead of Oracle Linux 6.1 from benchmark point of view.

    Regards,
    SYED

    ReplyDelete
  10. Dan Khasis4:54 AM

    Hi Mikael,

    Can you post the config.ini file for the cluster that supported this many reads per minute?

    Also, is there a way to get in touch with you by e-mail directly?

    Thanks

    Dan

    ReplyDelete