What MySQL Can Learn from PostgreSQL

Hi! So this is completely my notes taken from the conference, without my thoughts attached to it. I should definitely post a lot more about this, and how the community can “improve” in time. Just not today. Believe me, sitting in the talk, was highly painful, and I’m wondering where my aspirin stash might be. The slides will be available soon, and lets just consider this a learning experience. It reminded me of the time Eric Raymond came to the Fedora Project’s very first FUDCon in Boston 2005 (probably the only session without available video :P).

What MySQL can learn from PostgreSQL
Joshua Drake

Compared us at OSCON 2007. MySQL lacked technical meat, compared to PostgreSQL. Since 2005, PostgreSQL booth had most visitors besides Mozilla.

MySQL Community is a second class citizen. MySQL AB does not advocate. They promote, they sell.

Does MySQL community advocate? No. PostgreSQL community does. In 2008, there are 7 planned events by community.

MySQL User Conferences? None that he knows of.
– go to a college and educate students
– teach a workshop maybe

There is nothing wrong with corporate conferences, but for a community to be truly sustainable, the community must have its own ecosystem.

What makes a community? Members and Users.

Ubuntu: most popular Linux distribution in 4 years. Rabid, helpful, friendly community members.
PostgreSQL: all walks of technical life drive it.

PostgreSQL Association in the US: drive PostgreSQL in higher education.

Where are the people contributing to MySQL because its MySQL the project?

PostgreSQL has defined community leads. MySQL doesn’t.

The community is the real stock holder in Open Source. To be truly successful, as an open source project (with commercial participation) the commercial participation must be a servant to the community.

In 5 years, there will be no MySQL. Sun won’t allow MySQL to exist. Maybe it will be Sun-MySQL. Why is the community not ensuring there is more groundwork, beyond the corporate entity?

What happens when the corporate culture disappears, now at Sun?

Sun spent $1 billion on something that is only worth $250 million. That money, was goodwill money based on name. You must produce profit of that billion dollars. So in the next 5 years, they must show the shareholders that the billion dollars gave them 25 years.

Changing the model of MySQL must happen for Sun to justify spending the money.

“I’m wondering if there’s an open source model to MySQL”.
MySQL controls all of the committers. Is MySQL an open source project?

Marten Mickos asked him to give this talk. No one is going to throw tomatoes at him.

“I’m not here to bash MySQL” – its just differences that he sees.

People have a tendency to change their goodwill gestures when their coffers are getting thinner. So Sun may make hard decisions to focus on sales.

No co-opetition, that is not sustainable.

Without diversification, the project suffers. Look at the manual, look at the things that have changed. Really? What?

“Enterprise customers get the alpha code, and the community gets it back later after its tested”.

CommandPrompt will be fully 100% open source in under 60 days. EnterpriseDB is the opposite, they’re closing up more and more.

MySQL adds features more quickly than PostgreSQL due to its willingness to add features to stable releases. PostgreSQL only does so in major releases, causing 12-14 months breaks between feature sets. May 2007, no new features, in GA releases

PostgreSQL only adds features based on:
– correctness
– maintainability
– portability
– stability

Attacks someone from Fox Interactive Media. They have issues with PostgreSQL, and they call Sun, but Joshua wants people to communicate to the community. Sponsor someone. Sun doesn’t address your needs. This is the 5TB problem in PostgreSQL.

MySQL is an embarrassment at being the “world’s most popular open source database”. That’s like Microsoft.

8 Comments

  1. Joshua Drake says:

    Two things on your notes:

    1. EnterpriseDB is the opposite, they’re closing up more and more.

    I spoke with Bob Zurek who is the CTO of EnterpriseDB. I was not 100% correct in my EnterpriseDB comment. My reference came from this page: http://www.enterprisedb.com/products/postgres_plus_as.do which is very difficult to tell which is Open Source and which is not. However I still think they true benefit would be to just open everything up.

    2. Boy, I didn’t think I attacked the guy from Fox Interactive Media. I was just being honest. The gentlemen would not have brought up the problem (especially with Sun in the room) if Sun was correctly addressing his needs.

    If Fox Interactive Media wants a solution to that 5TB problem, interacting with the community is the way to get that problem resolved. Sun may or may not be a part of the solution at that point, I would like to think that Sun would actually interact with the community to solve the problem as a whole. They recently did submit a WIP patch on the very topic, but the response has been fairly tepid, I believe because of bad communication from Sun. Keep in mind that I said, “regardless of the factors involved, the solution is still the same, you have to go through the community.”. That point was made at benefit of Sun. Sun can solve the problem on their own, but if they don’t work with the community to do so, they end up with a Fork and now they maintain three databases (JavaDB, MySQL, PostgreSQL).

    I actually talk a little more about this here:

    http://www.commandprompt.com/blogs/joshua_drake/2008/04/what_mysql_and_really_sun_can_learn_from_postgresql/

  2. William Newton says:

    Interesting.

    I agree with most of the comments. However, I was tasked with deciding between PostGres and Mysql a couple years ago. We didn’t want to pay for support so we looked at the communities around each product and decided that Mysql’s community support was better. It was easier to get help with it from various blog posts /mailing lists than Postgres at the time. At least that was our perception.

    The Mysql community is starting to organize itself, and Sun/Mysql AB has talked about opening up the development process to the community more. So I think we are moving closer to what Postgres has, although it still remains the gold standard for Open source community driven development.

  3. Joshua Drake says:

    William,

    What I found interesting is that Monty’s talk mirrored (according to reports) many of my points in my talk. So yes I would agree they are likely moving in that direction.

  4. So what is the ETA for community changes in MySQL? We know that Monty wants things to change and he was specific about what he wants to change. Others from MySQL have stated that they want things to change but were less specific about what would change and when it would change.

    Will the contributor license change? If you work at a big company you will probably be unable to sign the MySQL CLA and the Sun SCA might not be any better.

    Will there be a community branch? Ebay just published a great patch for HEAP tables. The patch is GPL. If there were a GPL community branch it could go there.

  5. Josh Berkus says:

    Josh, Colin,

    I’m actually familiar with Fox’s issues, and it’s not clear that their PostgreSQL issues are even *PostgreSQL* bugs, except for one, which Sun patched and will be in the next PostgreSQL minor release. Try getting a core-level patch in less than 2 weeks from Oracle.

    However, you *have* pointed out another strength of the PostgreSQL community — if FIM is unhappy with Sun’s support of their PostgreSQL, they can go to EnterpriseDB or CommandPrompt. They’re not a slave to one vendor.

  6. Joshua Drake says:

    Josh (no not me),

    It should be noted that the only Fox issue that came up was the in place upgrade issue because that have a 5TB database (they said this publicly). Which is what drove the whole discussion.

    Anyway as usual you are spot on with the community, that is our strength. Any vendor is secondary to the user of the database. It doesn’t matter if it is Command Prompt, EDB or Sun. Those vendors have to work with the community directly if they want to be the most productive, if those vendors don’t then the customer/user has the ability to come to the community and the community will respond.

    Disclaimer: I work for Command Prompt.

  7. byte says:

    Hi!

    Sorry for the late(ish) response.

    All:
    Remember, these notes were taken *verbatim* from the talk. They were my feelings. They’re what one might consider a transcript. There is unfortunately no recording of the talk…

    Joshua:
    1. No worries with regards to EnterpriseDB…
    2. Honest you were, but the tone was pretty confrontational. Let us not speculate as to why he brought up the problem, irrespective if Sun was in the room or not.

    Thanks for linking to the rest of your blog posts. You also mention that you spoke with Marten Mickos quite a bit, and he’s supported having your talk. Note that I do not say having your talk was bad, or anything, I just clearly write notes from it…

    William:
    The process is being opened up, its just facing what I’d like to refer to as, growing pains.

    Joshua:
    Monty’s talk highlighted all of our growing pains.

    Mark:
    There is no ETA. The plan is the plan, until there is a new plan? We all want changes, but we have to go through step-by-step refinement.

    The CLA is unfortunately still around. We are looking into the SCA soon. Curiously, why can’t someone from a big company sign the SCA? Novell for example, I know have signed the SCA for OpenOffice.org contributions.

    Community branch is something as you know we’ve been trying to work out for a while. I think once we’ve fixed our release policy, we can focus on accepting patches, say like the HEAP tables patch and other great patches that you yourself have.

    Josh Berkus:
    Congratulations on patching PostgreSQL and providing core level patches in under-2 weeks :)

    If someone is unhappy with MySQL support, they’re also not a slave to Sun. There are numerous firms out there that are the EnterpriseDB/CommandPrompt equivalents in the MySQL ecosystem.


i