2009-10-24

The importance of the license model of MySQL or Can MySQL be killed?

In this blog post I will try to answer some of the most common questions I have heard during the last week:

A. Can MySQL be killed?

1. The easiest way to kill MySQL would be to not sell licenses any more or make their prices 'really high'.

2. Another scenario is that the development resources are drastically reduced in some important areas. Then people would stop believing in the future of MySQL, which slowly will kill the product. Especially if the present license is in place. (Remember that most of the development of the core of MySQL is done by the developers at SUN, not by a large community)

B. "But anyone can fork it!"

One can fork a GPL project (i.e. the code), but one can't easily duplicate the economic infrastructure around it.

MySQL is not an end user application, but an infrastructure project that is quite deep in the system stack. Most of the technology partners, where most of the innovation in the MySQL space happen nowadays, depend on being able to get licenses for MySQL so that they can combine their closed source application or closed code (like storage engines) with MySQL. If you take the license revenue and add it to all direct and indirect money that comes from these kind of partners, this is a huge part of the MySQL economic infrastructure (i.e., where the money is).

A fork of an infrastructure GPL project can't work with any of the above mentioned partners and the fork can't be used by anyone who needs to distribute it with their own closed source parts or use it with others closed source parts. If there would be no way for partners to combine their code with MySQL, these partners and users would have to put their efforts on some other project and the money flow and a big part of the innovation around MySQL would stop. Over time other projects that allow everyone to participate and make money will take over the MySQL business.

It's possible to create companies doing support for MySQL, but without the economics, there will not be enough money and incentive to pay enough for the development of MySQL to satisfy the requirement of all the MySQL users. Any such company will just make MySQL 'die slower', but not be able to save it.

The simple fact is that keeping a project like MySQL alive and having it compete with big vendors like Oracle, require many people working in it. If they can't get any revenue from doing that (except support revenue, which is not enough), you will find very few companies prepared to do development and extremely few (or none) investment company would put serious money on a company that gets all of it's money on services (not scalable).

Another thing, like Richard Stallman pointed out, is that MySQL is only available under GPL2 and can't be combined with GPL3 code. This means that new Free software projects that uses GPL3 can't use MySQL. This is a problem, but less severe than the problem of economics.

C. "Is GPL not a good enough license?"

I think that GPL is a fantastic license. It ensures that projects under the GPL are kept free. At the same time it allows companies that wants to participate in Open Source to make enough money to be able to develop the product full time. GPL ensures that these companies can keep tight control on the product and especially on their (closed source) technology partners. This is why investors are interested to invest in companies that use GPL; They know that no one can just come and fork the product and take everything away from company that holds the copyright to the code.

D. Conclusion

It's safe to assume that both Sun and Oracle understand this. This is why Sun bought MySQL for a high valuation and this is why Oracle doesn't want MySQL to be divested.

If it would be easy to take over MySQL by just forking it, Sun would never have bought MySQL and Oracle would have forked MySQL a long time ago instead of now trying to buy it as part of the SUN deal.

11 comments:

shefali said...

Thanks. It would seem like the classpath exception to GPLv2 applied to MySQL would address your concerns? Why wasn't that suggested by you as one of the possible "remedies" for the state of affairs that you envisage in your post. Perhaps, I am still missing something here?

Monty said...

GPL2 is only one concern, and a minor one. It would not solve any of the other issues that I mentioned in my blog and would not save MySQL from being killed over time.

Sheeri K. Cabral said...

Monty -- your facts are correct, given your assumptions:

MySQL won't have a large "enough" developer base if some company doesn't hire MySQL developers;

Oracle won't continue MySQL; (which is ridiculous, since they probably make the most money off MySQL, given what they charge for InnoDB hot backup)

Some other company that buys MySQL would continue it;

In order for MySQL to survive, there must be an economic infrastructure around "MySQL the database server".

Some people have already stopped believing in the future of MySQL, and are looking forward to using Maria exclusively or the Percona MySQL build exclusively.

People will develop software when there is a need to develop software. Mark Callaghan and the Percona folks have those needs, and have developed software. If many of the core developers on MySQL disappeared, it's very likely that others would develop on it and partially fill the void left by not having core developers at one particular company.

There are many for-pay software products that require MySQL. You buy the software and the instructions say "download MySQL". There are also commercial, third-party MySQL storage engines, which use a core MySQL and you pay for the additional storage engine.

Even Oracle's business depends a lot on the revenue generated from plugins and add-ons, and other companies thrive on third-party add-ons and plugins.

Whole businesses are currently using MySQL and turning a profit. Some are already turning some of their profit back into MySQL development. If needed, I believe others would follow.

With all the third-party software that uses MySQL, I believe it would be extremely hard to kill it just by losing the core developers on it now, even assuming they're lost forever and wouldn't continue to work on developing MySQL wherever they go next -- in the past few months, I've had several requests from companies looking for full-time employees that can patch MySQL.

Mike Hogan said...

I am glad to see that your perspective extends beyond MySQL proper to include the need for a rich and diverse ecosystem comprised of companies with different constraints, objectives and requirements. One big requirement for companies wanting to invest large amounts of time on a deep development effort is funding, and having your hands tied on the licensing or having your upside severely limited are excellent ways to scare off funding.

firestorm811 said...

I have used Monty's product since over 15 years ago. It was wonderful but I haven't used it for the past several years. Having full confidence (historically speaking) I had planned on using it on a new product launching next year. I tried to get the "community" version today and could not get the Sun website to give it up. Now I see why.



Here is how you kill MySQL. You cause people to lose confidence in it. Open source or not, people are not going to rely on something that they cannot trust.



Years before I used Clipper (the database program by Nantucket). Then it was purchased by CA and left to rot. Complete waste of an awesome database program language. It still survives in a marginal way but lost all of its great potential.



Sadly, I have decided, under current conditions I cannot rely on MySQL for our upcoming product and much as I regret it will probably be turning to a Microsoft Solution. Rather than investing on getting my team up-to speed with MySQL it will be Microsoft and once we are on that tract there probably will be no changing.



I am just glad that I am not one of the people who has a significant interest in a company that has been built around the availability of a good MySQL product.



Part of open source is so we don’t have worry about being hostage to a big corporation but somehow this has happened with MySQL.



Thanks for making MySQL available in the past. It was truly a work of art, useful and even fun. I hope that MySQL survives somehow regains user’s confidence.

Roger said...

Interesting points, but while all this "discussion" is going on Sun continues to lose money and value. Bigger concern would be whether Oracle just doesn't walk from this deal.

On the point on MySQL valuation. One could argue that this is one of reasons that Sun had to sell. Spending $1B on MySQL was viewed by many as a bad investment on Sun's part.

On the point of Sun messing up community downloads, don't see it. The MySQL site is still up and tons of mirrors are up. I don't think Sun has anything to do with shutting down mirrors.

To add some other opinions, I think that MySQL would and has suffered more under Sun's "stewardship". Killing the Oracle takeover because of this kills 2 brands - Sun and MySQL.

Monty said...

Answering Roger:

The European commission (EC) has not been opposed of the Oracle/Sun deal per say, only of the MySQL part. Oracle can at any point get the deal closed with the EC if they just drop MySQL. The fact that they have not done that even if they know that Sun is suffering and loosing money, shows that getting MySQL is a real important part of their reason to do the deal.

I don't think that it's in the interest of the global market to let big companies buy competitive business when their main benefit of doing that would come from shutting it (or critical parts of it) down.

My own estimate is that Oracle is loosing around $1B of profit/year because of deals either lost to MySQL or because of reductions in prices they have to give to customers when competing with MySQL; This is probably the biggest reason Oracle wants MySQL; To stop the competition between the products so that Oracle can freely price their own products and support offerings.

About Sun buying MySQL for $1B; Independent banks and some other companies had at the time valued MySQL AB to valuations not far from this one, so the sum was in the right ball park. When the deal was announced Sun stock rose more than what they paid for MySQL, which shows that the market agreed it was a good investment (at the time). What no one did know back then was the economic downturn that was about to happening the market and the length of the recession we are now in. Considering how well MySQL has performed economicly before and in Sun, it is probably one of Sun's best investments ever.

The issue with Sun and community downloads is a long story; The short is that Sun has tried to convert users to customers by not letting the community have access to the latest source, for which they have provided help and bug fixes. Instead they have had paying customers being guinea pigs for not properly tested or reviewed bug fixes. In my mind this is unacceptable and not how things are supposed to work with open source projects.

However, using this and other problems with Sun and MySQL development as an argument for that Oracle would be a better owner than Sun are not relevant. Sun have had a genuine (business and ideological) interest to keep MySQL alive. Oracle has in the same way a genuine interest to see MySQL die (or at least have no one sell MySQL licenses/services), so that it doesn't have to reduce prices anymore when competing with MySQL.

So the issue is not about killing the Oracle / Sun deal. It's about not letting Oracle to use the Sun deal as an excuse to get its hands on MySQL under the current terms and kill it. A straightforward solution would be for Oracle to sell MySQL to an owner without such conflicts of interest. If Oracle acquired it and decided not to develop and support it the way that someone else would, then there should at least be a structural basis that enables others from the community to take over. In the current GPL-based deal structure that would seem to be legally possible, but it wouldn't work from a business point of view and it wouldn't help all customers, so Oracle could effectively kill (or severely limit) MySQL.

MySQL either needs an owner free of a conflict of interests or one would have to try to structure a whole package of measures that ensure others can pick up the thread if necessary, not just in legal but also in business terms and with a view to all areas of use that are relevant for MySQL.

Monty said...

Answering Shefail:

Sorry for the delayed response. (I have been travelling). Thanks to Randy for reminding me about this comment:

An classpath exception would give other entities the right to link MySQL to their code without having to release their code as GPL. It would thus allow some freedom and some competition from companies linking MySQL with their application.

It would however not be enough to ensure that a project like MySQL can survive:

- A normal classpath exception would still not allow other vendors to extending MySQL itself (like storage engine vendors).
- It would also not solve the problem of the MySQL documentation (which is now proprietary), which is essential for a fork to be able to document their changes.
- We also need a solution to InnoDB, which is now owned by Oracle. Without including InnoDB in the solution there can be very little competition. (MySQL Ab / Sun have an agreement with Oracle that allows them to re-license InnoDB on favourable terms).
- Any remedies when it comes to exceptions or licenses needs to be in effect for all current and future code (for at least several years).

In addition, the MySQL trademark is so strong that it's hard to impossible for a fork to attract enough attention to be able to compete in a meaningful manner if MySQL would be owned by a vendor that refuses to cooperate and works against the fork.

When it comes to remedies, I have not speculated what the remedies that Oracle would have to do to get the European Commission to accept the deal. This is for Oracle to suggest and EC to accept or decline. Your thinking is right to the extent that a classpath exception (or other similar changes to the license regime of MySQL) would address some problems, but it doesn't solve all problems to ensure true competition in the MySQL/Oracle field.

justbrowsing said...

Can the MySql licensing terms be changed by Oracle to satisfy EU?

For example, to satisfy Stallman's
concerns:

a) change MySql licensing to allow forks from GPLv2 to GPLv3 etc

b) to license on reasonable terms other companies to distribute MySql without releasing their added code


Amazon's MySql offering will already ensure that MySql will live on forever, And Amazon's
will be the MySql champion that you are hoping for.

If Oracle agrees to b) above, would that be a fair compromise ?

llaith said...

With respect to Monty and the other posters, and not being any sort of expert on business strategies of Fortune 500 companies, I still find the arguments about Oracle wanting to kill off MySql for the benefit of Oracle as a bit simplistic.

I'm thinking that Oracles interest in the product has more to do with margins then anything else. Sure, the Oracle DB costs a great deal of money, but consider the investment in R&D for that level of power. If you *need* the full power of the Oracle DB (or it's competitors such as MSSQL and DB2) then you are going to pay that and be happy that you have something does the job. You probably won't be looking at MySQL (yes MySQL scales great - but in a different way from Oracle that isn't suitable for all the same types of work).

However, the truth is that most 'web applications' don't need that sort of power and would be happy with MySQL. What people who use MySQL are more likely to want (as I do) are excellent tooling (err.. unlike Oracle's flagship DB). So I'd think that Oracle plans to develop these, which do NOT require enormous investments in R&D and will also have a MUCH greater market then for their flagship DB.

If I was to guess their long-term strategy (aside from making a profit from support & tools) I would think that Oracle would be targetting MySQL at getting customers away from MS-SQL which has the admirable quality of being so easy to use (deceptively so even) that it serves a place in the Microsoft world of both MySQL and Oracle.

I'd guess that MySQL has two major developer communities that use the product, the LAMP and the Java developers. I think the LAMP developers are going to feel a bit emotional about this issue, whereas the Java developers (who are far more used to paying for Oracle) are likely to see it as a good move.

For myself, as a user of both, I'm cautiously optimistic about the takeover.

Anonymous said...

You are one of the creators of MySql and you have your own "fully compatible" yet "improved" version.

How is that not proof that Oracle can't kill MySql? What company that needs MySql -- is unable to then use your product instead?