2010-06-30

Midsummer and Oscon

I was spending my Midsummer holiday again in the nice Finnish archipelago of Biskopsö, Nagu together with 30+ friends. As always there was a lot of good food (Fish first, meat later) and lot of drinking (Snaps (in various forms, including Salmiakki), beer, wine and Cognac).

What was new was that we had Felix Schupp, from blackray as a guest with us.

As a proof that we also know some other drinking song than the (in)famous "Helan går", we did sing for Felix a drinking song targeting database users:

To be sung to the music of 'Yesterday':

Yesterday,
All those backups seemed a waste of pay.
Now my database has gone away.
Oh I believe in yesterday.

Suddenly,
There's not half the files there used to be,
And there's a milestone hanging over me
The system crashed so suddenly.

I pushed something wrong
What it was I could not say.

Now all my data's gone
and I long for yesterday-ay-ay-ay.

Yesterday,
The need for back-ups seemed so far away.
I knew my data was all here to stay,
Now I believe in yesterday.


I hope to see many of you in Oscon again, which will take place 19-23'th of July in Portland. I will be there talking about MariaDB, enjoying some bottles of black vodka with like minded people and maybe, if we can find someone that can lead the singing, participate in singing about lost backups...

2010-05-25

Redefining Database Support

Support for databases has generally been available only per server/year support contract where one has to pay for all master and slaves one has to get support contract for the few needed machines. In some cases one has even to pay per CPU (or core), even if you are not using all CPUs/cores for the database server. There have been a few exceptions, but there have usable been limits depending on company size or offerings that are only available for the first year.

What is wrong with server/year, for larger database installations is that you are also paying for database servers for which you don't need or want support. The value of the offering is thus worth much less than what you are paying for it.

The same way that MySQL® changed the price ballgame in licensing, Monty Program Ab is now doing the same for support with our newest offering; MariaDB Unlimited Support Subscription ("Unlimited" below).

For a introductory price of only US$36,000, we offer 24/7 support for all your MariaDB and MySQL® database servers. We call it "Unlimited" because the price is not dependent on how much you use MariaDB/MySQL®, how many servers on which you deploy MariaDB/MySQL®, the number of CPUs or cores you have in your systems, your company size, the number of beers you happen to have in your refrigerator, or any other arbitrary number you might find in other support contracts.

The support offering also includes things like monitoring tools, knowledgebase articles and some non-support development engineering.

You can also attach add-on services like Backup, Proactive support and support for community storage engines. For a full description of the Unlimited offering, please refer to our FAQ page.

You can, of course, also buy normal server/year support contracts from us. Information about this also exists on the FAQ page.

What is unique with Unlimited compared to all other MariaDB/MySQL® support offerings is that it's backed by the creator, original core developers and architects of MySQL® and MariaDB. Monty Program Ab is also the company that has most competence in all MySQL/MariaDB code. If you want to be sure that you can get a patch/binary to fix your bugs and that your wishes are taken into account for future MariaDB versions, the Unlimited support offering is what you need.

A part of the subscription money is also given back to the community developed parts of MariaDB, like XtraDB or PBXT, to ensure that they can continue their development of integral parts of the MariaDB ecosystem.

You can order/examine the offering in detail, from our order page.

Sorry if this post sounds like a commercial. However, everyone here at Monty Program Ab is very excited about this offering. We think it's an excellent value for the money for most bigger MySQL®/MariaDB users, and it will help us to continue develop MariaDB in the ways our users and customers want. We are also giving back to the community upon which we depend.

By subscribing to the MariaDB Unlimited Support subscription, you are ensuring that your current investment in MariaDB/MySQL® is secured, as the money we earn is put into future MariaDB development.

2010-03-18

Time flies (one year of MariaDB)

It is now one year since a few colleagues and I left Sun to start our own company, Monty Program Ab (after which more have joined). A lot has changed during the year. For instance we ended up producing a full fork of MySQL rather than focusing on the Maria engine as I planned a year ago.

This February we released the first stable version of MariaDB, version 5.1.42, which is our enhanced and backwards compatible MySQL branch/fork. You can download it from the askmonty.org website. Please test it out and comment upon it here or on Launchpad, the code host for the MariaDB project.

The vision for MariaDB is for it to be user and customer driven, as well as more inclusive of community patches and plugins. The 5.1 release already contains, in addition to patches from the community, some features that were sponsored by customers, and wouldn't have happened without that. For instance, Sergey Petrunia recently blogged about a feature we call table elimination that optimizes certain joins by not reading some tables if the information can be inferred from the other table(s). (We've since learned that PostgreSQL 9.0 adds a similar optimization but calls it "join removal"; Oracle 11g also offers table elimination.)

Because of the vision, the roadmap is never set in stone, but will be influenced by user demand, what patches are produced by other developers or what projects customers want to pay for.

I'm planning to spend some time between April 6-21 (right before and after the O'Reilly MySQL Conference) meeting with important MariaDB/MySQL users to define features for the future MariaDB roadmap so that for the next release we can deliver what the MySQL/MariaDB users really want and need.

If you are on the east or west coast of the USA and you think there is something we could do together on MariaDB or MySQL, let me know about your needs at sales@askmonty.org so that we can arrange to meet. I'm especially interested in meeting if you are interested in purchasing some MariaDB/MySQL development to cover your own needs, if you are planning to develop some code of your own that could be contributed to MariaDB, if you want to secure your MySQL investment, or if you want to have advanced end user support backed by the original developers and creators of MySQL.

In MariaDB 5.1 we were able to include a lot of existing work that's been available in the community, such as the PBXT storage engine which is well known and has been RC quality for months already, FederatedX to replace the old MySQL Federated engine, and several patches from Percona and others that add statistics here and there. We also use Percona's XtraDB as the default InnoDB version, which means the InnoDB performance is equal to or better than the InnoDB plugin and the beta versions of MySQL 5.4/5.5.

Since all of this code has been "out there" and even in production for a long time, we believe MariaDB 5.1 is a good and stable product, and brings to you many interesting features now finally in a stable (GA) release. As MariaDB 5.1 is a drop in replacement of MySQL 5.1 (no recompiling of clients or conversion of data is needed) it's trivial to upgrade to MariaDB.

In early March the core developers met in Iceland to plan for the next few MariaDB releases. All MariaDB plans are public, so you can follow and even contribute to them on the askmonty.org wiki: 5.2 plan, 5.3 plan.

For the 5.2 release the focus is still on including remaining existing patches and possibly a few new storage engines.

For 5.3 the optimizer team is focusing on backporting and completing features and optimizations that were left hanging in the cancelled MySQL 6.0 source trees. The MariaDB 5.1 release already contains the "table elimination" I discussed above. When the work for 5.3 is done, MariaDB will finally support the subqueries and JOINs that today are supported on a syntax level, but in practice yield poor performance in some common cases.

Sergei Golubchik is continuing his mission to make the server more pluggable and recently finished a pluggable authentication api (planned for MariaDB 5.2 and also contributed back to MySQL). Kristian Nielsen (the original creator of the Pushbuild system that is used internally for MySQL automated testing) and Hakan Küçükyılmaz are working on further automating MariaDB QA. Much to Kristian's satisfaction, this system is now fully open source and based on Buildbot. Kristian is also working together with Robert Hodges (Tungsten), Seppo Jaakola and Alex Yurchenko (Galera) on a new pluggable replication API. We hope that through this work MySQL replication can take another leap forward, something I've seen many bloggers hoping for.

I hope that you now have a good high level picture of what is going on in MariaDB. If you have comments you are welcome to join the Maria discuss mailing list or #maria on Freenode IRC.

We at Monty Program Ab hope to meet many of you at the upcoming O'Reilly MySQL conference. Almost everyone at Monty Program Ab will be there, holding keynotes, talks, sessions, BoFs (look out for the black vodka) etc. You will, of course, also find many of us at our booth in the Expo hall.

2010-02-21

Investing in an open mobile development platform

The mobile world is changing. It's changing faster than the database world did back when MySQL was started and grew to be one of the most widely used database in the world.

Change brings turbulence and it's difficult trying to see the big picture to find the major trends. It also means different philosophies of doing things clash and fight for survival.

There are two large debates at the moment around mobile. One is about open versus closed platforms and the other is around native applications versus web based. One of them is an important philosophical issue, the other one a more technical question of the best way to bring a good user experience to mobile.

The success of the iPhone and the App Store has meant a huge leap for both mobile applications and mobile web. But the iPhone platform is closed. The entire ecosystem is controlled by one company.

On the Internet it's (somewhat) safe to say that the philosophy of open is winning. In fact, open is at the very heart of what the Internet is. As we are moving over to a world where Internet access predominantly is from a mobile device, do we want this to be an open world or a closed one controlled by one company?

This is a very important question for the future of mobile - and the Internet at large!

There's certainly room for both native applications and web based ones in the mobile world. But is it of outmost importance that the platform that grows to be the dominant one for native applications is an open one.

This is why I am now using an Android phone (Hero from HTC).

That is also why I chose to invest in the Swedish cross platform and open source tool for mobile development: MoSync. In this company I see the same potential as the early days of MySQL.

If you are developing a mobile application that you want to work on practically all mobile phones, you should definitely check MoSync out!

2010-01-18

Invitation to test MariaDB 5.1 release candidate

We have now released MariaDB 5.1.41 RC for download and testing. You can download it here. It should be a drop in replacement for any recent MySQL 5.1 release.

We currently have tar archives available and we should have many package formats available shortly.

MariaDB 5.1 is based on MySQL 5.1 codebase, which has been GA for a year now. Most of the things we have included in addition to the vanilla 5.1 code upstream from Sun/MySQL (more on this below) have also been available in the community for quite a long time, so we are quite confident that this is a very stable release; however, being conservative we have had a four month Beta cycle before now going to RC.

I would now like to invite everyone in the community to download and test this release, and if the feedback is good will we then rapidly release a Final release.

On the Askmonty website you can find more information about what's included in MariaDB 5.1. But here are some highlights:

Storage engines

XtraDB replaces InnoDB so you get the Google and Percona enhancements built-in, no need to load it as a plugin. Basically this gives you most of the performance of the upcoming MySQL 5.4 today.

PBXT is included, I'm really happy that this interesting engine finally can get wider adoption thanks to being included and fully supported in MariaDB.

FederatedX by Patrick Galbraith and Antony Curtis is included. This replaces the old Federated from Sun which is not actively maintained by anymore.

And then of course we have Maria, which finally brings you MyISAM users crash safe tables.

Other highlights

The pool of threads feature is based on code from the canceled MySQL 6.0 release. This is good if you have lots of connections to your database and/or you have many short lived queries.

Table elimination is a feature done for a Monty Program customer, that optimizes certain kinds of joins.

In our effort to actively include all the patches floating around in the MySQL community, we have in 5.1 included Microslow and Microsec process patches from Percona. In 5.2 we will continue to include similar patches, there are still many of them floating around the MySQL community that have not yet found their way into a GA release.

We have also done speed improvements, fixed a lot of bugs, added extensions and added more information in the logs.

Please provide your feedback to the maria-developers@lists.launchpad.net list or join us on the #maria IRC channel on Freenode. The more testers we get the faster we can release a final version!

2009-12-28

Help keep the Internet free

A big part of the Internet is built on LAMP (Linux, Apache, MySQL and PHP/Perl/Python). Now Oracle is trying to buy Sun, which owns MySQL.

It's not in the Internet users interest that one key piece of the net would be owned by an entity that has more to gain by severely limiting and in the long run even killing it as an open source product than by keeping it alive. If Oracle were allowed to acquire MySQL, we would be looking at less competition among databases, which will mean higher license and support prices. In the end it's always the consumers and the small businesses that have to pay the bills, in this case to
Oracle.

Thanks for all the help in the first Save mysql effort. The blog got hit by more than 60,000 users and we where able to generate an approximate number of 10,000 emails to the EC. New answers are still coming in. Of the answers 0.7 % says "I trust Oracle". The rest 99.3 % says that they don't trust that Oracle would be good owner of MySQL.

We have got an indication that this is making a difference within EC, but we don't want to take any chances. We need to counter BOTH the about 400 Oracle customers that Oracle has persuaded to contact the EC AND the political and public pressure Oracle is putting on EC.

This is why we are now launching a world wide campaign in several languages to get a very large number of names that we will give to those taking the decision. This will include the European Commission (EC) and the representatives of the 27 EU Member States who will meet in Brussels in early January to discuss the case. It will also include regulators in other jurisdictions (where it would, unlike in Europe, not be acceptable to announce in public who they are).

We are searching for volunteers to help us with this effort. If you are interested to help, join the #helpmysql IRC channel on Freenode. Help us keep the infrastructure of the Internet free!

In the rest of the blog I will try to answer all the questions and concerns that were raised in the first Help-MySQL campaign. This is not required reading, but may be of some interest for those the want to know a little more about my thinking of the current situation.

I will do this in the form of a self-interview, something a lot of famous bloggers have done in the past.

Q: Why don't you trust that Oracle would be a good owner of MySQL?

Oracle is the company that has the biggest market share in revenues for databases in all customer markets/segments. MySQL is the database with the highest number of installed units in all markets (except in the high enterprise market where it has only a medium size unit share). If Oracle were allowed to buy MySQL then Oracle would almost be in a monopoly position in many market segments.

MySQL is causing Oracle sales losses around 1 billion usd/year (in lost sales to MySQL and because of having to do heavy discounting when competing with MySQL). Why would Oracle have an interest to invest in an open source MySQL long term?

Oracle has studied MySQL a long time and even offered to buy it twice before, but I have not yet seen the logic or explanation from Oracle that would explain how they can continue to develop and support MySQL without cannibalizing the most profitable part of their business.

There is no other logical reason why Oracle would buy MySQL than to control it, reduce the competition with the present Oracle offering and slowly change it to a more closed source product and start charging for it and at the same time eliminate the competition between MySQL and Oracle.

If we examine what has happened lately, we don't get any reassurance that Oracle would be a good owner:
  • Instead of working with the EC to quickly resolve things, Oracle has delayed the process in every imaginable way and instead resorted to public pressure to try to convince the EC to quickly approve the deal.
  • Oracle did not provide any remedies to the EC and the public promises they have published are just empty promises.
  • As part of the new layoffs in Sun, a lot of open source people, including people from the MySQL group have been fired. It seems that Oracle has been part of choosing the people that will be laid off.
  • Oracle as a company is not known for releasing its own software as open source. The open source software it has acquired, like InnoDB, has after being acquired, been developed secretly and slowly which is against how things are done in the open source environment. Larry Ellison's own statement about open source summarizes it nicely "We don't have to fight open source, we have to exploit open source".
  • The main work Oracle has contributed to open source is extending the Linux kernel, but they have done that mainly to ensure that their own products works better on Linux.

Q: Can Oracle change the license of MySQL ?

Oracle can't change the license for old versions of MySQL. They can however change the license for all new code and put a majority of all new development on the new closed source version. Over time the MySQL GPL code from Oracle will be as usable as Betamax video cassettes. It is just not enough to give promises for the next 5 years as MySQL will be needed in the market for years to come.


Q: MySQL is free (GPL) software, how could anyone be able to kill it?

With killed, I mean a project that is not actively developed and for which you don't get bug fixes or support. By not spending money on development of the open source version of MySQL and/or position it in the market as 'not reliable' or 'for testing only' Oracle could make the open source very unattractive for most users. The open source version of MySQL would not be an attractive alternative for long and users will start searching for other alternatives. The easiest alternative, because of no migration costs, will be paying for a closed source Enterprise version of MySQL from Oracle.

GPL only guarantees that the (old) code will always be free. It doesn't guarantee the economics around the project or that anyone can or will develop it further.


Q: But why can't one just a fork (make a copy of it and start developing it)?

MySQL is an infrastructure project, a building block which others either enhance (like storage engines) or which they embedded in other products (think of a GPL library).

You can fork a GPL infrastructure project, but not the economic ecosystem around it. You can read more about it in my earlier blog posting.

The short summary is:
  • The fork can't be used with other products that are using MySQL as a building block for their closed source applications.
  • The fork has to work in an environment where no one has to pay for it. (How can there be enough money to earn for serious development ?)
  • In addition to the above, it's also very hard to do a full fork of a project like MySQL. You need, among other things:
  • Leaders that have passion for the project (Almost all big successful open source projects have passionate leaders that help coordinate and provide a vision).
  • People who know the code and can maintain and extend it.
  • Money: For hardware, company infrastructure, marketing to get known (especially if you fork a known trademark, like MySQL) etc.
To continue develop a fork of MySQL so that it continues to be a competing force in the database industry, you need 5-10 musd/year to put on development. There is very little chance that a fork can get enough money to do the needed development when there are very few companies that can use the fork to generate direct revenue. There are also very few investors that are prepared to put money into a product with no sure income stream and a model that is only based on services.

I don't know if there ever has been a successful fork of a big infrastructure program like MySQL. It is wishful thinking to claim that released under the GPL license is enough remedy for Oracle and "if Oracle is doing something bad" a fork will 'appear' and take care of things.
  • I don't think that competition cases should be judged based on wishful thinking.
Oracle has made a big point that they are not a threat to MySQL because anyone can just fork it. If they really believe this is true, then they would have divested MySQL a long time ago to get a quick clearance of the Oracle/Sun deal and would then have forked MySQL. They would not have let Sun lose 1 billion usd (based on Larry Ellison's estimate) while waiting for clearance because of MySQL.

If MySQL were be so easy to fork, Sun would also not have paid 1 billion for MySQL.


Q: You are doing your own fork of MySQL called MariaDB. How can you do that if it's so hard to fork MySQL?

When we started with MariaDB, MySQL was owned by Sun, which has a lot of reasons to keep MySQL alive and well. We had seen no changes in the policies of SUN regarding licenses or costs. In this scenario it's possible to do a successful fork if you can provide added value to what Sun is doing (like working more closely with the community).

However with an owner that has nothing to gain by developing MySQL, under an open source license, things are totally different.

The reason we are continuing with MariaDB is that all persons in Monty Program Ab are committed to work on the product, for which many of us have worked for close to 10 years.

We don't expect to make a lot of money while doing this, but we hope to be able to ensure that MySQL can continue to live as an open source product for some extended time.

In the discussions now people are very easily saying that "there is no problem, the community will take care of it if Oracle tried to kill MySQL".

I can tell you it's not easy; I have the best possible team working on MariaDB, still it has taken us 9 months to do some small required changes and create an infrastructure to be able to do our first release (we released a beta last month and are now working on releasing a release candidate (RC)).

We are spending 100,000 Euros/months just to keep MySQL alive (as MariaDB) and there are no sure signs we will ever be able to get that money back. Fortunately we have enough funding so we can continue some years with doing this. This is however not sustainable forever.


Q: Why have a lot of companies put money into developing Linux? Doesn't Linux have the same problems with GPL as MySQL?

While Linux is indeed distributed under the GPL, as is MySQL, Linux has an exception that allows anyone to run any kind of applications (including closed source applications) on top of Linux without being affected by the Linux copyright or GPL:

"NOTE! This copyright does *not* cover user programs that use kernel services by normal system calls - this is merely considered normal use of the kernel, and does *not* fall under the heading of "derived work"

Compare this to Sun's statement about commercial licenses:
"For OEMs, ISVs, VARs and Other Distributors of Commercial Applications:
OEMs, ISVs, VARs and other distributors that combine and distribute commercially licensed software with MySQL software and do not wish to distribute the source code for the commercially licensed software under version 2 of the GNU General Public License (the "GPL") must enter into a commercial license agreement with Sun"

The main reasons companies are taking part developing Linux is that they want their hardware and software to work with Linux. They don't make money directly on Linux, they make money on the things around Linux, without being affected by the GPL.

As closed source vendors can't use a fork of MySQL, because with the fork they are affected by the GPL, they will not spend time or money to develop the MySQL fork.


Q: What does your company, Monty Program Ab do?

Monty Program Ab Ab is a development company. We are working on a branch of MySQL, called MariaDB. MariaDB is an enhanced (faster, more features and less bugs) drop-in replacement of MySQL that is only available under GPL.

Monty Program Ab is planned to be a small company with a close connection to its employees and we have no plans to grow to more than 50 people (as after 50, you often lose the family-friendly feeling in the company).

We do mainly development of new features and extensions to MariaDB and MySQL. We also provide level 3 support to companies delivering support on MariaDB.

We don't do and don't plan to do e.g. end user support or training. We don't plan (and we don't want) be a new MySQL AB.

Monty Program Ab is created around the 'Hacking Business Model' that in practice makes the company 'employee owned'. There is no money I can personally make from Monty Program Ab.


Q: Why are you working with the EC to try to block the deal?

I have two main objects in my business life:
  • Save the product, that I worked on for 27 year, from getting killed as an open source project.
  • Ensure that the core developers of MySQL, who I have worked with for many years, get a good 'home' where they can continue to develop MySQL.
I am hoping for the EC and other regulators to ensure the first of the above. Monty Program Ab was created to ensure the second.


Q: In your view, what are the possible solutions for the Oracle / Sun / MySQL deal?

The European Commission (EC) has recognized that MySQL and Oracle are competing products and issued a statement of objections (SO) against the merger between Oracle and Sun on 11'th of November 2009.

As long as the products are recognized to be competing, any solution that the EC would accept has to ensure that there is as much competition in the database field before the merger as after the merger.

For this, I only see two working solutions:
  1. Oracle should divest MySQL.
  2. Oracle should change the license of MySQL to a more permissive Open Source license that would ensure that if Oracle would try to kill MySQL, the community would be able to take over and rescue MySQL and develop it as a product that can be freely used by everyone.
Divesting is the normal case to handle competition cases.

Doing a license change is a controversial thing that the EC can't force Oracle to do. This is however something that Oracle can suggest to the EC as a remedy to not have to divest MySQL.

Personally I would prefer divestiture as this is a clean solution to the problem. However, I could personally live with the solution 2) as this would achieve my main personal objective: That MySQL can't be killed.


Q: Isn't it unreasonable to require Oracle to change the license of MySQL?

Yes, of course neither the EU nor any other jurisdiction could dictate anything like that. Divestiture is the normal solution when you need to clear competition concerns. But since Oracle is trying to get away with some compromise, and if a compromise is what we get, it should be one where MySQL has a chance to survive. Not a compromise that just means a different kind of death for MySQL.


Q: How do the proposed remedies benefit your company, Monty Program Ab?

We do not know but hope that many companies would be unhappy with the new competitive situation if Oracle is the owner and would seek out MariaDB instead. But a big portion of the revenue would not come to us (as we cannot sell licenses, we do not produce first line support...)

If MySQL were divested to a strong player in the market that would care about MySQL and would have the trust in the market, Monty Program Ab would get a hard competitor and would have a hard time to get business.

If MySQL were licensed under a permissive license, like BSD, then the users would benefit as they now can securely continue to use MySQL in all context. Monty Program Ab would also switch to only produce code under BSD for the MariaDB server, to ensure that also MariaDB can be used in all context.

Monty Program Ab would benefit very little from of this; We cannot take money from selling BSD; We can only hope that there is a market demand for our skilled engineers.

The companies that would benefit the most from BSD are the companies that enhance MySQL (storage engine vendors and companies providing extensions to MySQL) and companies that embed MySQL in their products, like Adobe or Cisco.

The reason we are hoping for regulators to get the deal blocked on the current basis is thus not to earn more money, but because it's more important for us that MySQL will continue to be free, available for all, and developed in a way that meets the needs of all major market segments.


Q: As you are suggesting a license change, is GPL then a bad Open Source license?

I think that GPL is a great open source license, in many cases the best license. The GPL license ensures freedom of the code and at the same time gives the copyright holder a very strong control on the code and it's ecosystem, especially it's closed source customers.

Thanks to this property of GPL, it's safe for many closed source vendors of embeddable software, to release their software as GPL. They get the benefit of the open source community, they help promote free software and can still make a good living of it. Those that need the software under another license than GPL are paying the bills.

I am constantly encouraging companies to release their software as GPL, including companies like MoSync, that I have myself invested
in.

It's however the strong control that GPL gives the copyright holder for embeddable software that is a problem in this particular case of MySQL. It gives Oracle the possibility to slowly kill MySQL as not everyone can use it. Oracle can this way starve the ecosystem around MySQL so that nobody can live there decently.

The code is still free, but in practice not everyone would or could use it.

This is why GPL is not very often used for libraries (and other infrastructure software). For libraries one normally uses LGPL, that allows anyone to freely use the software in their application.

What MySQL AB did, that was unique at the time, was to use the 'inconvenience of GPL' in a library as a way to do dual licensing. By providing commercial licenses for MySQL, everyone could use MySQL (for commercial vendors for a small price).

In short, GPL is a fantastic license, but without dual licensing, not very good for a library that is to be used by everyone.


Q: What other things can go wrong if regulators approves the deal?

If the deal is approved based on the fact that 'MySQL can be forked', that will be a big blow to open source Software.

It means that open source software is not protected for anticompetitive measures and it will be ok for big companies to freely buy up their open source competitors and kill them.

Note that not even PostgreSQL is safe from this threat! For example, Oracle could buy some companies developing PostgreSQL and target the core developers. Without the core developers working actively on PostgreSQL, the PostgreSQL project will be weakened tremendously and it could even die as ar result.


Q: There have been some suggestions on the net that in the past you did approve of Oracle buying MySQL. Have you now changed your mind?

"Anyone who knows me, knows that I don't change my mind" :)

Jokes aside, when the Oracle proposition to buy MySQL first time come up, I said that I could stand behind the deal only if the MySQL license was changed to BSD as part of the deal. Even back then, I wanted to ensure that MySQL would continue to be free, available and developed to meet the needs of all major market segments, in spite of what Oracle would try to do to it.


Q: Are MySQL and Oracle really competing products ?

Yes.

To be fair, they don't compete for all applications and it's in many cases prohibitively expensive, risky and time-consuming to migrate an old Oracle application to work on MySQL.

However for new applications MySQL and Oracle are competing in almost every customer segment. Oracle has for years tried to come into the Web market, but has not succeeded, mainly because MySQL has already been there.

When a MySQL sales person goes and visit customers, it's in most cases Oracle, and in many cases only Oracle, that MySQL is competing with.


Q: How about MySQL on Windows? Does MySQL compete with MS SQL Server?

Windows was not the key target platform for MySQL. Almost all developers at MySQL AB worked on Linux/Unix and did their development there. This was not because we didn't want MySQL to run well on Windows, but because we had not found developers that wanted to work on MySQL on Windows and also because most of our big customers were running Linux/Unix.

It's also clear that Sun would never have been interested in MySQL if MySQL primarily compete on Windows (as Oracle claim it does).


Q: Why can't everyone just switch to PostgreSQL?

PostgreSQL is a great database; I am friends with many of the PostgreSQL core developers.

The problems with PostgreSQL are:
  • It's not compatible with MySQL (different feature sets and different support by various applications) and it's far from trivial (in many cases practically impossible) to convert MySQL applications to PostgreSQL and vice versa.
  • It doesn't have a single strong company backing that MySQL has to deliver high class support globally.
  • The PostgreSQL market is also, as far as I know, dominated by Enterprise DB that provides a closed source version of PostgreSQL, which is not good enough for companies standardizing on open source.
So for the Oracle/Sun/MySQL case, PostgreSQL is not an answer that would help approve the deal, the market share is too small.


Q: Don't you care about what happens to Sun?

Yes, I grew up developing on Sun hardware and I feel deeply for Sun. However MySQL is my project that I have worked on for 27 years and must be my first priority.

We also have to recognize that it's Oracle that is holding Sun hostage just to get MySQL. Oracle could have got the deal closed very quickly if they had divested MySQL and just forked it.


Q: "What differentiates MySQL from other open source products Oracle would be acquiring with Sun, like Java or Open Office?"

Oracle doesn't have competing products for Java and Open Office, so there is no reason to assume that Oracle would not take good care of them and generate money from them.

Open Office is also an end user product under a permissive license, LGPL, which means it can easily be forked if Oracle would not take good care of it.

With MySQL this is unfortunately not the case.


Q: Didn't you sell MySQL to Sun? Do you want to have the cake and eat it too?

First a little background:

I started to work on a code that would later become MySQL in 1982. MySQL was released in 1995 under a dual licensing scheme that allowed David Axmark and me to very quickly work full time on developing MySQL.

I lost the rights to the MySQL copyright in 2001 when MySQL AB was created and we allowed investors to come in. We needed to bring in investors to be able to create a full-scale working company to satisfy big customers and to be able to hire more developers and take MySQL to the next stage. To ensure that MySQL would continue to be free, David and I stated in the shareholder agreement that MySQL AB would have to keep MySQL under an open source license. The problem with a shareholder agreement is that it is terminated when the company is sold. This is just how things works.

David and I however thought that this would not be a problem, as we would help ensure that MySQL would be bought by a good owner.

I continued to lead the MySQL project and have been one of the leaders and top contributors for the project since then.

When the sales process to Sun started, I was at the time not anymore in the MySQL Board (just a MySQL shareholder). I was just informed about the deal, after it was agreed to. I did get money for my shares, that is true, but it did not change in any way my dedication or involvement in the MySQL project.


Q: Was SUN a good owner?

Even though I had no say in the deal, I was happy because I thought that Sun, who has been one of the big advocates of open source, would be a good home for MySQL. MySQL was also the missing piece in Sun's software stack and as Sun didn't own any database competing with MySQL, it would be in Sun's interest to continue developing MySQL as an open source database.

This was proven right a couple of months later when the old MySQL management, who was still in charge of MySQL development, announced that they would now, (when they were not anymore bound by the shareholder agreement), add closed source addons to MySQL. Sun's upper management stepped in and forced MySQL's management to retract the statement.

After the Sun deal, I continued to work on MySQL and the Maria storage engine in Sun (in the CTO lab) and, together with Sun upper management, to help Sun be a driving force in open source. I also tried to get Sun to improve the MySQL development organization and change the MySQL development model to be more community friendly.


Q: You left SUN. Did you put pressure on SUN to be able to set up your own company?

The reason I left Sun was that after almost one year of trying, the MySQL development organization was still lacking vision, strategy and engineering excellence and it did not engage with the community.

Some of the developers did in addition not fit in a big publicly listed company and started to talk about leaving SUN.

To ensure we would not start to lose critical MySQL resources from the MySQL ecosystem and to ensure that MySQL would live on, I departed from Sun on good terms, with an understanding of what I needed to do and without any competition clauses.

I created Monty Program Ab and continued to work on a branch of MySQL, now under the name of MariaDB, together with the community and the core MySQL developers that left Sun. We are now 19 persons in Monty Program Ab and all totally dedicated to keep MySQL alive.


Q: How did things change when Oracle came into the picture?

Now when Oracle is trying to buy Sun, I am continuing to what I have always done and never stopped doing; Do what I can to ensure that MySQL is kept alive as an open source product, free and available for all. With Oracle as a buyer this is not a guaranteed outcome, which is why I am working to get the EC to ensure that Oracle can't kill MySQL even if they tried.

As seen from my this and previous answers, the main benefit I can personally get by working with regulators to get the deal blocked, is that MySQL is not killed. This is also the only logical answer, as I already have enough money and could just sit down and relax instead of spending 18 hours a day to try to keep my project alive.

The cake at stake is a free infrastructure for the Internet, which is a cake that millions of MySQL users and billions of Internet users are enjoying today.


Q: Sun paid a billion dollar for MySQL. What did Sun buy?

Sun bought:
  • The MySQL trademark
  • The copyright to the MySQL server and other components (and thus control of the MySQL economical ecosystem).
  • Access to the MySQL community of 15 millions users and probably more than 50 millions installations.
  • MySQL AB's customers contracts.
  • The core developers work contracts
  • All other assets in MySQL AB
What they didn't buy was the control of MySQL as an open source project. You can't buy an open source project with money, the currency in open source is trust. Anyone can and is allowed to fork MySQL and continue develop it outside of Sun and the community will follow the branch/fork they trust more. This doesn't however guarantee that the fork will succeed, especially not economically. In the worst case no one will win, like what happened to the BSD operating system.


Q: Who would like to buy MySQL?

It has been speculated that I would be interested in buying MySQL. This is completely untrue. First I don't have that kind of money (all of the original founders of MySQL got collectively less than 12 % of the Sun deal). Second I am not interested in MySQL AB.

I much more prefer to work in a small family-oriented company, where things are handled in a fair, transparent and open source way.

However, there are a lot of potential buyers on the market: (Note that this is just speculation, I have no information about the intentions of any of the companies mentioned below)
  • IBM (DB2 and MySQL are working in mostly different markets and our sales persons very seldom compete with DB2).
  • Any of the major Linux distribution vendors.
  • Fujitsu (as Fujitsu has close connections with Sun, it has it's own storage engines and is also doing development of databases).
  • Some investment group who would like to take MySQL public (like it was originally planned).

Q: Any final words?

Just that all users of MySQL still have time to influence their own future by going to helpmysql.org and sign the petition to help keep MySQL free and available for all.

We are searching for volunteers to help us with this effort. If you are interested to help, join the #helpmysql IRC channel on Freenode.

Help us keep the infrastructure of the Internet free!

2009-12-16

Oracle gives only empty promises for MySQL

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).

UPDATE:
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!

My conclusions:

- 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!