Why Should Oracle Kill MySQL, When They Will Do It Themselves?

I’ve been out at the Percona Performance Conference / MySQL Users Conference this week, and as you can imagine a lot of the talk about Oracle’s purchase of Sun/MySQL. As someone who runs Oracle and MySQL, and perverbial elephant in the room Postgres, I’ve certainly spent time thinking about this, and have been asked a lot about various angles of this deal. Perhaps the biggest outright concern from folks seems to be the idea that Oracle is going to kill MySQL, with variations on the theme of being a quick death or a slow death. From what I have seen though it may not have to.

I think it’s important to ask what would Oracle want out of MySQL when trying to evaluate its future. MySQL’s technology adds little if anything to the Oracle portfolio. Yes, Oracle does not have the ability to store 0000-00-00 in a date field, but I think that’s by choice, not lack of ability. What I think Oracle really wants is control over commoditization of the database market by free software. At this point it’s a given that this will happen, it’s just a question of how long Oracle can continue to squeeze people for thier overpriced software stack; with them in control of MySQL (currently Open Source’s de-facto DBMS choice), they can milk it for years. And they don’t even have to jerks about it.

If you changed MySQL’s development path to the following goals, would anyone be upset? Let’s make innodb the default table type in MySQL across the board. Let’s refocus on cleaning up all of the outstanding bugs in the code; improving stability is always a good idea. And let’s further reduce limitations of the storage manager API so that plugin developers have more freedom to implement thier own features, without the MySQL core getting in thier way. That’s probably a 2 year project at least, especially when you sprinkle in some other existing development along the way. And it’s all upside for Oracle. It improves MySQL without pushing it strongly in the direction of existing Oracle installs (yes, those ”migrate from Oracle to MySQL seminars will likely go away). Promoting the storage manager API is the ultimate win for Oracle. First, it keeps development of MySQL looking active, since many of the most interesting things going on in MySQL land are backend storage engine developments, and it’s being done by non MySQL/Sun/Oracle paid developers. In general, these niche engines are never going to mass adoption anyway, but they keep buzz about MySQL going, and if someone does actually come up with something really slick, Oracle can just buy them up and incorporate that code into it’s other projects. Imagine being in control of a corporate technology incubator where you don’t even have to seed the start-ups. And you keep open source’s encroachment on your proprietary stack at bay? That’s pretty powerful. And it’s much better than the alternative.

If you did try and kill MySQL, either outright, or just by strangling development (long term, given the merger and 5.4, Oracle has already bought themselves 6 months before they even have to pretend they are going to make progress, and probably 18 months before a significantly new release would need to be made, if not 2 years or more), all of the likely outcomes are bad. At best people would do a mass exodus to drizzle; the drizzle guys are doing some interesting things, and they’re being aggressively community oriented about it (big props for rewriting the client libraries as BSD, now you just need to get ANSI standard quoting ;-)), but they aren’t trying to be a Oracle replacement, and I don’t see the PHP/Floss crowd pushing them that way. Much more worrying would be that the external MySQL community would be able to reform with new stewardship and the GPL codebase. Percona, MontyDB, and a few others are already positioning themseleves for this role, and if it happens it’s bad news for Oracle. Any of these companies would no longer be encumbered by the dual licensing regime, which would open them up to outside corporate contributions for anyone (google, yahoo, etc..) willing to give back GPL’d code. This will push MySQL directly in Oracle’s direction, with the only saving grace that Oracle still would carry a lot of wieght as the core maintainers, with continued developmental control over the 2 most popular table engines (MySIAM and InnoDB); at least for now, if enough of the internal developers left, they could fork those too, and continue development. Catastrophic would be a much larger meta-migration of the overall free-software community from the MySQL family of drama to Postgres. Postgres already has the features and performance to compete with Oracle in a dangerous way. Its two biggest shortcomings (replication and in-place upgrades) are problems ex-MySQL developers would actually be able to contribute towards solving. And if you’re Oracle, you can’t buy your way out of that problem. Pick your poison, but none of those options sound as appealing as keeping MySQL going does.

But ya know, they may not even get the choice. MySQL may just kill MySQL before Oracle ever has a chance to. You thinking sharding at the data level is fun, now watch what happens when your whole database community does it. MySQL has enough forks (drizzle, xtradb, mariadb, etc…), and companies lining up to run those forks, that I believe many in the MySQL community are actually hopeful that Oracle will try and kill MySQL, so that they can be free of the Oracle overloads. Monty already stated that he would help any MySQL developer find a job outside of Oracle to continue MySQL development if he had to. And you can bet there will be some looking. On the outside, I think people don’t quite realize the chaffing your going to have of MySQL people having to work/live under an Oracle umbrella. There was once this great line a few years ago (can’t recall if it was Monty or Martin who said it) that one day he expected that MySQL and Oracle would be owned by the same company, and that it would be a company named MySQL. For years, MySQL, and many of its users, have looked at Oracle as “the enemy”, and themselves as future Oracle killers. It’s hard to swallow that type of emotion, and maybe impossible for some. And you thought the Peoplesoft buy was bad… Sure, a divorce like this would likely be messy. I imagine a mass exodus of developers and support folks from Oracle could trigger an EOL of MySQL at Oracle, and probably lawsuits and other maneuvering by Oracle to force the MySQL community to purge itself of the MySQL trademark. The laws get messy here, since there will be questions of copyright ownership and who developed what and when and where, since the laws don’t always apply uniformly in the countries involved. But hey, that’s why Oracle has lots of lawyers on retainer. Note, this might not even be a bad thing for the MySQL community long term. Yes, it will be draining short term, but in the end, if it emerges as a true community project (or projects), with new leaders taking the reigns, it could really push MySQL forward in really poerwful ways, and is probably the best long term strategy really (granted since people might move in seperate directions, it’s hard to tell, but I think that’s inevitable anyway). Time will tell, but I do think it will be hard for people to stay put.

By the way, I still have lots of questions about this purchase that no one is talking about. What’s to become of Greenplum’s thumper appliances? I can’t imagine Oracle will want to keep selling those. And what about virtualbox? It made sense from the standpoint of Sun as a hardware company, who wanted to sell as many boxes as possible, I’m not sure it still does. And hey, isn’t NetApp now suing Oracle over ZFS? Uh, woops. If you’ve gotten any feedback on these topics, I’d love to see some pointers.