tecosystems

Enterprising MySQL

Share via Twitter Share via Facebook Share via Linkedin Share via Reddit

As mentioned in my entry discussing the Information Server news, I’ve been waiting for another bit of database related news to drop. As Dave mentions, it did today: MySQL has announced its intention to move forward with two separate products, MySQL Community and MySQL Enterprise. Head over here for the internal thinking from MySQL’s Kaj Arnö.

Even if MySQL were not one of the most important players within the open source ecosystem, this would be big news because it represents a fundamental shift in model for a successful business. Considering that context and MySQL’s larger significance, it’s really big news. Fortunately, Lisa Scheeran was kind enough to get me on the phone with MySQL’s CEO Marten Mickos last week. As usual, Marten was both upbeat and upfront about the news, and as a result of that chat I think I have a better sense for why MySQL’s made this decision. Given that I’m already getting inquiries on the topic, let’s get right to the Q&A.

Q: How about the usual disclaimers?
A: MySQL AB is not a RedMonk client, although several competitors to MySQL – EnterpriseDB and IBM included – are. I think that’s about it.

Q: For readers that haven’t seen the news yet, can you sum up what’s been announced?
A: Sure. The short version is that MySQL is introducing two separate versions of their eponymous database product: MySQL Community and MySQL Enterprise. As is probably obvious from the naming, the Community version of MySQL is the product for the masses, the product for those (like us) who don’t require a supported version of MySQL, and the product for those that might want more bleeding edge features and functions. Enterprise, on the other hand, is aimed at business customers that want support, don’t need some of the next generation database functionality, and most importantly need help administering, deploying and managing their various MySQL DB’s.

Q: How is that different from MySQL’s previous model?
A: MySQL to date has produced, sold and supported a single version of the product – the same old MySQL that I have running on my laptop right now, obtained via the Ubuntu repositories. Going forward, I would be deploying (and Ubuntu would be hosting) MySQL Community, rather than MySQL Enterprise.

Q: Why did MySQL choose this path? Why fix what isn’t broken?
A: Well, I think the assumption that nothing was broken is potentially inaccurate, but the reasoning is pretty straightforward. As Marten related to me, the primary motivator here was the ongoing tension between the needs of the community and the needs of the enterprise. MySQL in effect was being tugged in two different – conflicting – directions.

At no time was this tension more obvious than in the talk Adam Bosworth gave at MySQL’s own Users Conference over a year ago. While MySQL was just in the process of announcing new features in version 5 to meet enterprise demand – features such as stored procedures and triggers – Adam was questioning whether or not that was in the best interests for MySQL users. He advocated a path that more satisfactorily addressed the long term database shortcomings he pointed out in the piece I pointed at earlier today. A path that would disappoint, I’m sure, many of MySQL’s paying enterprise customers (whether they should be disappointed is a question left to the reader).

There’s also the fact that meeting enterprise needs had the potential to jeopardize the very qualities that made MySQL successful in the first place. While it was not my intention, I put Marten on something of a hot seat in asking him during a panel at last year’s OSBC whether or not he felt that the addition of some of the aforementioned enterprise features could compromise the simplicity of the product, a key selling point for many of its users (me included). His answer was that the features had been added at the request of MySQL users. Today’s announcement highlights the implicit conflict in his answer: MySQL users are not a single entity, and have in this case different – and often conflicting – needs and wants.

Then there are the licensing and IP issues. Matt describes the advantages to the new approach better than I possibly could in his take on the news, saying:

In MySQL’s case, the company has had to worry about shipping a robust, IP-safe product to its community, which includes enterprises. (Forrester found that 17% of MySQL users, btw, run it in production. Production like YouTube which, last time I checked, was massively scalable and high performance.) For this reason, as well as the need for release cycle speed, MySQL must keep a tight rein on inbound contributions. Close to 100% of the contributions to JBoss, MySQL, etc. come from those companies, and not from community.

MySQL’s Community Server product breaks down this centralization, providing “deposit slips” to a wide range of developers that have wanted to contribute code. Like Red Hat with Fedora, it gives MySQL and its community a safe but exciting platform on which to experiment with the latest and greatest database technologies. It will be Innovation Central for the MySQL database.

MySQL Community, in other words, gives MySQL a flexibility it did not have previously.
As Kaj put it, MySQL’s justification is “to better serve both categories of MySQL users — those who are willing to spend time to save money, and those who are willing to spend money to save time.” (As an aside, I use that analogy myself all the time now).

Q: I’m not quite sure I get that; can you explain the licensing aspect further?
A: Certainly. For those that don’t quite grasp the above, remember that MySQL is a dual licensee, meaning that they own all of the intellectual property for the product and thus can license it under either the GPL or a license more suitable to specific customers needs as circumstances dictate. This is an advantage in working with corporate customers, but means that the burden of development – unlike, say, Linux – rests almost entirely on MySQL. Otherwise, MySQL AB doesn’t own the IP and can’t license the product under other terms. MySQL Community gives MySQL the ability to relax some of those restrictions and better incorporate outside contributions in a free product. I asked Marten whether or he expected some of those contributions to trickle back into Enterprise, and he allowed that that was indeed a possibility – creating “a business opportunity for smart open source developers,” as he put it.

Q: Is there any precedent for this?
A: Yes. In fact, I asked Marten how he would compare this to the obvious precedent: Red Hat’s decision to split Fedora off from Red Hat Enterprise Linux (RHEL). He made the point that MySQL is creating both of the distributions at the same time, as opposed to Red Hat which essentially siphoned off Fedora from RHEL. That said, I think the comparisons are apt, not to mention instructive. Fedora has become something of a proving ground for Red Hat, and I think you can expect to see Community take a similar path.

Q: So far we’ve covered mostly MySQL’s reasoning; do you buy their claims? Or are their motivations here more complex?
A: Both. Do I believe Marten and co when they claim that this is a genuine attempt to address shortcomings in how the model served different constituencies? Yes. But is the genuine business reasoning considerably more subtle? I think so.

Q: Explain.
Q: ESPN’s (and sports?) best blogger Buster Olney recommends that analysts be clear on when they’re treading into pure speculation versus analysis based on facts, so let me be clear that I’ve heard nothing from MySQL to validate the following. It’s pure speculation.

Beyond the obvious answer – that this is an attempt to make if not everybody happy all the time, more people happy more of the time – I’m wondering if there are more fundamental business issues involved. Specifically, conversion rate.

It’s widely assumed that MySQL is performing well as a business; it is indeed commonly cited as a shining example of what open source firms can achieve. While the company is private and thus not required to publish its financials, there is no real reason to suspect otherwise. Outwardly, the signs are universally positive.

Still, it’s reasonable to speculate (again) on whether or not MySQL feels that it could be doing better. Marten and company have made no secret of their miniscule conversion rate (sub 1%, from what I’m told), content to rely on volume at the expense of conversion percentages.

MySQL certainly would not be alone in having problems with the high number of folks free riding on the GPL. Matt’s buddy Fabrizio, CEO of Funambol, went so far as fork the GPL in drafting the “Honest Public License.”

Is the Community/Enterprise decision a reflection of a desire to improve the conversion percentages for the already successful MySQL, in an effort to take it to the next level financially? I think it’s certainly possible.

Q: What else is new in the Enterprise edition of MySQL?
A: A while back, MySQL launched a network offering which was borrowed quite a bit from Red Hat’s counterpart. The Enterprise offering is a logical extension of this, as it bundles in what MySQL calls the “MySQL Network Monitoring & Advisory Services.” These services tie back to the MySQL’s site, providing custom rules, DBA-like advice and so on to Enterprise subscribers. In short, it’s a network rather than a software play. Marten was very careful to note, however, that the software component that delivers this functionality is in fact an add-on rather than directly integrated into the codebase. That component, notably, is not released under the same open source license that the database is, and as such cannot be hosted nor distributed for free by Linux distros or other third parties.

Q: You mentioned that earlier, that Ubuntu would carry the Community rather than the Enterprise version – why is that? Why could Ubuntu not carry the Enterprise version?
A: For precisely the reason described above. The Enterprise version bundles in what the F/OSS world would describe as non-free software. The Linux communities then will be required to distribute the Community rather than the Enterprise version.

Q: Is the Enterprise codebase not open source then?
A: It is.

Q: What’s to stop someone – presuming the network functionality truly is an add on – from being removing the non-free components and compiling a free version of Enterprise?
A: Excellent question. The answer is nothing. Much like CentOS is a free version of RHEL, so too could someone distribute Enterprise (less the non-free functions) to similar effect. Personally, however, I don’t see much interest in that, nor do I perceive that to be a threat. First, I think many customers will be content to run on top of community, and should the CentOS version of Enterprise emerge it’ll only reinforce MySQL’s traction. MySQL’s done just fine with a free version of its Enterprise product available to date, and I don’t expect that to change. I don’t believe MySQL is worried about this either.

Q: What about compatibility? Can customers move from Community to Enterprise?
A: I’ve been assured that compatibility has been the number one priority. Moreover, the database engine is the same in both versions and continues as before, ensuring that functionality such as the critical SQL interface is the same regardless of which version you’re using.

Q: What do you think this move means for MySQL?
A: That they’re growing up. This is not a decision to be made lightly, but MySQL clearly has weighed the options and decided that the enterprise market is significant enough to justify the risks. That indicates, to me, a real appetite and understanding of the highly conservative enterprise market.

Q: What about the risks?
A: The real risk here is to MySQL’s community. I haven’t seen much in the way of negative reactions as yet, but it’s early days. It remains to be seen how this will be received, and undoubtedly there will be some confusion and misunderstandings of the meanings here.