Bravo Oracle: InnoDB Plugin 1.0 released

Yesterday, Oracle‘s Ken Jacobs and Heikki Tuuri, creator of InnoDB, have announced the immediate release of InnoDB Plugin 1.0 for MySQL 5.1. I’ve already downloaded it and played around with it a bit. I haven’t had time to do any performance benchmarks or similar just yet. Those will come in due time.

This release is the beginning of two exciting things: InnoDB is now officially decoupled from MySQL release-wise, and lots of new features have been added to this new release. I will come to what the decoupling means in a moment, but first, the major new features in this release of InnoDB (from my perspective, and with my commentary):

  • Fast in-place index management — The ability to add and drop indexes without rebuilding the entire table in place. This isn’t a complete implementation of the long-awaited “online ALTER TABLE“, as that is mostly a MySQL problem rather than an InnoDB problem.
  • Compression of data and indexes — This should allow data size on disk to be reduced substantially.
  • Storage of entire BLOB, TEXT, and VARCHAR data off-page — This can allow more efficient PRIMARY KEY indexes (where the data is stored in InnoDB because of the index clustering) on tables with BLOB, TEXT, or large VARCHAR columns
  • New information_schema tables — InnoDB is now providing a lot more visibility into what is going on internally. I’m hopeful to extend this even further.
  • InnoDB-specific “strict mode” — Don’t allow InnoDB to fudge things internally, forcing it to error in circumstances it can’t handle, rather than just give a warning or silently continue.

All of the above features look excellent, but one of the more interesting aspects of this announcement is the fact that MySQL and InnoDB are now decoupled for release. That is, Oracle can make a release of InnoDB without having to wait for MySQL to make their own release. While this will make it slightly more difficult to describe what version of MySQL/InnoDB you’re using (especially without a way to find that out from MySQL), it has the potential to make the release process much quicker and more efficient.

I’m quite hopeful, and from what I have seen in the recent past with the collaboration between Heikki, Ken, and Yasufumi (an outside contributor) on fixing InnoDB performance bugs, quite positive, that Oracle will be a lot more accepting of outside patches and code contributions to the InnoDB codebase than MySQL has been recently. I’ve got a lot of ideas for new features targeted at manageability that I’d like to get implemented. I’d love to hear Oracle’s comments on how they will accept patches to InnoDB now, and what they see the community interaction looking like in the future. Ken, any comment?

The only negative aspects I can see with this announcement are:

  • Oracle spent a couple of years working on this in silence, away from the community. Most everyone was surprised by this release, as we haven’t seen anything from Oracle about InnoDB in a long time, and to some extent we were sitting in the corner hopeful that Oracle really doesn’t plan on killing the project. While I understand that perfectly well from a business standpoint, I am hopeful that working for long periods away from the community can be minimized in the future, so that we can all stay more involved.
  • It is now a bit harder to get a new MySQL/InnoDB installation up and running, as the newest InnoDB is not part of the MySQL packages anymore. I’m sure this can be cleaned up with some smart RPM (etc.) packaging.

Overall, I am excited about this announcement, and quite happy that Oracle is making some serious contributions and commitments to maintaining InnoDB. Thanks for all your hard work, Ken and Heikki and the rest of the InnoDB team! Let me know if there’s anything I can do for you!

6 thoughts on “Bravo Oracle: InnoDB Plugin 1.0 released

  1. Building this plugin is kind of a joke.

    1. Get the latest MySQL 5.1 sources from
    http://dev.mysql.com/downloads/mysql/5.1.html#source

    2. Replace the contents of the mysql-5.1.N/storage/innobase/ directory
    with the contents of this directory.

    4. Compile MySQL as usual.

    Plugins usually can be easily build and later used without having to rebuild main program but not this one :-/

  2. Yes,

    This decoupling is indeed very good news. This would allow Innodb to release features with its own (hopefully fast pace). It also would allow to have several versions of storage engine only while sticking to relatively stable SQL level side.

    Ie for long time I wished I could get MySQL 5.0 Innodb (compact format) with less buggy MySQL 4.1 SQL layer.

  3. Arekm … On Linux, it is not at all necessary to build from source. Indeed, you can REPLACE the built-in InnoDB in the standard MySQL binary with the Linux binary. No source involved.

    You only need to build from source on Windows (for the moment). As the website says, we will soon offer binary plugin for Windows too.

  4. Ken.

    I agree with Jeremy’s observations. Please don’t go heads down on InnoDB features without some type of community interaction.

    I mean you guys own InnoDB and you can do want you want (obviously) but if you want the community to be excited by your tools and help out then you should give us some heads up to play with your new tech.

    Of course, one theory could be that Oracle was uncertain that future versions of InnoDB would be GPL. If you’ve made that decision I’d love to work with you guys on the new forums.innodb.com….

    Thanks!

    Kevin (you can pry InnoDB from my cold dead hands)

  5. As PS is now making RPMs available in their YUM repository, have you considered making bundled RPMs available?

  6. jcole’s weblog: Jeremy Cole’s take on life. » Blog Archive » MySQL Cluster splits from MySQL -- not pluggable?

What do you think?

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s