Open core or dual licensing? The example of MySQL
by Richard Hillesley
It has been suggested that Oracle might be planning to move MySQL away from dual licensing to an open core model. Richard Hillesley takes us through the arguments, and the pros and cons of these different models.
Projects do not thrive when there are ambivalences and ambiguities around the ownership of the code that makes up the project, as can be seen from the fallout among the various projects that Oracle inherited through its purchase of Sun Microsystems.
The problem is not restricted to ownership of the code per se, but manifests itself in a lack of transparency around the future direction and licensing of the code. Devices such as dual licensing, copyright assignment and Community Licence Agreements (CLAs) can have unintended consequences; they can strip away the clarity of a project's purpose and act as a disincentive to the sense of community that is the lifeblood of an open source project.
The latest manifestation of this phenomenon is the claim by Monty Widenius that Oracle is moving MySQL, which has been available for many years under a dual licence, to an "open core" model of development.
Oracle has added proprietary extensions, a thread pool, Oracle VM, Windows clustering, and external Windows and PAM authentication support to the proprietary release of MySQL, using previously available APIs.
These proprietary offerings are not available to users of the GPL version of the code, although Widenius claims that "the most important feature, the improved thread pool, is easily duplicated" and will be available in MariaDB, the fork of MySQL of which he is the lead developer.
To the core
An open core product is one in which part of the code is released under an open source licence, but key parts of the code retain a proprietary licence. The code is open source at the core and is developed in cooperation with the community, with a proprietary shell or plug-ins, which differentiate the commercial package from the freely downloadable version.
For the most part, open core licensing has been the province of venture capitalist funded start-ups who have hoped to benefit from an influx of developers, or hoped to gain something from describing themselves as "open source" as a competitive differentiator.
The benefits go to the vendor, who reaps rewards from the developer community, but the "commercially available extensions" are not available to the community except under a restrictive licence.
Widenius elucidates the problem succinctly: "What is most important to understand about an open core project is that it has nothing to do with an open source project. If you are depending on a single closed source component then you have to regard the whole project as a closed source project as you lose all the benefits of open source."
Strictly speaking, Oracle's add-ons to the proprietary Enterprise Edition of MySQL are not open core as they are GPL-compliant and use publicly available APIs, but the effect is the same, and they break with the MySQL tradition of equilibrium between the proprietary and free versions of the code.
Widenius says that MySQL considered moving to an open core model shortly after its purchase by Sun but "this initiative was quickly killed by Sun's management" who understood "the true value of MySQL as an open source project..."
As Widenius tells it: "One of the reasons MySQL AB did not need an open core model for its business was that since MySQL is an infrastructure product that is easily embeddable into other products, we could sell licenses to those who wanted to embed MySQL into their product but did not want to make their product open source. (Dual licensing)."