Friday, September 16, 2011

Welcome, MySQL commercial extensions

I saw yesterday that MySQL has finally done the right thing, and announced new commercial extensions.
What this means is that paying customers receive something more than users who get the community edition for free.
Believe it or not, when I was working in the community team at MySQL, I was already an advocate of this solution. You may see a contradiction, but there isn't. I would like to explain how this works.

An open source product needs to be developed. And the developers need to get paid. Ergo, the company needs to make money from that product if it wants to continue developing it. Either that, or the company needs to sell something else to pay the bills. (Let's not get into the argument that a pure open source project with universal participation is better, faster, or more marvelous: MySQL was never that, not with Oracle, not with Sun, and not when it was an independent company. If you want a extra-super-ultra open project, go with Drizzle. With MySQL, we need to continue reasoning with the raw material at hand.)
When MySQL was scaling its business, it realized that many customers were not willing to pay for support and consulting alone. To expand the business beyond the simple offer of services, the company created MySQL Network, which soon evolved into MySQL Enterprise, with the addition of the MySQL Monitoring tools and a fast upgrade plan. This was a good proposal for small to medium customers, but not as good for customers with large installations. When you deploy thousands of MySQL servers, you really don't want to upgrade every month. Anyway, for some time, the value proposition from MySQL was that the community users would get one release twice a year, and the paying customers would get one every month.
As a community manager, I strongly objected to that formula, not only because it hurts the community, but also because it hurts customers. When the release is exposed to millions of free users before it goes to the paying customers, chances are that serious bugs are discovered by the community and fixed in due time, before it hurts a high profile customer and needs to be fixed in a hurry at higher cost. One of the main values of MySQL is that it's that its large community adoption and feedback increases stability. Fortunately, I was not the only one who believed that larger distribution is valuable for customers, and the decision was reversed at the end of 2008.
In that period, I and other employees recommended a different value proposition for our customers. Instead of selling fast upgrade plans (which become a liability), MySQL could develop some reserved features that would be given only to paying customers.
There are two problems with reserved features, though: you need to develop them internally. You can't start them in the open, asking the community to test them for bugs, and then give them only to customers when they are ready (There was a faux pas in that direction in early 2008, but it was promptly retracted). These features must be developed as closed source, and tested only internally. The second problem is that MySQL had little internal QA manpower when this discussion arose.
There was another issue, namely that the code base for the next intended version (the fabled 6.0) was brittle. After 2 years in alpha stage, there was little to show for the effort. In parallel to the Oracle acquisition, two important things happened: version 6 was abandoned, and a new effort was started, using the more stable version 5.x as a code base, and a new developing model was launched, based on milestones and robustness.
This new foundation, combined with the injection of experienced QA personnel from the ranks of Sun and Oracle, made the project ready to offer reserved features to customers, while continuing the development of a lot more features for the community edition.
From a community standpoint, I welcome the commercial extensions. It means that the MySQL project will get more revenues, and be able to sustain the public release more easily. In my opinion it's the logical evolution of the project, and it's what MySQL should have done already years ago if it had had the manpower.
There are already detractors who see this release as a sign of the apocalypse. They probably want to see only this one feature in the commercial arena, dismissing the dozens of new features released to the general public under Oracle stewardship. I refuse to enroll in the chorus of critics who judge Oracle on prejudice. I am so far satisfied with what Oracle has done with MySQL. My opinion is based on facts, and since the facts are in favor of the community, I am pleased to say so. If future facts will make me change my opinion, I will say it. But now, I want to say thank you to the MySQL team at Oracle!


Anonymous said...

Well, I actually didn't expect a former MySQL community main guy's point to be free from bias towards Oracle's questionable step.
It would have been too surprising, anyhow. :-)


Giuseppe Maxia said...

If you think that "biased" means that I am pleased because Oracle has done what I have been suggesting for years (even before the acquisition), then so be it.
If, instead, you are implying that I am a mindless fanboy, you are pissing against the wind.
I am a pragmatist, and I support what seems reasonable to me.
I have the right to my opinion, and if that makes you think that I have a hidden agenda, you should either support with some evidence your claim that I am biased, or find something less biased to read.

Ben said...

I think I'd have been more comfortable if commercial extensions simply meant additional enterprise level tools similar to MEM & Hotbackup.
I was disappointed to see the mention of the external authentication for PAM, to me being able to use LDAP logins within MySQL is more of a functional requirement and one that would have been quite popular too.
IMHO it's a shame something like this is being limited to Enterprise Customers only.

Anonymous said...

First thing's first, of course this is Oracle's right to do what they want with their product.

Second, the Enterprise Monitor has been around for quite a few years by now; id I recall correctly, the MySQL Enterprise Backup has joined it as a commercial solution in the last year.

So on these grounds there's nothing new.

My personal view is that surrogate tools are perfect candidates for being a "commercial extension". These may include monitoring, diagnosis, dev environments, advanced GUI management, advanced backup management etc. etc.

I'm a bit more jealous if some server-internal stuff is developed, that is only for commercial use. Image, for example, crash-safe replication being only developed commercially; or optimizer-optimization; or stuff like that.

So I'm not sure where "Thread Pool" is positioned (this is one of the new commercial extensions). It is outside the server or inside?

My preference is to have the server developed for all, and have the community/surrogate companies offer the surrogate solutions as mentioned above, in competition with Oracle.

When major features are missing from the server, it is much harder to "sell", even as open-source, from the outside. People like to install MySQL from the standard repositories; they don't like adding plugins and extensions.
But then, of course, we already have major forks for MySQL, in the form of Percona Server and Maria DB.

In short, I'm optimistic and do not take these news as big news.

Baron said...

I'm with Giuseppe on this one.

Sheeri K. Cabral said...

I think this shows that Oracle is very willing to put time and money into MySQL, because they'll get their investment back.

Most of MySQL is GPLv2, so they have to keep that part of the code open (except for embedded, of course...). So the only monetization opportunities (e.g. a paycheck for my friends who develop MySQL at Oracle) have to come through plugins or external software.

I agree too that this is a good sign, and is a sign of Oracle doing the right thing.

Stan Spanko said...

I hate Oracle! They take over opens source projects. Then make add-ons closed source but givie them free to public. So there’s no need for open source programmers to programm the same add ons. Then after time goes by a year or two oracle starts commercializing the closed source part and is only willing to sell add ons. By this time oracle has put patents on closed source so that no one, not even the willing open source community can pragram alike. As gtime goes even further the open source programming comminity for that product dies out and oracles share holders get richer.

just my lone opinion.


Anonymous said...

An open source product needs to be developed. And the developers need to get paid. Ergo, the company needs to make money from that product if it wants to continue developing it.

This is pure syllogism.

a/ Oracle doesn't need to find money to pay developers. Oracle is in search of return on investment, that's quite different...

b/ PostgreSQL is the living proof that an open-source product can be developed by multiple companies at a very low cost.

c/ There are many ways to make profit from an open-source project. Charging for additional proprietary extensions is just of them...

Keep on justifying Oracle's greedy moves with such flawed reasonings... Once Mysql is dead like Solaris or OpenOffice, i guess you will find some nice explanation too :-)

rpbouman said...

I largely agree with Giuseppe.

Also, I'd like to point out that to the best of my knowledge, the plugin API that enables authentication plugins is part of the server, and in the community edition. There is nothing that blocks anyone from writing their own authentication plugin and release them under a GPL license.

Giuseppe Maxia said...

How come all anonymous posters seem to be unable to read?

Oracle is just incidental in this situation. Had MySQL AB done this in 2007, it would have had my approval all the same.

Mark Callaghan said...

I am thrilled that Oracle continues to invest in MySQL and in this case has provided many APIs so that the community can also contribute.

I recently published changes that provide the performance benefit of a thread pool to a MySQL 5.1 branch but I look forward to replacing that code with a thread-pool implementation using the APIs in MySQL 5.6.

Bogdan Kecman said...

Anon, try to read what's written again and then think about what you wrote and how it "relates" ...

MySQL being dead as openSolaris - never gonna happen, if Oracle wanted to kill MySQL there were soooo many ways to do it easier then pushing out the best release in MySQL history (5.5) and investing more money in MySQL development then SUN did since it acquired MySQL (and even more then all other MySQL forks are investing together)... Comparing to pgsql is also very wrong as there's more commercial plugins for pgsql then for MySQL (not to mention - there were commercial plugins for mysql way before Oracle was in the picture)

Except for thread pool I think other additions are perfect choice for commercial plugins (if you really want to login to mysql with windoze user - pay for it, you already paid for windoze). Again as Roland said - the plugin interface for auth plugin is there - you wanna auth using kerberus, ldap, txt file - you can easily make a plugin yourself.

Anonymous said...

Giuseppe, you said the right things, and it is interesting to see that people that had be in tight contact with MySQL, and MySQL AB understand that.
I also agree with Sheeri, this shows as well that Oracle has a clear plan about MySQL, including paying the salaries of our ex-colleagues to make them able to continue to have MySQL improve, as they did from Oracle (not SUN) acquisition.
Last but not list, guys do you remember that this was also a discussion we had at MYSQL AB times? Do you remember that a large set of us see that as a necessity to make MySQL improve at Enterprise level? So no wonder, Oracle did what others did not have the courage to do.
I only want to underline one small point, one thing is asking for money for "Enterprise" features another is forking the product, and make MySQL community edition a "B" series product, as far as Oracle will ask for money for Enterprise feature I am fine, and think that they do what it should be done from far. If they degrade the MySQL community then I will be the first that will start to scream about, (also if no one in Oracle could care less).
So good post Giuseppe, you are not the only one that think that, and I will be happy as well to be "biased" for something that will allow MySQL product to become better.
As usual my 2cent in supporting the cause.

Robert Hodges said...

@Anon, I'm sitting in the PostgreSQL Open conference in Chicago and I can assure you that PostgreSQL is NOT an example of developing a DBMS inexpensively. The engineering is supported by companies like VMWare, EMC, EnterpriseDB, and others, who do this for commercial reasons of which the biggest single motivation is competing with Oracle. They and others pay the salaries of most of the engineers. Most major open source projects have major commercial backing once they are successful if not from the start. How do you think projects like Linux are really supported?

Stefan Reich said...

Money sucks. Good thing it will be gone soon. And for good too.

Mark Grennan said...

Right on brother! I'm in 100% agreement.

webmink said...

So are you saying none of the new features belongs in the core code, and none of them arises from community contributions?

Giuseppe Maxia said...

The information I have is that the code for the commercial extension was never public.
As for being in the core or not (ie. if it is a modification to the core or a plugin), I have no direct knowledge of it, but the fact is not relevant from my standpoint.

webmink said...

The conversation I remember having on this topic when I was involved was that proprietary add-ons used by advanced users are acceptable (as lomg as they use APIs that anyone can program to) but implementing new features that all users will need as proprietary is not. Hence the stance towards "core code"is for me the important indicator on stewardship.

And my comment on contributor agreements stands :-)

Mohammad Nafees Sharif Butt said...

I am all in for paying for salaries and segmenting market (between community and enterprise). Everybody does that, no questions asked. But...

ThreadPool for enterprise only? That is a bit too harsh for the community. What would be even _harsher_ if a similar module is not developed quickly for community edition and then a "buy-it-or-leave-it" approach is adopted. That would hurt me (and others) a lot. What do you think?

Giuseppe Maxia said...

MySQL has been wildly popular for more than a decade without thread pooling and it can continue to be so.
My personal take is that free users can survive without it, and users that grow their business enough to need this feature should be able to pay for it. There will be corner cases, but that's the gist of the deal.

Baron said...

I think the benefit of the thread pool is being exaggerated. It's unclear how helpful it's even going to be in real-world workloads. My personal feeling is it's going to be a mixed bag and may benefit only a very small percentage of users. I can only think of ONE customer I think might want to evaluate this feature. That's one out of many hundreds. MySQL without a thread pool is not crippleware, people.