Has MySQL Forked Beyond Repair? 334
snydeq writes "Fatal Exception's Neil McAllister questions the effect recent developments in the MySQL community will have on MySQL's future in the wake of Oracle's acquisition of Sun. Even before Oracle announced its buyout, there were signs of strain within the MySQL community, with key MySQL employees exiting and forks of the MySQL codebase arising, including Widenius' MariaDB. Now Widenius' Oracle-less Open Database Alliance adds further doubt as to which branch of MySQL will be considered 'official' going forward. 'Forks are a fact of life in the open source community, and arguably an entirely healthy one,' McAllister writes. 'Oracle just better hope it doesn't end up on the wrong side of the fork.' To do so, he suggests Oracle will have to regain the the trust and support of the MySQL community — in other words, 'stop acting like Oracle.'"
Re:Oracle needs to cater to business not the commu (Score:5, Interesting)
Already Planning my project for MariaDB (Score:3, Interesting)
From my understanding, it already supports PHP and is far faster than 5.1.
Re:Oracle needs to cater to business not the commu (Score:4, Interesting)
Funny you should say that. We're working on dumping Oracle licenses where they're not needed in favor of MySQL. That was going to be expanding our Sun support contract. Oddly enough - it might end up expanding our Oracle contract. That is, unless Oracle gives us reason to look elsewhere for MySQL support.
Not as serious... (Score:5, Interesting)
This really isn't as serious as is implied. MySQL is GPL. The forks are GPL. Therefore, if Oracle wishes, they can just cherrypick the best patches from all forks and integrate them back into their codebase, community involvement or not. I expect MySQL to remain the official MySQL, unless it completely stagnates, simply due to name recognition if nothing else.
Re:Not as serious... (Score:5, Interesting)
> The forks are GPL. Therefore, if Oracle wishes, they can just cherrypick the best patches from all forks
They can. But then they can't dual license it anymore as they don't own copyright for the whole source.
PostgreSQL: Why don't people use it that much? (Score:5, Interesting)
I have always wondered why people do not use PostgreSQL that much. It is better [tweakers.net] than MySQL in terms of stability and scalability.
You might wonder how I came to this conclusion. Well, I have used MySQL with MythTV and I have gotten sick and tired of corrupted databases/tables.
I have a read a reviews of PostgreSQL's stability and scalability beyond two cores and have no doubts it is better than MySQL on this front, though there have also been crowds here [slashdot.org] at Slashdot who think MySQL is better. My experience suggests otherwise.
MySql (Score:5, Interesting)
Personally it's just more of the same from MySql in general. MySql AB didn't do much of anything with it since 5.0 came out. They wasted a lot of time on a complete rebuild, on adding more features no one cared about. The thing about MyQql 5.0 is that it's really not a very good database. MyISAM sucks (but it is small and fast..) and InnoDB is bloaty. So I think that really MariaDB is going to be the future. Of the codebase. That is the nice thing about MySql is that really it's a wrapper around the Storage Engines. But the problem is the wrapper sucks. No kerberos/LDAP authenication?! What?
I could see Oracle taking one of their open databases and adding a Mysql compatibility layer so basically you can run stuff designed for Mysql on Oracle. This is really their bread and butter already, they move legacy stuff off old UNIX and IBM databases into their DB. Look at all the gateways 9i had [oracle.com]. MySql only implements a subset of what Oracle can do. And with no support for the more modern, more object orientated practices, along with trees, etc, I don't see MySql making it out of it's current place as a cheap small database for non-critical applications.
That's not to say you can't make it quite stable and fast but it's not that out of the box. And the fact that 5.1 shipped with a crashing bug really makes me doubt Sun's desire to continue the brand. Which brings me to the forks, which are really the only thing keeping a stable 5.1 version alive out there.
Postgres is really not a viable replacement because it's a database nerd's database. I like it, but the data analysts at work won't be able to deal with its quirks. It does do a lot, but not small and fast like MySql. It comes from a long line of great database researchers, all of whom are well known around the Valley. A lot of all the major players' databases in the valley are based on ideas from Ingres including Oracle.
Personally, I think SQLite3 (4) is going to be the database of choice for small web hosts very soon. Small, portable, fast enough. At that point MySql will no longer have a purpose unless they can move into the middle tier dominated by MS-SQL.
Re:Oracle needs to cater to business not the commu (Score:5, Interesting)
Your company must be run by morons.
Obviously. In fact, the people who run Wikipedia, craigslist, youtube, Slashdot, Apple, Cisco, Cray, Dell, Intel, HP, Motorola, NEC, TI, Xerox, Adobe, Symantec, Novell, McAfee, Citrix, Continental, Orbitz, Priceline, Amazon, ebay, Google, iStockphoto, Pricegrabber, Yahoo, ZipRealty, Linden, Audiogalaxy, Digg, del.icio.us, Facebook, Flickr, Freshmeat, LinkedIn, Photobucket, Stumbleupon, Twitter, and WordPress are clearly morons for using MySQL. These people don't know anything about databases.
In fact, I'm pretty sure you're the only person who's not a moron.
Re:Fork it (Score:3, Interesting)
I didn't realize that any mod got you mod points.
Funny does nothing for your karma, though.
Re:Already Planning my project for MariaDB (Score:5, Interesting)
I'd hope that in the short to mid term, neither side of the fork introduces something that would make either one become incompatible. That may happen eventually, but I think if one side does that too soon, it will be the end of their fork.
I think a fork here is certainly an appropriate action, but I hope that the ODA people don't go so far down the "we're not Oracle path," that they end up on the wrong side of existing users.
I personally support well over a hundred major MySQL installations right now which serve content, and my company operates hundreds more. So, obviously, any talk of divided support makes me uneasy.
In the short term, we're likely to stay with the official MySQL, but we are very interested in not getting stuck in vendor lock-in or abandonment. We definitely are trying to get away from Sybase and Oracle DBs as much as possible, so the Oracle purchase concerns me. As long as we don't have to re-code to move to Maria, it will always remain an option.
And who knows, if its faster and better, it may be a no-brainer to switch to it even if MySQL does not get marginalized or subverted. Still, that is only something that is going to happen after a full evaluation period with both sides of the fork. In the meantime, they need to be interchangeable enough so all my code on one works on the other. I cannot stress that enough.
Re:PostgreSQL: Why don't people use it that much? (Score:1, Interesting)
PostgreSQL is quite a nice database.
It's a shame it has such a crappy SQL parser and contains only overthought, overblown versions of otherwise simple everyday functions.
Seriously, I have to use "QuotedIdentifiers"? Bite me. Even MS SQL Server doesn't require delimiters. And in the few cases where you get an ambiguous reference, it tells you that in plain english. And then it allows you to use "Quotes" or [Brackets]. Or you can sometimes just specify the object hierarchy. (Example: DatabaseName.OwnerName.TableName.ColumnName won't return an error even if just ColumnName will.)
And then there's the increment functions. MySQL is a bit lacking, with only AUTO_INCREMENT and LAST_INSERT_ID. SQL Server has a similar setup to MySQL using IDENTITY(start, step) and SCOPE_IDENTITY(). But PostgreSQL uses that atrocious monstrosity of SERIAL data types and a damned Sequence object. And heaven help you if the Sequence gets out of sync. Your data is fucked at that point. The DB engine won't fix it. You aren't allowed to fix it. And the next time your app tries to use it, there's a good likelihood that it will lose data.
MySQL using InnoDB is tolerable. PostgreSQL is safer. But to be perfectly honest, I'm growing to actually like MS SQL Server. It's as simple and flexible as MySQL, and has the data integrity of PostgreSQL. Oh, and it makes stored procedures easy too. All at the same price as either of them. (OK, it's free-as-in-beer for the Express edition. It's under $50 for the "developer" edition, which is a full enterprise license with unenforced restrictions. Spending thousands on SQL Server is for suckers.)
How healthy are forks? (Score:4, Interesting)
Are forks really a fact of life for healthy open source projects?
Most open source tools I use on a regular basis have never been (successfully) forked. More importantly, none of the other members in the LAMP stack have undergone a forking of the scale that MySQL is about go through. Sure, there are multiple 'L' distributions, but there isn't a healthy eco-system of production forks at the kernel level.
-Chris
Re:Fork it (Score:5, Interesting)
I got a +5 funny post once.
When I was being serious.
Re:PostgreSQL: Why don't people use it that much? (Score:3, Interesting)
Re:How healthy are forks? (Score:2, Interesting)
For one (admittedly extreme) example, GCC -> EGCS. The fork was so successful that it was eventually accepted by the FSF as the official GCC.
Re:Cue postgres fan bois (Score:3, Interesting)
Why doesn't SQL server have BEFORE triggers?
Well, you can use INSTEAD OF triggers. But you still have to do the actual operation in the trigger body, so yes it would be nice if they implemented it. Reality is that features gets prioritized and although it may seem a very popular thing, it's actually not.
Or row-level triggers?
Because the preferred approach with (almost) relational technology is set based instead of row-based? You can still have a row based approach in the body of the trigger if you want with a cursor and a loop. However, in most cases you simply deal with the whole set (inserted and deleted virtual tables instead of :new and :old virtual aliases). Maybe I should ask why in Oracle the examples for statement based triggers are always the same: they log the fact that an action triggered, they never deal with the data...
Anyway, a couple of better trigger questions (or rather a better flaming questions) are:
In both cases you have to test conditions inside the trigger body, but the trigger always fires.
Want other, better, flaming questions?
and so on....
Re:How healthy are forks? (Score:5, Interesting)
The two biggest success cases are XFree86->X.org, and GCC->egcs->GCC. Both of these were resounding successes.
XFree86 was widely criticized for moving too slow, not integrating enough new features, and having someone in charge that everyone hated. Finally, XFree86 instituted a license change that was incompatible with GPLed projects, so they forked it to X.org. All the best developers abandoned XFree86 and moved to X.org. Now, just about every Linux/BSD distro uses X.org, and no one pays attention to XFree86 any more. X.org has tons of updates, improvements, and additions which were being held back by the XFree86 leadership.
GCC has a similar story, though it's a few years older. gcc was getting decrepit, so a new renegade team started egcs. This incorporated new features, revamped the codebase, etc., and eventually everyone was using egcs instead of gcc. Finally, the gcc team just disbanded as they were no longer relevant, and egcs was renamed to gcc.
Of course, there's probably some cases of forks where the forked version went nowhere, and no one remembers it. But that doesn't matter, as it didn't hurt to have the fork (except the guy who started the fork, and ended up wasting his time on it, but that was the risk he took).
Forking generally works extremely well. The ability to fork keeps projects competitive and responsive, lest some pissed-off developers decide to fork it. It keeps maintainers from becoming dictators who only hinder the project's development, instead of fostering it, because it allows the developers to take control away from the maintainer when they've had too much.
It's too bad companies can't work more like this. There's plenty of companies where the company's owners or management are idiots and drive the company into the ground, and all that work wouldn't be lost if the employees could stage a coup, so to speak, and take over. Since software can be copied at zero cost, and OSS licenses allow forking, this can and does actually happen in the open-source software world.
Re:PostgreSQL: Why don't people use it that much? (Score:5, Interesting)
Re:Cue postgres fan bois (Score:4, Interesting)
I had to work with MS SQL for almost two years for a living and used enterprise manager daily and I have to say that I was terribly unimpressed. Granted, I didn't use all of it's features, but it largely struck me as a clutch around the incompetence of its users.
The most impressive uses I saw for it was using it to pipe data to another server and scheduling backups. In Linux I could do both with cron/python or simple mysql scripts or a web service and apache etc.
Enterprise manager is essentially another "programming by gui" tool for people who can't use a command line or write scripts who surprisingly --considering they are programmers-- constitute the majority of my coworkers, except for a java guy (a solaris fan) and a php guy (another linux fan).
Needless to say we used to run circles around the other developers, and I am a lazy ass slacker.
Re:Oracle needs to cater to business not the commu (Score:5, Interesting)
Re:Cue postgres fan bois (Score:2, Interesting)
Interesting... but it seems NASDAQ and the London Stock Exchange, among several others, do not agree with your field experience.
As another example take the Bwin case study [microsoft.com]:
The bwin Data Management Systems group uses SQL Server 2008 to continue its tradition of providing world-class performance for its sports betting customers. During peak loads SQL Server handles more than 6,000 financial transactions per second, which Grohser says translates into more than 30,000 database transactions per second.
Re:Cue postgres fan bois (Score:5, Interesting)
Have they finally fixed date handling in MSSql server? Personally, I'd say MySQL and MSSql are junk compared to PostgreSQL, but that is just because I have used all three. (I have also used DB2 which beats all three, and Oracle, which is just annoying).