MySQLConf impressions 5: Oracle and MySQL 5.5

hingo's picture

I will not bother to comment on Monty's keynote (but I did post the text to it so you can make up your own mind) and this brings us then back to the Tuesday and Oracle's opening keynote featuring Edward Screven.

Most tweeters and bloggers seem to have been a little disappointed with Edward. It is not up to me to call the talk boring, but I have seen him in much better shape, with much more enthusiasm. And it is not a secret that Edward was rushed directly from the keynote to some other meetings he had scheduled, maybe this factored in and he just had too many things on his mind. My take on this is that this may be a symptom of a larger pattern: Edward is one of Oracle's most brilliant executives. Unfortunately he is also one of the busiest ones with many responsibilities. So for MySQL's sake I hope that Edward will soon delegate the MySQL business to another manager reporting to him, who can focus full time on MySQL.

As for the substance of the talk, I had predicted a GA release of MySQL 5.5. I was proven wrong, (and Igor right) since it was only announced as Beta. This is kind of a non-event, since with the new MySQL release model you will have Beta's every 6 months, so there is no way to know if this Beta actually will become GA or not. Otoh, the shift from MySQL's "it will be released in Q2 but we don't know which year" announcements to Oracle's "no announcements or speculation before it actually happens" is certainly welcome.

This also means that the GA version that is MySQL 5.1 is now drifting even further from the competing forks in performance, when compared against stable and supported releases of MariaDB and Percona. The pressure was there already last year with the MySQL 5.4 beta, and now we've gone a whole year without it becoming GA yet. We'll see if there actually will be a 5.5 GA, or whether the next release will be 5.6 Beta...

Update: Mark Callaghan informs me that InnoDB Plugin 1.0.7 as bundled with MySQL Server 5.1.46 is now considered fully supported GA quality. Since the InnoDB plugin contains the bulk of the performance improvements at issue, the huge gap between stable releases of the different forks is now closed. On the other hand, I'm now even more surprised at the approach taken in Edvards talk: the release of InnoDB plugin as GA is huge news! Why wasn't this bundle mentioned at all? This should have been the leading slide! Similarly, to make perfomance comparisons against the old builtin InnoDB seems totatlly useless now. Any improvements in 5.5 should be compared against 5.1+plugin. (Which I essentially already said earlier.)

The usual pundits have cheered and welcomed the announcement of 300% performance improvement in performance. A keynote of course cannot go into deep technical details, but just waving such a number in front of this crowd is perhaps not the best approach. As an engineering minded person my response was mostly *yawn*. So by looking into other presentations and blogs to get more information, I get that:

  • As Kostja points out, the 300% performance improvement is obviously not in peak performance, but rather at the far end of the graph with 128+ client threads bombarding the database. This is actually a significant improvement, but waving "300% improvement" made it look silly. Why not say: "now scales to 128 threads rather than 8", now that is something we have been waiting for! Also my car goes 300% faster when I release the hand brake, but it is not interesting news, but if you've recently realised there is a hand brake, make that your news.
    • A commenter makes an interesting point: "What is interesting here is what was not said. Sun has machines that have 128+ cores... Say 2 threads per core... you've now got very performant hardware for MySQL." Indeed, I did not look at it that way. It may be Oracle doesn't want us to realize MySQL now scales well on so many threads/cores, since they want to push their proprietary database for that instead. Would be interesting to know. (For all I know, there is no conspiracy theory, the presentation just wasn't perfectly prepared.)
  • The other piece of lacking information is that all comparisons are against MySQL 5.1. Since MySQL 5.4 was announced last year, it would have been more interesting to know what 5.5 adds on top of that. Since a big and competent team has worked on this for a year, I know there has to be performance improvements. So it bothers me that the information is not easily available. Last year I think there was also comparisons with InnoDB plugin and XtraDB, which was nice.
  • Vadim was nice enough to benchmark MySQL 5.5 against the newest Percona Server. It seems to me they are more or less equal. This means that MySQL 5.5/InnoDB merely manages to keep up with Percona, rather than making leaps ahead.
  • One note on this is that also the InnoDB and XtraDB codebases are at risk at diverging. It seems that the adaptive flushing of buffers was first implemented by Percona, and has now been reimplemented by Oracle, but the code is not the same. (Did I get this right, it is not my job to actually look at the code?) This is of course the same problem as noted about MariaDB in the storage engine summit. Since Oracle currently doesn't take GPL licensed code into MySQL, unless we can talk ourselves into a sane solution, this divergence may be inevitable. Duplication of efforts is not good though.

There were two rather obvious announcements. So obvious I even forgot to predict them pre-conference, so they actually came as surprises :-) I had kind of expected that InnoDB Hotbackup will be added to the MySQL Enterprise Subscription package. And also that it will remain closed source. (Btw, you may want to check out Xtrabackup from Percona, which is a fully open source implementation of online backups. We intend to include it in MariaDB too.)

The other piece of news was setting InnoDB as the default storage engine. While this is technically just flipping a setting, which most of us do anyway in our installations, it is not a dramatic change, but it is significant in setting a higher standard. MySQL is now transactional by default. I believe there may still be the odd hosting provider that only gives you MySQL with MyISAM and disable InnoDB to minimize the memory footprint. (In MySQL 4.1 times I was bitten by this when trying to host a transactional web app.) This will no longer be acceptable!

Finally Mark Matthews demonstrated new goodies in MySQL Enterprise Manager. It is not for me to recommend anyone to use closed source software, but for users of MEM there was a gold nugget in the demo: You can now get your query statistics from the JDBC driver! No more will it be necessary to run MySQL proxy on your DB servers to use the query analyzer.

In my opinion this was the most significant announcement of all. It was very well hidden in the middle of the demo at the end of the keynote. It amuses me that I think I may have been among only a handful of listeners who even picked up on this. So in summary, Edwards keynote did contain interesting stuff, but it was well hidden. Not well communicated. (FWIW, some have said the same about Monty's keynote. So my intent is not to criticize, quite the opposite, I want to highlight the good stuff that wasn't obvious to all.)

I did really enjoy the keynote by Tim. Tim is always a few steps ahead of us, and history has proven that he is correct in the issues he raises, so it pays to listen to him. And talking about open data (access) is certainly appropriate for an open database conference!

Tim also handed out the MySQL awards for this year. Colin has reported about this with photo and everything. This years winners all turned out to be strong code contributors, beating even some very prominent bloggers that were nominated too. I personally think it is a healthy direction. Congratulations to all winners!

This concludes my series of posts about the MySQL conference. Thank you for participating and/or reading, and hope to see you again next year!

PS: Next year there will be no volcanoes, but we are already planning on something even more dramatic than previous years... Stay tuned for Call for Papers next Autumn!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Mark Callaghan's picture

Where are the performance

Where are the performance results to validate your claims that MariaDB is much faster than 5.1?

Maybe you aren't aware of this but 5.1 gets faster with every release of the InnoDB plugin.

VadimTk's picture

Mark, Technically

Mark,

Technically MariaDB/XtraDB should be faster than
MySQL-5.1/InnoDB-plugin, as 5.1 does not have all improvements that available in 5.5.4.

I refer to results:
http://www.mysqlperformanceblog.com/2010/01/13/innodb-innodb-plugin-vs-x...

hingo's picture

Isn't innodb plugin still beta?

Hi Mark

Last time I checked InnoDB plugin was distributed as part of MySQL 5.1, but was still beta. This is my point with the above text: More scalable beta products have been available from MySQL for 2 years now, including InnoDB plugin, MySQL 5.4 and MySQL 5.5. However, none of these have been declared GA. (So you couldn't buy support for them, for instance, and hypothetically they might never become GA, like MySQL 6.0.) So by writing what I wrote, I didn't intend to seem ignorant of the fact that these beta products exist. (After all, that same code is what we have in MariaDB too...)

Regarding your other comment, the biggest performance gains from MariaDB are already well known and published in benchmarks on XtraDB and PBXT, not the least in your own blog! MariaDB shouldn't make a significant difference to the performance of either of those. (If it turns out to be better, it would be a lucky mistake. If it is worse, it is a bug.)

The one significant performance improvement in MariaDB outside of those is the inclusion of the "stardoll patch" to segment the keycache mutex for MyISAM. This we reported on as part of Monty's keynote (slides) and it turns out this simple patch gives 70% improvement for a read-only workload. (Yes, I know you're not terribly interested in MyISAM, but nevertheless, this is what we've reported recently :-)

So I believe we have reported on everything that wasn't reported on already. That being said, there certainly is space for someone that wants to take MariaDB and benchmark it on a regular basis. If you are reading this and feel this is your thing, such blogs would probably be much appreciated by many!

hingo's picture

Coming up after the break: subqueries

Oh, I should add that an obvious topic that will become interesting soon is the work on subquery optimizations we are about to complete for MariaDB 5.3. This work will first see the light of day inside MariaDB, and rest assured it will be up to our engineers at Monty Program to produce the first benchmarks that validates that work.

But we are still a few months from that.

Mark Callaghan's picture

The 1.0.7 InnoDB plugin is GA

The 1.0.7 InnoDB plugin is GA in MySQL 5.1.46.

I have received support for the non-GA versions of the InnoDB plugin. I don't know what you mean by 'cannot buy support for it'.

hingo's picture

The 1.0.7 InnoDB plugin is GA

Ah, so finally. I had not noticed this in 5.1.46, I blame the ashcloud! So that means MariaDB only beat MySQL by a few months by getting this code to a stable release, and now everyone is shipping a stable release of some version of InnoDB plugin. Thanks for enlightening me about this.

Regarding support, yes I'm well aware MySQL support would help you even with unsupported MySQL installations. They are great that way. Formally we couldn't sell it though, we just had to tell the customer "trust me, it'll be ok even if the contract says otherwise".

Mark Callaghan's picture

I am thrilled with the

I am thrilled with the practices of Percona/XtraDB. You tell us it is faster and then you publish numbers from performance tests. I learn a lot from that.

I hope that MariaDB begins to do the same.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • Allowed HTML tags: <h1> <h2> <h3> <h4> <p> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <br> <sup> <div> <blockquote> <pre> <img>
  • Lines and paragraphs break automatically.
  • Web page addresses and e-mail addresses turn into links automatically. (Better URL filter.)

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.