New InnoDB Plugin with MORE Performance: Thanks, Community!

Today, the InnoDB team announced the latest release of the InnoDB Plugin, release 1.0.4. Some of the performance gains in this release are quite remarkable!

As noted in the announcement, this release contains contributions from Sun Microsystems, Google and Percona, Inc., for which we are very appreciative. This page briefly describes each of the contributions and the way we treated them. The purpose of this post is to describe the general approach the InnoDB team takes toward third party contributions.

In principle, we appreciate third party contributions. However, we simply don’t have the resources to seriously evaluate every change that someone proposes, but when we do undertake to evaluate a patch, we have some clear criteria in mind:

  • The patch has to be technically sound, reliable, and effective
  • The change should fit with the architecture, and our overall plans and philosophy for InnoDB
  • The contribution must be available to us under a suitable license

Let’s consider, in general terms, what these criteria mean in practice.

We have to expend a fair bit of effort to carefully evaluate and possibly modify a patch before we can include it in the release. Some of the third party contributions we’ve seen have not been portable, or have been developed just for Linux. It can take time to find an approach that enables a platform to take advantage of a new feature, even if the platform has the required capabililties. Some of the patches we’ve evaluated have contained actual bugs that would impact reliability, cause deadlocks or have other negative implications. InnoDB is a clean and elegant piece of code, yet some of its internal algorithms and behaviors are subtle and complex. Therefore, changes in the “guts” of InnoDB (or any storage engine) must be done carefully and thoroughly tested. Some patches that have been offered make a difference, but only when compared to an inappropriate “baseline”. At any given point, we would look to include a patch only if it makes a significant improvement over the “best” version or configuration of InnoDB available at the time. We like to test each patch in isolation, to assess its individual value. This requires some rigorous performance testing, with multiple workloads.

From time to time, third parties have made suggestions for changes that may seem attractive at first, but don’t make sense longer term. In general, we may have a more comprehensive approach to a problem or requirement that we would like to implement, rather than incorporate a patch that would introduce a feature that would ultimately be made obsolete. We prefer to have fewer “knobs” and tuning complexity, so we’re more inclined to implement heuristic, self-tuning capabilities than we are to add new configuration parameters. Lastly, we take care to protect the ability to upgrade and downgrade user databases with the file format management features in the InnoDB Plugin. If a patch requires an on-disk change, we will defer its incorporation until the time comes to implement a new file format.

For us to be able to make continued investment in InnoDB, we must be able to license the software commercially. OEMs and ISVs who incorporate MySQL with InnoDB in their products may not wish to release their products in open source form. Therefore, for each contribution we are to accept, we must have clear legal rights to the change.

Beyond all that, of course, we take care to carefully document each new feature, both in terms of form and function. We try hard to explain the implications of a feature, providing information about what it does, and when and where to use a feature, as well as how to do so. And, we generally speaking are committed to upward compatibility and support of a feature once it is introduced.

It’s pretty clear that the integrity of InnoDB, with its broad adoption and importance everywhere it is used, is paramount to you and to us. You can trust the InnoDB team to protect InnoDB now and in the future, while being open to suggestions and contributions. Let us know if you think we’re doing a good job!

11 Responses

  1. Baron Schwartz Says:

    Ken, yes you are doing a great job! I am elated to see so many of Percona’s changes making it back “upstream”, and just as happy that you’re bettering those efforts in the process.

    [Reply]

  2. Mark Callaghan Says:

    Wow, the InnoDB team is doing a great job. The documentation is really nice too.

    [Reply]

  3. Jay Pipes Says:

    Great stuff Ken and the InnoDB Team! Drizzle will be pulling in the 1.0.4 plugin into our tree shortly.

    Cheers, and thanks!

    Jay

    [Reply]

  4. George Trujillo Says:

    Great news! The features in the InnoDB Plugin are very important features for MySQL DBAs. Also great to see community so involved.

    [Reply]

  5. George Trujillo Says:

    Great news. The features in the InnoDB Plugin are very important for MySQL customers. The performance gains are also exciting to hear. I can’t wait for InnoDB Plugin to become GA, there is a lot of enthusiasm for it.

    [Reply]

  6. InnoDB Plugin 1.0.4 Now Available - Technology Says:

    [...] [...]

  7. Vladislav Vaintroub Says:

    I just wanted to thank you guys for keeping an eye on platforms other than Linux. I imagine what it could be if you took contributors patches “as is” on other platforms :)

    [Reply]

  8. Ken Jacobs Says:

    Thanks for all the positive comments, guys! We’re glad you like what we’re doing. We remain committed to the future of InnoDB. We’ve had great feedback not only “in principle”, but based on actual usage.

    To the extent anyone out there can add to our knowledge base about reliability and the performance gains we’ve described, that will definitely help us reach the decision to announce “stable” or “GA” quality.

    Thanks again!

    [Reply]

  9. Jeremy Zawodny Says:

    Excellent news!

    Thanks for all the hard work and willingness to listen to community feedback (and patches).

    [Reply]

  10. InnoDB Plugin 1.0.4 现已发布 - Technology Says:

    [...] [...]

  11. Agora Disponível o InnoDB Plugin 1.0.4 - Technology Says:

    [...] [...]

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.