The best storage engine for MySQL is by far InnoDB (and yes some applications can live with MyISAM only, but that's not the point). InnoDB (now part of Oracle) is also dual-licensed and has had an agreement with MySQL for several years now.
On the surface everything is looking smooth:
- MySQL distributes proprietary MySQL+InnoDB to those who wants to embed them in their proprietary applications
- The open source community can work with GPL MySQL and GPL InnoDB.
In practice it doesn't work quite that way:
Firstly because InnoDB hot-backup feature for instance has never been open source released. So contrary to the recent brouhaha, MySQL has fostered proprietary components for a long time.
Secondly because even so SUN has globally a good relationship with Oracle when it comes to selling Oracle DB on SUN servers, it is unlikely that SUN will let its pricey acquisition be driven (through InnoDB/Oracle) by an outsider. Conversely, the day Oracle perceives MySQL+InnoDB as a threat, the existing agreement won't be renewed.
So MySQL is on the run to develop a replacement for InnoDB (since they cannot use the GPL version of InnoDB with their proprietary release/license). A new storage engine named Falcon is currently developed by MySQL, concurrently with yet another storage engine: Maria (which is for now a crash-safe version of MyISAM).
Now think about the resulting effect on MySQL open source community:
- 2 MySQL teams working concurrently to develop various storage engines that nobody really needs in the open source community since they have InnoDB which is GPL
- MySQL teams working on plenty of new features so that to build a MySQL enterprise system with plenty of features that PostgreSQL/EnterpriseDB already has.
Where are the resources dedicated to the community? How long will it take for MySQL to reconnect and to produce something they can give back?
Where is the light, fast version that promoted MySQL original adoption? SQLite is growing fast for those 2 reasons, does it ring a bell?
Already MySQL community is much less active than that of PostgreSQl, in large part due to a dual licensing model that tends to attract less open source contributors: in order to stay open source, MySQL needs a new business model. As Glyn Moody noted, has MySQL forgotten all it learnt?
But after all, if SUN wants both a large contributing community and another proprietary Enterprise Database there is a solution. Remember, PostGreSQL has a BSD license and SUN owns the trademark MySQL therefore:
Why not release a proprietary licensed PostGreSQL under the name MySQL 7.0?
PS: You might be interested by this post about the perverse effects of dual licensing
This post is quoted or cited by:
- Joshua Drake in Command Prompt
- Sander Marechal in Lxer
1) Competition Is Good
2) PostgreSQL is not even a little compatible with MySQL...calling one the other will only confuse the heck out of people.
3) MySQL has many pros vs Postgres, like speed (via MyIsam), great administrative tools, and a ton a non-transferable talent.
Posted by: Robert Lee | April 22, 2008 at 06:20 PM
> Why not release a proprietary licensed PostGreSQL under the name MySQL 7.0?
It would be pointless to do so and it will confuse their market. Plus it would only help speed up Postgres adoption (unless that was what you intended to do in the first place). MySQL and Postgres support two slightly different SQL dialects. They also implement different cataloging systems, different authorization/authentication models, different configuration file layouts, and different database dump formats. In other words, you cannot simply rebrand Postgres as MySQL and "no one will know the difference".
Posted by: N | April 22, 2008 at 08:45 PM
Ok guys, this was a punch line which goal was to emphasize the absurdity of the current approach. Next time I'll post a smiley...
mtg
Posted by: mtg | April 22, 2008 at 08:49 PM
http://www.computerworlduk.com/toolbox/open-source/blogs/index.cfm?entryid=738&blogid=14
Here is an interview with Marten Mickos, formerly CEO of MySQL, and now head of Sun's database group, trying to explain what is going on.
Posted by: e5rebel | April 23, 2008 at 05:00 AM
The beauty of the MySQL model is that it can foster commercial extensions, which are then able to support themselves. I believe that this is part of the maturation of open source. While Sun/MySQL develop their own storage engines, there are others building plug compatible storage engines. Some are general purpose, whilc others go after specific niches. I was talking with the product manager for DB2 who was blown away at the innovation at the fringes like storage engines. That simply couldn't happen with DB2. I think ultimately, there is a balance between open source and commercial extensions that enables a thriving ecosystem.
Posted by: MySQL Storage Engine | April 23, 2008 at 10:29 AM
Mr. Lee:
Competition is good, but duplicating past efforts with inferior technology is not.
PostgreSQL is nearly ISO SQL conformant, MySQL is not. It is MySQL which is not compatible.
MyISAM looses your data fast, and doesn’t scale. PostgreSQL not only has great tools, but it is much easier to manage in the long run. And non-transferable talent in MySQL means people who are wasting their talents in idiosyncrasies, not real features.
MySQL Storage Engine, this is an absurd approach. The plugin system only means MySQL will never be safe, nor fast, nor consistent, nor feature-rich. Plugins are nice as extensions, but where they belong: in user space, not in the engine. Witness the miriad programming languages and tools made in them PostgreSQL supports.
Posted by: Leandro Guimarães Faria Corcete DUTRA | May 01, 2008 at 05:38 PM
> Why not release a proprietary licensed PostGreSQL under the name MySQL 7.0?
I think we already past Aprils fools day....
@mtg: PostgreSQL outperforms MyISAM easely on more complex queries, adn even for simple queries you are very close. Specially when it comes to updates/inserts on a buzy server
3) I think that MySQL is just sitting in a different market then PostgreSQL works in. Both of there place.
For any business application I would consider PostgreSQL way over MySQL, for any simple web stuff I might consider MySQL. But to be honest I find administrating a MySQL DB more complicated then a PostgreSQL. This mostly because I do expect a crash of a table at least once a year.
I totally agree with Leandro specialy with the MySQL people wasting talent which I do find in the MySQL community, but just much less then in a PostgreSQL community. You can try this for yoruself on the freenode channel. (ask something complicated).
Ries
Posted by: Ries van Twisk | May 02, 2008 at 09:07 AM