2010-01-01

the MySQL campaign; my thoughts...

Monty Program and the flying EC petition

[In this article, MP means Monty Program AB, which I believe is the name of the commercial entity behind the campaign to get the EC to stop Oracle buying MySQL as part of the Sun acquisition].

(Disclaimer: I have no connection of any kind with Oracle, MySQL, MP, Sun, or Postgres. I use none of their products myself, although some open source software I use may be using Pg or MySQL underneath. I work for an IT services company that probably has partner agreements with every major vendor of anything, hardware or software, but it's a pretty large company, and I have no visibility into those things. This article has nothing to do with my employer, and I do not speak for my employer. It is the point of view of an individual who is an open source user/enthusiast/evangelist of 15 years standing, has some strong opinions on what is going on and is using blogspot as a pulpit to stand up on and rant).

[Anonymous comments are ok, but please do sign off with a name. If you find any *factual* errors, please also cc sitaramc@gmail.com so I might see it faster.]



NQOSS
"infrastructure", vendor lock-in, and fungibility
emulating a US bank :-)
true open source
an open question to MP
the last word


MP is appealing to the EC to block the sale of MySQL to Oracle, with arguments of various kinds, all built around the idea that Oracle will have the power to kill MySQL.

Here're my thoughts on this, for what they are worth.

NQOSS

MySQL is an open source product, but the development model is not quite what one normally associates with other OSS products. Everyone is not equal. One single commercial entity holds all the copyrights to MySQL, and requires all contributions to be copyright-assigned to them.

(The word "commercial" is in there to differentiate entities like the FSF, ASF, etc., who have requirements that sound similar, but whose terms are actually much more consistent with the open source ethos, and thus much more palatable to individual contributors).

I call this NQOSS ("not quite open source software") because such products have no (or very few) contributors from the outside world. MP have themselves said (see section 5.3 of this pdf):

[...] MySQL was almost fully developed by employees of MySQL Ab and later Sun's MySQL division.

In fact, from that statement I would even say MySQL has a closed source development model, even if the code is open source.

However, as far as I can find, no one in MP has ever admitted that it is the copyright assignment clause that keeps external contributors away, thus necessitating development to be internal.

As Jon Corbet (whose general clarity of thought and articulation, as seen in his LWN articles, has earned him innumerable fans) says here:

Agreements like Sun's and SugarCRM's are common when dealing with corporate-owned projects; they clearly prioritize control and the ability to take things proprietary over the creation of an independent development community.

That LWN article is more about Canonical, however. For more on the general issue of copyright assignment, see this rather long piece from Michael Meeks. A couple of quotes from that page:

I am not aware of a single project that mandates copyright assignment to a corporation that has a diverse, and thriving developer community.

and

some of the most successful open source projects require no copyright assignment: Linux, Busybox, Xorg, Mozilla/Firefox, GNOME, KDE, GStreamer, and a whole clutch of others too many to mention; indeed this is arguably the normal state of Free software projects

To put it bluntly, there isn't sufficient developer mindshare for MySQL to be a proper open source project because they wanted it that way -- they wanted to be the only one to be able to make money off of it.

infrastructure, vendor lock-in, and fungibility

There is a tacit assumption in all of MP's arguments that people who use MySQL cannot easily migrate to Postgres or something else. That's usually called vendor lock-in. Doesn't matter if it was intentional (as it often is with some other companies one could name) or otherwise. In fairness in this case it was probably unintentional; I have no way of knowing.

Meanwhile, Monty says "MySQL is not an end user application, but an infrastructure project that is quite deep in the system stack".

I don't know about you, but I've always felt that infrastructure should be fungible. You should be able to replace one for another with not too high an effort, for the vast majority of apps using a database.

[There will always be apps that require specific feature(s) and are therefore locked-in to one product; this discussion does not pertain to them. It's not "vendor lock-in" if you walked into it with your eyes open because you like/need something special that only that product has. That's a genuine competitive advantage being used the way it was intended to be. My point is simply that this is not needed for the majority of apps.]

For most apps, though, if you needlessly locked yourself into MySQL, you do have a problem, and sooner or later you'll have to deal with it. Remember that the code is the most important thing -- don't worry about the backend tools; migrating those is likely to be an O(1) effort compared to migrating your application code itself. Keeping your code as db-neutral as possible would make that even easier.

Personal note: Years ago, I used to convert Burroughs DMS-II (a hierarchical database!) apps to IBM DB2 or DB/400, including all the COBOL programs of course. Each of them was a challenge, made worse by the fact that, unlike modern languages like perl or php or even C++ or Java, each COBOL is different in innumerable subtle ways from another -- even within the same manufacturer there would be huge differences between one COBOL and another! I also wrote/maintained tools to convert almost any type of COBOL+ISAM files to OS/400, DB/400, and COBOL/400.

Thankfully those days are gone, and by and large this sort of lock-in has disappeared. I'd expect this to be much simpler today, but I don't have direct, recent, experience of writing an app that uses a db.

emulating a US bank :-)

Consider:

  • MySQL creates an open source product
  • they make lots of money selling licenses for a few years
  • they make even more money selling the whole thing to Sun at some point
  • and now they want to prevent Sun from selling it to whomever they want to

Regardless of how you look at it, this is crazy. Once I sell you something, I should not be able to dictate what you get to do with it, should I?

And in this case it's not even anti-trust. Even after they buy it, Oracle is far from being a monopoly in databases.

MP are essentially asking for a bailout. From the effects of their own choices and decisions. Not in direct financial terms, but indirectly, via policy!

true open source

Let's consider what would happen if Oracle bought it, and -- as MP fears -- kills it off:

  • someone takes the last GPL version and forks it
  • since they do not own the copyright on this, demanding (or even getting) copyright assignment does no good -- they can't dual license anyway.
  • Oracle can't demand copyright assignment either, because it's a fork, not their version being changed
  • now the external developer community starts trickling in, because it finally makes sense for them to contribute
  • all the supposedly great stuff currently being done by MySQL's partners (see that same URL above) comes out into the open, and gets done by the real open source community. Some of it will be slow, some will be fast, but it will happen.

Wait a minute -- am I actually saying that Oracle "killing" MySQL will be a good thing for... MySQL?

Yes :-)

It'll become like Linux. No single company stranglehold. A vibrant, open, development community. And lots of money to be made still, just in a different model, that's all.

Anyone who claims to be an open source evangelist should be happy ;-)

an open question to MP

Feel free to assume the worst that Oracle can do, and analyse the effects on a real, pure open source, project that uses MySQL (and can only use MySQL, for technical reasons). Show how such a project is harmed by this sale. Post the analysis on your site and a link to it as a comment here. (Don't post the analysis here).

That could help your case far more than all the rest of your efforts, as far as I am concerned.

Or... don't...! You don't really have to care what I say and react to it; I'm not really a big fish in any way, luckily for you.

the last word

I'll let Michael Meeks have the last word:

There is, of course hope - that individuals, smaller corporations and consultants will see the dangers, rebel against them and invest and adopt only the truly open technologies.

Amen to that...

6 comments:

sitaramc said...

employees of MPAB wishing to leave a comment must assign the copyrights of their comment to me before doing so...

----

ok that was a joke, I don't really mean it. Just some New Years Day humour...

Kevin Krammer said...

if they had been thoughtful enough when initially selling their cyopright to Sun, they should have insisted on some special safekeeping agreement for the future, e.g. like Trolltech's and KDE' FreeQt foundation.

sitaramc said...

@Kevin

Then Sun would have given them less money for it. These people want *everything*, make no mistake.

For some reason I missed the fact that they're asking for a license change from GPL to Apache. That basically gives them back commercial control (albeit not exclusive)! Other comments on LWN indicate that they even lied about it [I have to look it up to be sure].

I've gone from scepticism, to cynicism, to (now) disgust.

hingo said...

Hi Sitaram

I recently commented on this blog on the related LWN thread. (Summary: It is nice to see that you have most of your facts straight.)

I just wanted to comment here also on the accusation of us lying. Although the commenter on LWN didn't cite a source, I believe he refers to that accusation made by Groklaw's Pamela Jones.

My personal reply to that would simply be:

We have consistently said that spinning MySQL off to some independent owner that can continue to compete strongly with Oracle is the best outcome of this process. At MP we don't have anything to gain from that, but it would be great for current and future MySQL users and customers. In fact, Oracle getting MySQL will probably be great for MP businesswise! (Some bloggers other than PJ also speculated that Monty wants to buy back MySQL, this is silly when you realize that Monty got less than 5% of the money when MySQL ab was sold to Sun, but people believe all kinds of things.)

Initially a lot of Oracle's case depended on "MySQL is open source and can be forked". We did indeed explain to the EU about MySQL's dual licensing business model and that a GPL only fork is not a satisfactory solution to all MySQL users, and that the situation would be different if MySQL had been under a different license. Saying that we "ask for license change" is overstating it though. It's also not something we could ask for anyway, we just provide information to the EU when they ask. Formally, it's not even something the EU can ask for either.

Unlike you, PJ is not familiar with how the dual licensing thing works for MySQL, and unfortunately I failed to educate her on that topic in our emails. (If you read the newest article on Groklaw, you can see that she only later finds out about the "FOSS exception" MySQL has, but still fails to understand how it relates to this issue.) In her mind anybody suggesting that the GPL isn't the perfect license for everything, is a bad person. Trying to explain that even the FSF doesn't use GPL for libraries didn't help.

Finally I should point out that at MP we are committed to open source, so even if MySQL was available under a more permissive license, we would not ourselves make any closed source versions of it. Ie we would not do for MySQL what EntepriseDB is for PostgreSQL, because we don't want to produce closed source software.


henrik
(Yes, I work for MP and have been involved in this)

sitaramc said...

Hi Henrik (hingo),

> Saying that we "ask for license change" is overstating it though. It's also not something we could ask for anyway, we just provide information to the EU when they ask. Formally, it's not even something the EU can ask for either.

http://helpmysql.org/en/petition has 3 choices, the last of which says:

"Oracle must release all past and future versions of MySQL (until December 2012) under the Apache Software License 2.0 or similar permissive license so that developers of applications and derived versions (forks) have flexibility concerning the code."

The language of that choice, including the word "must", belies your claims of just providing information and not asking for anything. I find it quite galling that you would *attempt* to suggest how the owner of some IP should license it, even if it is the last of 3 choices.

Whether Monty lied about it or not I can not say, but if PJ indicated that he lied, I'd tend to believe it -- in my experience she does her homework. (I have not visited her site lately due to lack of time, so I will not comment on this further; I hope you understand).

> Finally I should point out that at MP we are committed to open source, so even if MySQL was available under a more permissive license, we would not ourselves make any closed source versions of it. Ie we would not do for MySQL what EntepriseDB is for PostgreSQL, because we don't want to produce closed source software.

As far as the core db is concerned, there's only one version of Pg, AFAICT. EntepriseDB's extras seem to be non-core stuff like testing, tuning, compatibility for Oracle, migration, and of course support. Are you telling me there are no 3rd party addons for MySQL that are proprietary? Even some of your storage engines are proprietary, no?

Sitaram

hingo said...

>http://helpmysql.org/en/petition has 3 choices, the last of which says:

>"Oracle must release all past and future versions of MySQL (until December 2012) under the Apache Software License 2.0 or similar permissive license so that developers of applications and derived versions (forks) have flexibility concerning the code."

>The language of that choice, including the word "must", belies your claims of just providing information and not asking for anything. I find it quite galling that you would *attempt* to suggest how the owner of some IP should license it, even if it is the last of 3 choices.

Ok, we are talking about different things then. The petition offers different options people can "vote" for. These were picked among the ones that people have discussed. (For instance, the FAQ also comments on the "MySQL should belong to a non-profit foundation" alternative.) Monty Program Ab as a company always has held that the spin off alternative would be best for MySQL and its users. But like I said, license change has been discussed a lot, even we have commented on it. (Btw, the percentages on the petition seem to agree, with spin off being more popular than the other alternatives.) Discussing license change or other conditions is not entirely pointless though, since the EU and Oracle have been discussing various compromise solutions, it is worthwile to differentiate good compromises from bad compromises. It doesn't mean that a compromise is the preferred outcome.


> Whether Monty lied about it or not I can not say, but if PJ indicated that he lied, I'd tend to believe it -- in my experience she does her homework. (I have not visited her site lately due to lack of time, so I will not comment on this further; I hope you understand).

Actually, the submissions were mostly written by me and a couple of them co-authored by Florian. I re-read what PJ says, and it seems PJ doesn't actually say Monty or anyone lied, that was just the commenter on LWN. (PJ is being harsh on us though, no doubt, and has some interesting theories on what Monty wants and what our business models are, etc.)


>As far as the core db is concerned, there's only one version of Pg, AFAICT. EntepriseDB's extras seem to be non-core stuff like testing, tuning, compatibility for Oracle, migration, and of course support. Are you telling me there are no 3rd party addons for MySQL that are proprietary? Even some of your storage engines are proprietary, no?

There are 3rd party proprietary addons/utilities/engines and even MySQL Ab produced some of those (Monty was one of many who opposed that direction). I was just saying that Monty Program won't produce proprietary software (but we are being accused of having that as our main motive by PJ).