« Light Up The Darfur Wall | Main | Speaking at 2007 MySQL Users Conference »

December 9, 2006

Thoughts on the MySQL Enterprise/Community Split

I have been waiting and waiting ever since the announcement that the MySQL database had split into the MySQL Enterprise Server and MySQL Community Server.

Waiting for what?

For my mind to come to some resolution or conclusion about the change and what it means. It has been some time now and it just hasn't happened. I'm not sure what it says about me that I can't come to a conclusion about this, but here's what I've got so far while waiting for more time to pass. Feelings on any of this are subject to change.

Note: I've had a long-time sense that MySQL must be careful in their balance between feeling like a commercial business and feeling like an open source project. I wrote about this almost three years ago at the 2004 MySQL Users Conference. I think the split of the enterprise and community server is another instance where this balance is important.

MySQL (the company)

To me the most obvious beneficiary of this is MySQL AB/Inc. If I had to speculate (and I will) I'd guess the creation of the enterprise edition will convert a lot of non-paying customers who are enjoying the well-tested binaries and frequent releases into enterprise customers who will pay. If it doesn't convert existing customers it will be there for new customers who are coming to MySQL for the first time.

It seems like a perfectly logical decision for a business to make. Being open source doesn't require MySQL to provide regular, timely updates of the database and certainly doesn't require them to provide an extensive set of well-tested binaries. Putting these behind a paid service shouldn't offend open source folks.

Oh, I've had thoughts about the rules changing and me not having access to what has been free for so long, but I can deal. Maybe it would more problematic if I was running a large non-profit or volunteer organization that needed the enterprise-level database and was faced with paying a fee for a database I had chosen because it was free. But that's not me, so I can't complain.

Enterprise Server

From what I can tell the enterprise server is what we've been using for years, it has been the main product of MySQL AB that gets frequent updates, bug fixes, regular releases, community support, etc. In my mind it's the database I know and use, but the element of community or open source contributions have been removed, or maybe distanced. Having a product that is a little less associated with open source and community involvement is probably good for reaching certain markets.

The enterprise server cost does include a bundle of services, which go above and beyond what one would get if they were one of those multi-million downloaders of the free version. So there's something there. As someone who hasn't used them I can't comment on the value they provide.

I still don't know what to think about the community being separated from this edition of the database. In my mind this is the database that has been built over so many years with a lot of help from the community. It feels odd to see this database move on and for us community folks to be reassigned to a server that we may or may not see as fit to run in our organization.

Alas, as Kaj points out, the source for the enterprise edition will still be available:

we will continue to make all releases available over our BitKeeper tree and as source code tarballs

So it appears that those willing to compile from source will still have access to the enterprise edition. This is very important (in my eyes) to keep MySQL in the open source space. Without it MySQL AB becomes a commercial company that has an open source offering. (note: I have looked and haven't been able to find out *where* to download the enterprise source code tarball, but I trust it will be somewhere soon).

Community Server

The Community Server raises the most questions for me. In the beginning it is the same as the enterprise edition, the fork in the code doesn't do more than make them separate development trunks (if that is how they are going to be split). Over time I don't know where the community edition will go. In my mind it is new. Yes, it starts with the same code base, but the processes that move it forward are new and being developed. That raises a lot of questions for me. I (to my regret) didn't get out to the MySQL Camp, where some of these may have been answered.

My (current) list of questions about the community edition:

  1. How separate is the code of the community server from enterprise server? Is the community edition a separate trunk, or is it just a branch off the enterprise trunk? Or is it the same thing that is released on a delayed schedule?

  2. How much and how often is code merged in from the enterprise edition? How much (if any) and how often is code from the community edition pushed over to the enterprise edition?

  3. Who governs the community codebase and how is that governance manifested? If a community member proposed to add something to the database does it immediately go to the community for feedback or does it pass through a MySQL gatekeeper? Is there a process for the community to decide if they want a feature or change in the enterprise edition to be put into the community edition?

  4. Is the emphasis for community contributions on doing MySQL AB-defined projects or is the community encouraged to generate and pursue its own ideas?

  5. Will the community server become significantly different from the enterprise server? Will it have functional differences, performance differences?

  6. Will the community server be respected as a production-worthy database or will it gradually become known as experimental (or something else)? Will organizations now willing to use the community edition gradually shift away to something else?

  7. Are there enough folks interested in making code contributions to warrant the community edition? How active will the code contribution process be?

  8. Is it possible that the community will rise up and make the community server a more desirable offering than the enterprise server? (dreaming big here)

  9. Will MySQL AB continue to provide the wide range of binary builds for the community edition or will they dwindle because of other priorities?

  10. As time goes on will we see limitations imposed (like maximum number of connections or limits on database sizes) to restrict usage to "community" type activities. Will the community edition become more like the products offered by commercial companies who want to provide an "introductory" or "limited-feature" version of their product?

There is one thing I do know about the community edition. There are a lot of folks looking forward to the Winter of Code and getting down with source code contributions. Will be more evident how much will be done once the format for proposals is made available and the community can get in there and vote. I think that this is a good sign that the community feels like they are still an important part of what is happening with MySQL.

In re-reading the post from Kaj explaining the community/enterprise split I'm struck by the ying and yang of the two:

  • Community users get new features at no-cost to them — funded by paying customers

  • Enterprise users get a more stable, reliable and predictably-released product — thanks to community participation

Will be interesting to watch over the next few years to see where it goes. Hopefully it ends up being the best thing for everyone.

Posted by mike at December 9, 2006 4:53 PM