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.


  1. Isn’t there a conflict between being a proving ground for new features, and branching out enterprise-only features into an enterprise-only product, while keeping the commmunity product simple? I don’t see how the community version can be both at once.

  2. MySQL’s business model of dual licensing requires that they can only accept contributions if the contributor is willing to assign the copyright to MySQL. This means MySQL is not an open-source project in the usual sense. For example, if super-duper programmer P submitted a patch that made MySQL run ten times faster but refused to assign the copyright, then MySQL would be unable to incorporate that patch into their commercial offering.

    A few years back I asked a well-respected member of the open-source community why the community tolerated this approach. He said it was because the community was desperate for a company based on open-source to succeed, and so was willing to give them a pass.

  3. Dave – might your comment about contributions to MySQL be an urban legend?

    Firstly, we can definitely have contributions in MySQL that don’t make it into the OEM-licensed edition. The SSL library is an example.

    Secondly, in case something is deemed important for our OEM business, we can either get ownership to the code or we can license it from the author, so there are is no absolute requirement of copyright assignment to us. And in the cases where significant copyright does change hands, we have paid money in return, which is something many contributors appreciate.

    Thirdly, it should be noted that there are hundreds of contributions *around* the database server. The actual server is a pretty monolithic thing and it easily takes a year or two to get to know the code so that you can contribute something useful. So it doesn’t happen very often. But there is a vibrant ecosystem of contributions around the server (in the form of drivers, tools, utilities, wrappers, etc.)

    In summary I don’t think the model is anti contributions. But I also understand that many are under the impression that it is. This is something we are now changing. We are making much more noise around the contributions we get, and we are making it easier to contribute (by making the product more modular, for instance, and by simplifying the paperwork). Comments and suggestions on how to best do this are welcome.


  4. Donnie: excellent question. the short answer is that you’re right. more features will almost inevitably lead to more complexity.

    the longer answer is that i think some complexity would be worth it, if the functionality is valued. in other words, if Community becomes the proving ground for just the features open source types are looking for – as opposed to Enterprise type functionality they’re not – it could be simpler than it would be otherwise, if not as simple as it could be.

    make sense?

    dave: Marten’s already responded below, but i wanted to commnet on two things:

    1. copyright assignment is always a thorny issue in the world of open source as i’m sure you’re aware, and dual licensing is just one approach to that problem. it’s not the approach for everyone, but it’s one that works in many ways and has been embraced by any number of dual license advocates with some success.

    further, even non dual-licensees have issues. Sun, for example, has been criticized for the JCA (joint copyright assignment) with respect to its open source projects, but the alternative is difficult. if they want to make any sort of licensing change later, they’d be required to recontact each and every contributor.

    it’s just not practical.

    2. not “real” open source: i’ve heard this contention levelled at so many different open source projects at this point that i’m nearly immune. i’ve had BSD license advocates tell me that Linux isn’t real open source because the GPL isn’t “free,” i’ve had OpenSolaris detractors tell me it’s not real open source because they chose neither the GPL nor the BSD but an MPL derivative, i’ve had anti-Mozilla folks tell me that Firefox isn’t open source because of the aggressive copyright stance that organization has taken. and i’ve certainly heard the same comments made to you about MySQL.

    everyone’s entitled to their opinions, of course, but i don’t buy any of the above. MySQL is as much open source as Linux which as open source as Solaris and so on.

    like many in the industry, i accept the OSI’s role as arbiter of whether or not a license qualifies as open source. MySQL is obviously released under such a license. it is, therefore, open source in my book.

    different projects will pursue different models, each of which has different ramifications, but as long as the code is available under an open source license i’m fine with it.

    Marten: appreciate you dropping by to clarify the question of contributions. there has obviously – the above being exhibit A – been the perception that MySQL is anti-contribution, and it will be fun to watch and see how the Community offering changes that equation. i know many Web 2.0 developers, for example, that would love to see lightning fast text search in the product – and maybe Community is a route to achieve that.

  5. Nice review.

    I have to disagree on one comment re: everything OSI approved is the “same open source” to simplify the message. There are degrees of “openness” and while I won’t argue X is more open than Y, you cannot ignore that there are different levels/degrees and they have impacts on adoption, corporate participateion, individual participation, ISV adoption, etc. It’s interesting to map these out in quadrants based on various factors.

    I think this move by MySQL is interesting and agree it’s a sign of growing up. Red Hat grew up with paying customers – I think other open source projects would do well to identify what works in their model and replicate. What will be interesting is the Community version’s ability to grow outside innovations and ability to freely distribute a product for commercial purposes that is not perceived as “beta”.

  6. Simply sounds like they’re taking a page from RedHat’s playbook: Enterprise versus Fedora…

  7. Dave Shields — I don’t know who told you that but they’re clearly wrong. The FSF has taken that legal approach for years and that was part of the Xemacs/Emacs schism. GCC is another notable platform that requires copyright assignment to the FSF before contributions are accepted.

    Granted they don’t do it to dual-license the way MySQL does (unless you count the impending GPL3 as a dual license).

  8. Mike: certainly there are degrees of openness, and some things are more open than others. my argument is rather than the term open source should not be withheld from, say, anything that’s more restrictive than BSD.

    i’ll also be interested in how the Community version fares in terms of adoption and usage. i’m actually less than worried about the perceived “betaness” than i am about the community simply reacting to the split in the first place.

    Code Guy: it’s very similar, no question.

    dbt: the copyright assignment issue is common, no doubt.

Leave a Reply

Your email address will not be published. Required fields are marked *