Oracle's 10 commitments to MySQL - a 5 year review

Last week passed the 5th anniversary of the closing of Oracle's acquisition of MySQL. That also means that the 5 year term of the infamous 10 commitments to MySQL users that Oracle made to the EU commission expire.

Since I work for another database technology nowadays, I have made a point of not blogging about MySQL related issues anymore (and mostly do not follow MySQL close enough to say anything wise). But in 2009 I was so closely involved in the EU investigation into the Oracle-Sun merger, that I feel this is a topic I could write a retrospective on. For nostalgic reasons if nothing else... In any case, these commitments have very little practical relevance in 2015 anyway, so anything in this blog post is clearly more historical than about current state of anything in MySQL land.

For reference:
The commitments press release: Oracle Makes Commitments to Customers, Developers and Users of MySQL
The final EU decision approving of the merger: Case No COMP/M.5529 – ORACLE/ SUN MICROSYSTEMS

First things first:

Now that Oracle is free to do whatever they want with MySQL, will they *now* kill it?

Just thought we should clear this up first, in case you will hear someone making such claims somewhere in the dark corners of the internet.

This is easy to answer: No. Why? As you'll see, these commitments were a political PR excercise of the time and were never binding on Oracle and as you'll see Oracle already neglected to follow through on a couple of them, even if they were rather easy ones. The one thing they have done though is continuing to develop new MySQL releases, it's even easy to claim MySQL engineering today is in much better shape than it was 5 years ago. Clearly the passing of this point in time will have no effect whatsoever on Oracle's future MySQL activities, just as it did until now too.

How the commitments became to be

Before looking at each individual commitment, let's briefly summarize how they came to be.

On Oracle's request, the EU arranged a 2 day hearing on Dec 10-11, 2009, so that Oracle could plead its case. On the first day Oracle mostly ran the show, putting forward several witnesses mostly from large Oracle customers (interestingly, many of whom had never personally used MySQL, rather were CTOs of large Oracle database customers). On the second day so called third parties testified for and against the acquisition.

The ten commitments were communicated to the EU Commission immediately after the hearing on Dec 11. Quite likely the commitments have been written by Oracle before that event. There is no written record showing if this approach and the substance of the commitments had been discussed with Neelie Kroes' closest team before Dec 11, or if they have been presented to the EU as an arrogant "take it or leave it" offer. Both of these seem possible to me, considering Oracle's style in general. But witnessing some comments and body language of the EU clerks at the hearings on Dec 11 suggest to me that they knew already during the day that Kroes'es cabinet had decided to give in.

The commitments were issued as a press release by Oracle on Dec 14. A clearly coordinated statement from Neelie Kroes noting them as a positive development was also issued the same day.

This was a very unusual, even unprecedented way of solving such a merger investigation. The normal way would be for Oracle to commit to some concessions on a specific form, which would then go through various EU checks and approvals (including being reviewed by other players in the market: customers and competitors). Such a formal agreement would also stipulate penalties (like huge fines) if Oracle would break any commitments during the 5 year term. A press release on the other hand of cours is not a legally binding document.

The press release did however serve a political purpose. It offered a PR smoke screen behind which Neelie Kroes could withdraw from the battle as if she had forced Oracle to concede to these commitents. The real victory however was Oracle's, who got to acquire all of Sun, including MySQL, without consenting to any formal concessions whatsoever. It was a typical Brussels solution where both sides could pretend that they got what they wanted.

The eleventh commitment

Just one more thing before I jump to the commitments. The most significant commitment is actually not in them. It does not address normal applications using MySQL.

Throughout the EU investigation, and also in the commitments, Oracle seemed to be completely ignorant of the cornerstone of MySQL's business model. Oracle's argument was that since MySQL is open source (more specifically GPL) it doesn't matter who owns it. Then when the EU surveyed actual European MySQL customers they explained that this was not true at all, that the reason they are MySQL customers is because MySQL told them they will sue them if thy don't buy a commercial license. (And this scenario is of course aggravated by the reputation of Oracle having a trigger happy legal team...)

To this day I never figured out if this messaging was deliberate strategy on Oracle's part (ie pretending that a major issue doesn't exist by way of avoiding to mention it) or due to ignorance of MySQL's business model. Likely it was the latter. If it was deliberate it certainly wasn't a good strategy, as it caused the Commission to be very suspicious of Oracle's intents wrt MySQL. Either Oracle was lying to them, or if not, then after 6 months of investigation, they still hadn't bothered to understand MySQL's business model - which of course could be explained by the motive that they just wanted to kill the MySQL business.

This issue was settled at the hearings where all parties sat together in the same room. Both Oracle's Edvard Screven and their hired GPL legal authority Carlo Piana stated that in Oracle's opinion an application using MySQL in the ordinary way (such as via a standard JDBC connection) isn't affected by any requirements of the GPL license of the MySQL server. (Note: This is of course how pretty much everyone interprets the GPL, but it was significant that for the first time the to-be-owner of MySQL made a legally binding statement confirming the same, and a reversal to MySQL's position until then.)

As described above, the list of 10 commitments has of course been drafted (and gone through numerous Oracle-internal approvals) before this was said in the hearings, so this most important issue isn't even part of the commitments press release. It was however recorded in the EU Commission's final decision as §589.

Scoring how Oracle did on the commitments


1. Continued Availability of Storage Engine APIs. Oracle shall maintain and periodically enhance MySQL’s Pluggable Storage Engine Architecture to allow users the flexibility to choose from a portfolio of native and third party supplied storage engines.

MySQL’s Pluggable Storage Engine Architecture shall mean MySQL’s current practice of using, publicly-available, documented application programming interfaces to allow storage engine vendors to “plug” into the MySQL database server. Documentation shall be consistent with the documentation currently provided by Sun.

(See comments for #2)


2. Non-assertion. As copyright holder, Oracle will change Sun’s current policy and shall not assert or threaten to assert against anyone that a third party vendor’s implementations of storage engines must be released under the GPL because they have implemented the application programming interfaces available as part of MySQL’s Pluggable Storage Engine Architecture.

A commercial license will not be required by Oracle from third party storage engine vendors in order to implement the application programming interfaces available as part of MySQL's Pluggable Storage Engine Architecture.

Oracle shall reproduce this commitment in contractual commitments to storage vendors who at present have a commercial license with Sun.

As explained above, Oracle had mostly misunderstood why ordinary MySQL customers were opposed to or worried about the acquisition. As such, the big focus was on storage engine partners of MySQL, who admittedly might be affected by the GPL license of MySQL server codebase - so everyone seemed to agree. Also from a market competition standpoint there were several 3rd party engines who at the time seemed to be potential challengers to the highest end of Oracle's database business, such as Data Warehousing or Active-Active clustering.

Hence also the first 3 commitments are targeting questions related to storage engine vendors. Even if that was a very tiny part of MySQL's business, to those vendors these commitments seem like quite significant. Essentially Oracle granted a 5 year exception to any GPL requirements that might arise, essentially allowing storage engine partners to even discontinue paying Oracle anything at all, should they wish to do so.

To my knowledge Oracle has kept these commtiments. These commitments were also somewhat legally binding. Even if the EU was not a party to them, they were issued in writing - prior to EU approving the acquisition - to each storage engine partner individually.

On the other hand if we look around, we can also observe how useless even these superficially significant commitments were. The point was always that Oracle's mere ownership of MySQL already was enough to kill the momentum in the nascent storage engine market, even if Oracle didn't kill MySQL and even if it made these rather significant commitments. Storage engines no longer with us include: Kickfire, Primebase, InfiniDB. I think ScaleDB is formally not dead, but it is still in beta, just like it was in 2009. Infobright is still alive, but I don't hear about it much and it remains smallish. The only engine still with some momentum left seems to be Tokutek, who has a double play with also offering the same engine in the MongoDB ecosystem. (My understanding is that gives them more momentum than the MySQL market, but I have no real data on that.)


3. License commitment. Upon termination of their current MySQL OEM Agreement, Oracle shall offer storage vendors who at present have a commercial license with Sun an extension of their Agreement on the same terms and conditions for a term not exceeding December 10, 2014.

Oracle shall reproduce this commitment in contractual commitments to storage vendors who at present have a commercial license with Sun.

If storage engine partners wanted to continue buying a commercial license from Oracle, they could continue for the next 5 years on the same terms as they had in 2009. Given that prices tend to go up - especially if you were acquired by Oracle - this too was a significant commitment.

There's a funny back story to this commitment. After making this commitment, Oracle later found out that that Sun actually had been paying one of the 3rd party storage engines to cover its R&D costs. This meant that instead of committing to retain a certain price level for money paid to Oracle, it seems Oracle had now promised to continue paying for another 5 years of R&D of an engine they of course had absolutely no interest in, as Oracle already owned InnoDB, the most popular MySQL engine.

In this case Oracle lawyers also took this commitment seriously, they continued to pay for this unnecessary R&D for another year. However, when the next renewal came up in 2011, Oracle's lawyers apparently had a change of heart, and stopped doling out free money for no good reason.

My opinion (as you'll see further down) of these commitments was always that they were hastily written by people with very little understanding into the actual MySQL business. This particular case demonstrates that quite well, Oracle made this commitment without being aware of the particular contracts existing between MySQL and its storage engine partners. Nevertheless I have some small amount of respect for Oracle then sticking to that commitment - which caused Oracle to pay the partner - for another year. Otoh, to earn my full respect I would have wanted to see Oracle continue to renew those payments for the full 5 years!

Verdict? This was a significant commitment and in following it Oracle even went beyond what a reasonable person like me would have expected from them, but still, if taken literally, didn't actually 100% follow through on this one.


4. Commitment to enhance MySQL in the future under the GPL. Oracle shall continue to enhance MySQL and make subsequent versions of MySQL, including Version 6, available under the GPL. Oracle will not release any new, enhanced version of MySQL Enterprise Edition without contemporaneously releasing a new, also enhanced version of MySQL Community Edition licensed under the GPL. Oracle shall continue to make the source code of all versions of MySQL Community Edition publicly available at no charge.

Personally I never doubted Oracle wouldn't continue to release some kind of Community/GPL version of MySQL. But many people had fears around this, and lets face it, almost every other open source project Oracle got from Sun actually was discontinued one way or another. So in that context, this was a significant commitment. Bonus points for committing to publishing the source code, which is not a requirement of the GPL - people seem to often miss this.

This is my favorite commitment due to the inclusion of a commitment to release a version 6! It's a completely trivial commitment, you could just release whatever and put the required version number on it.

Perhaps more than any of the other commitments, this one demonstrates how little Oracle truly cared about these commitments. While it is true that Oracle has continued to make several great MySQL releases over the past 5 years, they didn't bother to actually release a version 6! Oracle released 5.5, 5.6 and development snapshots of an upcoming 5.7, which were of good quality and with long lists of compelling features. But nobody remembered to increase the version number to 6.0.


5. Support not mandatory. Customers will not be required to purchase support services from Oracle as a condition to obtaining a commercial license to MySQL.

This was a very odd requirement. The whole point for an open source company is to sell support. Probably this addresses some complaints of Oracle's own business model, where they extract high annual maintenance fees from their customers - the Oracle tax.

I have no information on whether Oracle has kept this commitment, or whether any customer even has asked for buying a license without support.


6. Increase spending on MySQL research and development. Oracle commits to make available appropriate funding for the MySQL continued development (GPL version and commercial version). During each of the next three years, Oracle will spend more on research and development (R&D) for the MySQL Global Business Unit than Sun spent in its most recent fiscal year (USD 24 million) preceding the closing of the transaction.

This complements commitment #4.

To my knowledge, Oracle has increased the head count in MySQL R&D. Especially the additions to a Q&A team have made a difference.


7. MySQL Customer Advisory Board. No later than six months after the anniversary of the closing, Oracle will create and fund a customer advisory board, including in particular end users and embedded customers, to provide guidance and feedback on MySQL development priorities and other issues of importance to MySQL customers.

(See answer #8)


8. MySQL Storage Engine Vendor Advisory Board. No later than six months after the anniversary of the closing, Oracle will create and fund a storage engine vendor advisory board, to provide guidance and feedback on MySQL development priorities and other issues of importance to MySQL storage engine vendors.

These two commitments again illustrated to me that they have been hastily written without the involvement of people who actually knew anything about the MySQL business. (And it always confused me back then why Oracle would spend months arguing with the EU Commission without giving more influence to people actually part of MySQL.)

The reality was that MySQL of course had both a Customer Advisory Board and a Storage Engine Advisody Board way before 2009. The ignorance of Oracle proposing to create new advisory boards just further underlined that these commitments were just a PR stunt written by people who couldn't care less about MySQL.

I can only assume that the Customer Advisory Board has continued to be active through these 5 years, as it's of course a corner stone of product management for MySQL.

As for the Storage Engine Advisory Board, my memory is like this: in 2010 it was held with much fanfare. In 2011 no invitations were sent out, until Paul McCullagh publicly asked about it and Oracle quickly put one together again. (I suspect Paul just wanted a free trip to California, no?)

To the best of my knowledge no Storage Engine Board happened in 2012 or 2013, but late in 2014, shortly before the expiration of this 5 year period, it was suddenly reconvened. Updated: I'm informed that the storage engine board actually did meet each year, just with less publicity. Here's a public reference from 2013 that I have missed at the time.

So despite the ignorant way how (also) these two commitments were originally written, Oracle did act 100% as promised on these points. Time will tell whether Oracle's interest in customers and storage engines will continue also in year 6, now that these 5 year commitments have been fulfilled.


9. MySQL Reference Manual. Oracle will continue to maintain, update and make available for download at no charge a MySQL Reference Manual similar in quality to that currently made available by Sun.

When Oracle put forward the "MySQL is Open Source so it doesn't matter" argument, an obvious counter argument was that not everything was open source. And in particular the manual wasn't. Oracle didn't promise to make it open source (which would have been rather surprising) but instead promised to keep the manual as it was. In a way that was frustrating for someone like me who was "on the other side" (formally as a competitor in the database market, although MariaDB at the time was just a fork on launchpad, I think we barely had made some beta release!), because this commitment simply meant that Oracle promises to keep doing what we didn't like! It wasn't quite the reassurance the press release was supposed to bring. But on the other hand it's of course not Oracle's fault that the MySQL manual is and always was kept proprietary. For that we can thank predecessors to Oracle.

Oracle has kept this commitment.


10. Preserve Customer Choice for Support. Oracle will ensure that end-user and embedded customers paying for MySQL support subscriptions will be able to renew their subscriptions on an annual or multi-year basis, according to the customer’s preference.

This seems to me like another odd commitment, added just to make the list an even ten. But possibly there had been some customer worries to the EU Commission that this is addressing.


The geographic scope of these commitments shall be worldwide and these commitments shall continue until the fifth anniversary of the closing of the transaction.

Happy anniversary!

It seems that you do not know that there was a MySQL 6.0 back when MySQL was not yet acquired by Sun Microsystems. It went nowhere. Parts of it were merged (in more or less rewritten form) to MySQL 5.5 and 5.6; maybe even to 5.7. For example, the online ALTER TABLE API in MySQL 5.6 shared some common ideas with what was in 6.0. Likewise, the Index Condition Pushdown was part of the 5.6 release. For ICP, there existed a broken InnoDB implementation in MySQL 6.0 that had been coded by some Optimizer developers without any coordination with InnoDB developers. I cleaned it up. For the online ALTER TABLE, there was no InnoDB implementation.

I do not know what we will release after 5.7. But several people have several times pointed out that it cannot be 6.0, because 6.0 already existed in the desperate Falcon times.

Hi Marko

Not only do I know of MySQL 6.0, I personally have met everyone on the Falcon team and the MySQL managers of the time, the combination of which IMO was the reason 6.0 never completed. When I was at MariaDB we too backported a lot of code from the dead end that was MySQL 6.0.

I ommitted it for brevity, but yes, already in 2009 I too was thinking that probably there will never be a 6.0 release for this reason, and it seems you'll agree. That's why for all of these years I remembered that particular commitment so clearly, I was always curious to see what the next version number would be, and to this day it was never 6 :-)

The storage engine commitments were fairly useless - that wasn't Oracle's fault per-se, the arrangements available were already useless prior to that.

It required a large and repeated outlay of $ to participate, essentially blocking any engines that weren't backed by a sizable company. Since some of the coolest engines weren't company-backed, they missed out.

PBXT fortunately got some special consideration/funding at the time.

The reason it's relevant is because you can't just compile an engine and have it work with stock MySQL. Unless it's compiled in the same tree with the exact same build environment, it's probably going to blow up. Basically the ABI is not clean - Antony Curtis talked about this in great detail.

The combination of that technical fact combined with the above means that many very useful engines are now just missing from stock MySQL.
Luckily MariaDB has adopted quite a few, including my own OQGRAPH and others. Which is great. Just not ideal.

HI Henrik,

I am not sure I can follow your logic re the 11th commitment and the GPL.

As you know, the MySQL business has always been divided in two areas, Enterprise and OEM customers.

Enterprise customers were end users of the database and they could freely use GPL software.

OEM customers were traditionally commercial SW resellers that had to buy a non-GPL license if they wanted to keep their product closed source. I vaguely remember that one of the MySQL customers interviewed by the EU was an OEM customer.

So, there was no wrong interpretation from Oracle, nor from the EU.

Thanks!
-ivan

Hi Ivan

Actually there were lots of OEM customers that complained to the EU for this very reason. However in the end only Ericsson turned up for the hearing in Brussel, in support of Oracle. Nobody was there to complain about Oracle. This is because once Oracle got to see the evidence of who had complained, they contacted each one of them and talked them out of it. (What arguments were used I don't know, although one such OEM customer did make some between-the-lines comments...)

As for the logic, Oracle's argument is that apart from a few exceptional cases (mostly storage engine vendors), the vast majority of OEM customers are free to use the GPL license even if their application is closed source, since the application clearly is a separate work from MySQL and uses standard interfaces like JDBC to access a database. Oracle was supported in this argument by Carlo Piana, and indirectly by Eben Moglen. Although the SFLC statement filed by Eben was quite confusing and mostly avoided saying anything meaningful in this regard (but crucially, didn't contradict it either), so I don't know if it's of much use to anyone.

Oracle's claim essentially is that the OEM customers, too, were paying MySQL purely voluntarily, because they wanted to buy support, or maybe just wanted a non-GPL license for other reasons, such as wanting an indemnification clause or warranty.

You might then say that this was definitively not what MySQL told its customers before being acquired by Oracle, however this is what Oracle explained to the commission, it's recorded in the proceedings, and they actually confirmed once at a later stage too: http://openlife.cc/blogs/2011/january/reposting-mark-schonewilles-blog-…

And if you think about it, MySQL was always very much alone in its interpretation of the GPL. There is nobody else I'm aware of that has made similar claims. Even MongoDB, which uses AGPL, no less, has a similar interpretation to Oracle: http://blog.mongodb.org/post/103832439/the-agpl

They would probably "do good" based on some definition of what some Oracle executive thought was good. For Oracle.

But yes, I fully believe the existence of competing forks has hugely affected Oracle's behavior. (Still, they occasionally did some stupid things like closing the bug database and some tests from the public - which they mostly hurt themselves with.) This is however relevant for an anti-trust investigation: The goal for an anti-trust authority like the EU Commission is not to force Oracle to become good, rather to ensure there is sufficient competition so that a) customers have a choice, and b) vendors usually have an incentive to "do good" compared to the competition.

About the bookAbout this siteAcademicAccordAmazonAppleBeginnersBooksBuildBotBusiness modelsbzrCassandraCloudcloud computingclsCommunitycommunityleadershipsummitConsistencycoodiaryCopyrightCreative CommonscssDatabasesdataminingDatastaxDevOpsDistributed ConsensusDrizzleDrupalEconomyelectronEthicsEurovisionFacebookFrosconFunnyGaleraGISgithubGnomeGovernanceHandlerSocketHigh AvailabilityimpressionistimpressjsInkscapeInternetJavaScriptjsonKDEKubuntuLicensingLinuxMaidanMaker cultureMariaDBmarkdownMEAN stackMepSQLMicrosoftMobileMongoDBMontyProgramMusicMySQLMySQL ClusterNerdsNodeNoSQLNyrkiöodbaOpen ContentOpen SourceOpenSQLCampOracleOSConPAMPParkinsonPatentsPerconaperformancePersonalPhilosophyPHPPiratesPlanetDrupalPoliticsPostgreSQLPresalespresentationsPress releasesProgrammingRed HatReplicationSeveralninesSillySkySQLSolonStartupsSunSybaseSymbiansysbenchtalksTechnicalTechnologyThe making ofTransactionsTungstenTwitterUbuntuvolcanoWeb2.0WikipediaWork from HomexmlYouTube

Search

Recent blog posts

Recent comments