Posted on

Mark Callaghan (Google) on InnoDB

Mark started by making the point that when he talks about problems with InnoDB, he’s referring to what he calls “blemishes on a beautiful work of art”. In an earlier direct chat with him he explained that the InnoDB source code is well structured and documented.

People active on InnoDB are at Oracle/InnoDB (of course), a team (!) at Google, Percona (PeterZ & Vadim), and a few other individuals like Yasufumi Kinoshita (NTT Comware Corp).

A few days ago Oracle/InnoDB released a new version of InnoDB, refactored as a plugin engine, with a number of very interesting new features and improvements.

Mark also advertised some of the MySQL-related service businesses and tools (such as Maatkit), it turns out he’s wearing multiple layers of shirts 😉 Indeed, Open Query’s “Yes, I will tune your MySQL server.” shirt is represented as well. Thanks Mark!
(if you’re reading this at the conf, I have some shirts still – just catch me, I have the box at the speaker lounge.)

The patches score some very serious performance enhancements on multicore (8+) servers with up to 64 sessions in the particular benchmarks that were run. The patches are relatively minor and mainly involve modifications in the different lock foo.

With tuning, Mark reckons InnoDB is (far) ahead of the various transactional storage engines that are around (and upcoming). It’s in wide use, trusted. I would add to this that Mark’s frame of reference is overall engineering of the engine, and his particular use of it. There are some specialised engines that would be more suited to particular needs.
Open Query does a storage engines training day that provides developers and DBAs with the information and skills required to be able to choose between different engines (you can use multiple engines within a single db/app).

One serious comment… Google had someone working on page compression; Oracle/InnoDB’s new release has this, so Google can now just drop that particular project. But think about it, this indicates wasted effort, caused by a non-public design and development (implementation) process. MySQL Server has similar issues. This *must* change!

(lunch! and then some more work on my graph engine glue, it’s coming along well)

Posted on