The save-mysql-campaign is a success thanks to you. Oracle have had to come out with some public promises.. This is an encouraging start, which shows that we are on the right track, but we have to keep the pressure up! Thanks for the help so far, but please continue contacting companies to send emails to the European Commission (EC). The battle is not over yet!
In this blog I will analyse point by point what Oracle is really offering.
Before we go into details, what one has to understand is that Oracle can afford to employ the best lawyers on the planet and, as the Oracle/Sun/MySQL deal is a big and important deal, we can safely assume many professionals have worked on those MySQL promises. We can safely assume that there are no 'mistakes' or oversights in the commitments. They are drafted to show the maximum of what Oracle would be prepared to do for MySQL. From the scope and the limitations of this we can deduce what their future plans for MySQL most likely are.
The most significant fact is that everything is limited to 5 years. After that period Oracle is free to do anything, including to stop developing an open source version of MySQL. After five years, Oracle can demand storage engine vendors to buy licenses or publish their products under GPL for things that are already shipped and/or any future shipments with old versions of MySQL.
The other significant fact is that Oracle didn't formally file the promises as remedies with the EC but only issued a press release. This means that they are not legally binding. There is no mechanism put in place to ensure that Oracle is following them and if Oracle is not following them, there is nothing that can be done about it (if the EC now says it could revoke its approval of the deal, that's not realistic). This also shows total lack of respect for the European regulatory procedure and that Oracle prefers to do a public battle instead of really solving the problem and going through a market test in which customers and competitors have a chance to tell the EC what they think.
So let's go over Oracle's MySQL-related promises one by one.
"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."
No change from the past. However, as we will see later, there is no incentive anymore for third party vendors to develop storage engines, so this promise doesn't mean anything.
"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."
This looks at first sight like a nice promise, but it's in fact an empty promise per se (only the resulting contracts would be binding, but there's no assurance anything useful will come out of it) and, even worse, a promise with a hidden agenda.
The Storage Engine API is pretty new and far from finalised. Most storage engine vendors are extending and working around the officially documented API in various ways, so they asically have to be forkers in addition to using the API. Most advanced storage engines also use other pluggable API's in the server. The way Oracle's promise is written, it doesn't really apply to any of the commercial storage engines.
As this is a non-assertion not to sue, not an exception, Oracle can after 5 years stop all storage engine vendors from distributing any new copies of their software, both for old and new versions of MySQL.
This will put the storage engine vendors in a tricky situation: They cannot get any investment money for lack of a long-term perspective and as their products in many cases only work with MySQL, the only company that could buy them is Oracle and Oracle would be the one that would set the price for the company (no competition).
As most of the closed source storage engine vendors can't afford to release their engines only under the GPL (they can't survive on support alone), this will kill their incentives for developing their engines further.
Combining this with no commitment to continue selling commercial licenses or with a fixed price for these licenses, the closed source storage engines can't work with big application vendors (as these can only use MySQL under the GPL, which is usually not a viable alternative for them).
This promise also doesn't give any protection for closed source plug-ins or closed source applications that are embedding or using MySQL.
It's also unclear inhowfar this promise applies to any extension to the API that storage engines vendors or forks may do.
If Oracle had honest intentions, this promise would not have been done as a non-assertion but via an exception that would be tied to code for each release of MySQL and would be perpetual and irrevocable for each version released on that basis.
"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."
This just emphasises that after 5 years, the gloves are off and storage engine vendors have to negotiate new terms with Oracle, at Oracle's mercy.
Looking how the current promises are written and considering that most of the storage engines are competing with Oracle, I would not like to be in the storage engine vendors' shoes after December 10, 2014. This looks like a long time but if you have to invest for the long term, it's soon enough to stop investing now (more or less).
By limiting the promise to those who "at present have a commercial license with Sun" Oracle keeps all options open with respect to any new commercial licensees. So they want MySQL to continue to live in the past and not to have a secure future with new partners of all sorts.
"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."
Notice that Oracle DOES NOT promise that the code for the Enterprise Edition and the Community Edition will be the same, as it has so far always been for MySQL. There is also no promise that the Enterprise Edition will be available under GPL (which is the case today).
It was brought to my attending that in MySQL 5.0 (and only for this version), the community edition was slightly different in that it had more features (SHOW PROFILE) than the Enterprise Edition. The important part is that in no version the Enterprise Edition had more or different features than the Community Edition. Sorry for forgetting this.
I think this is a clear indication, or almost an announcement, that Oracle will start adding either closed source extension to the Enterprise Edition or start developing it in a separate code tree and with a completely new feature set.
This would be bad for open source users of MySQL and would make it VERY hard for a fork to be compatible with the Enterprise Edition.
By focusing most development on the Enterprise Edition, Oracle would over time decrease the interest in the Community Edition and be able to turn MySQL into a closed source database that they can price any way they want and this way ensure it doesn't compete with Oracle's other offerings. They could do this in practical terms during the five years and after the five years even formally.
MySQL 6.0 is already available under GPL, so no change in this respect either.
"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 is no change from current practice. However, as there is no commitment for the price of commercial licenses and Oracle can thus rise prices significantly any time, this is an empty promise.
"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."
The previous spending on R&D was 24 million at Sun and an estimate of 30-80 million done outside of Sun (storage engine vendors, closed source extensions and plugins and not to forget the work that has been done by the MySQL community).
Under these commitments, there is very little incentive for the R&D outside of Sun to continue so in fact the spending on R&D on MySQL will significantly decrease over time.
Oracle has not specified where the money will be spent. My assumption would be that a major part of the spending would go to a closed source MySQL Enterprise addition and thus has very little value for the open source community. Since commercial customers also need the community version to be powerful (the two types of customers really depend on each other), they would also be affected very negatively.
There are no guarantees that the spending in engineering would be directed in areas where MySQL challenges Oracle's own database (such as ERP applications). They can do any number of things because databases are a huge field without those things really meaning competition within Oracle.
"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."
There is already a MySQL Customer Advisory Board. As there are no commitments as to what influence the Board will have (on which issues it would advise and on which one it would decide, with other things such as appointment rules and voting procedures missing as well), this is an empty promise.
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.
There is already a MySQL Storage Engine Vendor Advisory Board. As there are no commitments as to what influence the Board will have (on which issues it would advise and on which one it would decide, with other things such as appointment rules and voting procedures missing as well), this is an empty promise.
"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."
Sun is already providing a MySQL reference manual free of charge.
What is important here is that Oracle has NOT addressed one of the major complaints from the community, which has repeatedly asked to get the manual licensed under a permissive license as without a manual even a trivial fork (such as by a storage engine vendor) is almost impossible to do.
"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."
As this is the main thing that other companies can compete with Oracle on, it's clear and logical that they will continue to do this. Even if they stopped it, they couldn't prevent others from providing this particular service.
"The geographic scope of these commitments shall be worldwide and these commitments shall continue until the fifth anniversary of the closing of the transaction. "
5 years, or any other limited period of time, is not satisfactory and customers and partners would immediately looe interest in MySQL with this promise.
The only workable solution would be binding commitments with perpetual effects and on an irrevocable basis, which is not what Oracle has offered!
- Oracle is apparently planning to split MySQL Enterprise and MySQL community code bases and most likely concentrate most development only on a closed source version.
- There will be significantly less money spent on MySQL-related R&D than before!
- Oracle has not offered a solution for ANY closed source applications, like storage engines vendors, plugins or applications using MySQL.
- Oracle has not offered anything important that would give forks a better basis to start from, even though Oracle said in the whole process that forking would be a solution.
- Oracle has not listened to the complaints from the open source community, storage engine vendors or applications vendors and is not giving them ANYTHING they have asked for. Some of these things can be found here.
- Oracle's promises that relate to commercial licenses are limited to those who "at present have a commercial license with Sun". So they want MySQL to continue to live in the past and not to have a secure future with new partners of all sorts.
- Oracle is trying to win the case through press releases and public pressure instead of really eliminating the European Commission's concerns. They show no respect for the European authorities or how we do things here. Oracle just want to dictate their own terms and expect us to accept them on face value.
From this I conclude that Oracle CANNOT be trusted as an owner of MySQL and we have to continue our battle against the MySQL part of the merger to ensure that MySQL will continue to be free and available for all, forever, on a reliable basis and with real innovation happening!
We have clear indications that our worldwide petition and our campaign of sending emails to the EC and is having an effect. Please continue to find users of MySQL and get them to send a letter to the Commission! Spread the word through all channels. We can still save MySQL!
EXPLAIN FORMAT=JSON: buffer_result is not hidden!
18 hours ago