Monday, September 22, 2008

Sun CMT and Cluster

After joining SUN I have seen and heard more and more people/customers that are wanting or planning to deploy MySQL Cluster on SUN's CMT technology.

For a bit more information on CMT, please read what Allan Packer, SUN, has written more on CMT hardware on his blog.

Looking at MySQL Cluster, and in particular the data nodes, they like:
  1. Fast CPUs (two cores per data node), 2+GHz CPU.
  2. RAM, as fast as possible.
  3. Fast disks (SSD would be great fun to try in combo with Cluster). Fast disks are important especially for write-heavy applications.
CMT does not offer 1). CMT technology is currently quite slow (slightly above the 1GHz line). So running data nodes on CMT is not a good idea, which is also indicated by customer benchmarks. But what the data nodes are good at is handling a great deal of load in parallel.

How to generate a lot of parallel load? Well, use Sun CMT in the application layer (mysqld + app/web servers).

This is also inline with the trends in the industry where you don't perform heavy operations on the precious CPUs used by the storage layer, but rather do computation etc at the application layer. An excellent fit for SUN CMT, which has ample of threads to throw at a problem! Also, SUNs Java technology is optimized for CMT making it an extremely good idea to use Glassfish as the app server in this scenario.

Now, bear in mind that all nodes making up a MySQL Cluster (6.2 and 6.3) requires the same endianess, so you can't combine CMT with AMD/Intel architecture at the storage level yet (this got to get fixed).

This means I would use two of these for the data nodes and the final architecture would look as follows which would be nearly indestructible (with redundant BIGIP Load balancers, switches, data nodes etc).


Roland Bouman said...

Hi Johan! Nice post.

What is "BIGIP / F5LB" ?

Matthew Montgomery said...


Those are F5 networks BIG-IP load balancers

Cisco's Content Services Switches (CSS) would work just as well.

hingo said...

Trying desperately to get new friends inside Sun heh? :-)

Johan, I think you overlook an important point. If you absolutely want to use those Mx000 servers, then you have the capacity not only to run the ndbds on those, but could also run the mysqlds on those. And since you could run mysqld on them, you also *should* run mysqld on them, since it will decrease latency between mysqld and ndbd.

And this argumentation pretty much brings us back to square one, yes you could run your application stack on the CMT servers, but not MySQL [Cluster]

Johan Andersson said...

Yes that is perfectly possible.