Oracle has released its latest GPL update to its MySQL cluster, with huge speed boosts promised, better support for web users added, and new support for NoSQL integration. MySQL Cluster 7.2 will be able to process a billion queries per minute and 110 million updates per minute, Oracle claims, giving users a 70X increase in …
So are they saying they've got a 70x increase in performance because of Memcached using the optional NoSQL integration tool? There's very little clarity here. If that's the case, it's a very misleading claim. That would surely come as the cost of consistency (C in ACID)? Can someone shed more light?
No - the 70x comes from a feature called Adaptive Query Localization which pushes JOIN operations down to the distributed data nodes where they are executed in parallel, on local copies of the data, and then return a single result set to the application
The article posted here gives more detail, and the information about the benchmarks and Memcached integration:
Re: Re: Erm...
Okay, then are they saying there's a direct link between the 70x join performance improvement and the millions of transactions per second? And is this a best-case scenario for very small tables that are entirely cached in memory? Or even cached query results without accessing the table? There's no detail on the type of transactions carried out, only the type of application it was used on, which could just use the same few queries repeatedly.
Those are interesting claims, but I'd be more interested in non-Oracle real-world examples using large tables. A database with a total of 33.5k rows is negligible. And the environments used to conduct the tests between versions weren't the same. In fact the one used to get the massive hike in performance was significantly different.
Does anyone know if there are details on how to recreate this test?
Re: Re: Re: Erm...
The 70x join improvement and the millions of transactions per second are separate improvements. The 70x join improvements are due to executing joins in parallel, closer to the data, minimising data transfer. The 70x improvement is observed between running queries involving joins on the same hardware+software with the new 'AQL' functionality off, then on. The '1 billion qpm' headline transaction throughput improvements are due to increased multithreading within the system processes. You are correct that the previous results were executed on different hardware, so it's hard to determine how much the software changes have brought to the table.
The '1 billion qpm' benchmark was executed against in-memory tables, so disk IO was not a factor in reaching the throughput. The transaction types are primary key reads, retrieving rows with 25 integer column, e.g. a read of ~100 bytes of actual data. No joins are occurring here. The queries are similar, but the results are not cached. So effectively this is 1 billion random reads of 100 bytes per minute / 17.6 million random reads of 100 bytes per second. The data is distributed across 8 different machines. The flexAsynch benchmark used is described in more detail here : http://dev.mysql.com/downloads/benchmarks.html and here : http://mikaelronstrom.blogspot.com/2012/02/105bn-qpm-using-mysql-cluster-72.html
You are correct to be suspicious of any vendor benchmark's real world applicability. The best that can be said is that if each vendor gets the maximum from their systems then those results might be comparable.
"MySQL Cluster 7.2 will be able to process a billion queries per minute and 110 million updates per minute, Oracle claims, giving users a 70X increase in performance on complex queries. The company also claims 99.999 per cent reliability."
Does that mean it fails 1,100 updates per minute? NO THANKS!
The 99.999% is uptime over the course of 12 months - so less than 5 1/2 minutes per year
Trying to play catch up with Postgres which is, of course, threatening Oracle's main breadwinner: Oracle itself.