MySQL Cluster 7.2 with 20x better performance and memcached

Why do so many cell phone companies run MySQL Cluster? The faster they can look up your phone’s identification number, they faster they can start charging you! Cluster is a very interesting product and you can now evaluate the latest development version mysql-cluster-7.2-labs-memcached. Adaptive Query Localization makes complex joins run twenty times faster by having more of the hard work done by the data nodes and not the sever node. And the data nodes can do this work in parallel. I bet cell phone companies will love that.

Note: I made a mistake in the original post when I wrote twenty percent faster. That is pretty good but 7.2 is twenty TIMES faster. Sorry for the error!

Advertisements

Like this:

LikeLoading...

Related

This entry was posted on Friday, August 26th, 2011 at 10:46 am and is filed under MySQL. You can follow any responses to this entry through the RSS 2.0 feed.
You can leave a response, or trackback from your own site.

Good that you corrected 20% to 20x, for a while you had me confused there…

Working with manufacturers of telephone networking equipment was really inspiring. You actually mention both of the challenging aspects, except you didn’t realize they are actually separate things:

Looking up a phone number that is being called is one thing, but do you realize that with mobile phones what you’re really looking up is *where* the phone is. So to know that, this information is actually stored in the database. Yep, all of our phones, even when nobody is calling anybody, continuously talk to their nearest cell phone tower, and this check-in is stored in the database. It happens all the time, even when you sleep (unless you’re one of those who turn their phone off at night). Facebook thinks they have a hard time storing all of our status updates and Likes, but imagine if they also had to store just the fact that their users exist and are currently doing nothing… (Of course, Facebook is now an order of magnitude bigger than any phone network, but still.) The amount of write traffic keeping up with everyones location is just staggering. My mentor, Massimo Brignoli, said when we did our first MySQL Cluster gig together: When I started working with these customers, I just couldn’t understand how it’s possible that the phone network works at all.

Then you have the fact that telco’s want to charge you. In EU and US pretty much everyone has a phone now. We all make 2-10 phone calls a day, and SMS’s have to be counted and/or billed too. You do the math. And this is not like some Apache log file that you can lose if Haystack crashes – lose a transaction and you lose money.

But pre-paid is even tougher than post-paid. With post-paid you basically record the duration of the call and store it somewhere. Later someone sends an invoice based on this info. Pre-paid on the other hand is tough: You first have to go in and see if there’s any money on the account, withdraw or reserve some of that, then spend that during the call, then put back the unused amount after the call. While all this is being done the call cannot start – this is the point with pre-paid, you know – so you typically have to do all the pre-paid stuff in some tens of milliseconds tops. MySQL Cluster can do all of it in just 1-4 ms, except the queries that have joins – until now…

The improvements in MySQL Cluster joins are useful particularly to the prepaid people, because they can now have more complex discounting schemes (need to do more complex queries to know what a particular call costs) and still get the call going with real-time performance.

To Ole-John and everyone else that worked on this, you guys really rock!