Slashdot Log In
Has MySQL Forked Beyond Repair?
Posted by
timothy
on Thu May 21, 2009 04:09 PM
from the seems-like-a-hard-case-to-make dept.
from the seems-like-a-hard-case-to-make dept.
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.'"
Related Stories
[+]
Sun Announces New MySQL, Michael Widenius Forks 306 comments
viktor.91 writes "Sun Microsystems announced three new MySQL products: MySQL 5.4, MySQL Cluster 7.0 and MySQL Enterprise Partner Program for 'Remote DBA' service providers."
which showed up in the firehose today next to Glyn Moody's submission where he writes "Michael Widenius, founder and original developer of MySQL, says that most of the leading coders for that project have either left Sun or will be leaving in the wake of Oracle's takeover. To ensure MySQL's survival, he wants to fork from the official version — using his company Monty Program Ab to create what he calls a MySQL "Fedora" project. This raises the larger question of who really owns a commercial open software application: the corporate copyright holders, or the community?"
[+]
Technology: MySQL Founder Starts Open Database Alliance, Plans Refactoring 153 comments
Gary Pendergast writes "Monty Widenius, the 'father' of MySQL, has created the the Open Database Alliance, with the aim of becoming the industry hub for the MySQL open source database. He wants to unify all MySQL-related development and services, providing a potential solution to the fragmentation and uncertainty facing the communities, businesses and technical experts involved with MySQL, following the news of the Oracle acquisition of Sun." Related to this, an anonymous reader writes that "MySQL has announced a project to refactor MySQL to be a more Drizzle-like database." Update: 05/14 20:50 GMT by T : Original headline implied that this was a project of Sun, but (thanks to the open source nature of MySQL) it's actually Monty Widenius — no longer with Sun — leading this effort.
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
Cue postgres fan bois (Score:3, Funny)
In 3, 2, 1
Re:Cue postgres fan bois (Score:5, Insightful)
It now makes far more sense to develop using a different DBMS.
Note: I've never installed or used PostgreSQL.
Parent
Re:Cue postgres fan bois (Score:5, Funny)
Or in the case of MySQL, a featureset at all. I keed! I keed!
Parent
Re:Cue postgres fan bois (Score:4, Insightful)
When you develop for something, you want to develop for a stable feature set. If there's going to be a dozen forks of a database, it becomes much more work to test all the versions and apply patches.
The very existence of these forks proves MySQL could easily be better, and/or there are major problems with the development method. Either way, it's a sinking ship. OTOH, a dead project provides the ultimate stability.
Parent
Re:Cue postgres fan bois (Score:5, Insightful)
Not when it comes to security vulnerabilities.
Parent
Re:Cue postgres fan bois (Score:5, Insightful)
Not when it comes to security vulnerabilities.
Not when it comes to security vulnerabilities.
It's stable in respect to security vulnerabilities as well. No need to create new exploits just to keep your malware compatible.
Parent
Re:Cue postgres fan bois (Score:5, Funny)
It is more accurate to characterize the recent burst of minor MySQL variations as a sporking of the code base.
Parent
Re:Cue postgres fan bois (Score:5, Insightful)
Clearly this is a troll but regardless of all other features that MSSQL may have that MySQL doesn't there is one thing that is missing: LIMIT. No, TOP is useless for a lot of stuff and the fact that LIMIT is missing results in lots of painful hacks with nested SELECTs and other crap in stored procedures.
/Mikael
Parent
Re:Cue postgres fan bois (Score:4, Insightful)
That's entirely correct. MSSQL has several nice features, but the lack of LIMIT.. well.. really limits its usefulness. The concept of a LIMIT clause is so useful that the lack of it is essentially a dealbreaker. The hacks to implement some sort of limiting using TOP are very inefficient and don't result in any sort of performance increase comparable to the one you get with LIMIT.
Parent
Re:Cue postgres fan bois (Score:5, Insightful)
Then again if LIMIT is The Thing that make you choose a DBMS you may as well get a b-tree indexing library and play around with offset by yourself...
Parent
Re:Cue postgres fan bois (Score:5, Informative)
Clearly this is a troll but regardless of all other features that MSSQL may have that MySQL doesn't there is one thing that is missing: LIMIT.
Perhaps it's because LIMIT isn't ANSI SQL [arvin.dk]? Before SQL-2008, you were supposed to use ROW_NUMBER() for that, which MSSQL does support. And no-one supports SQL-2008 yet.
Parent
Re:Cue postgres fan bois (Score:5, Funny)
Parent
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).
Parent
Re:Cue postgres fan bois (Score:5, Insightful)
No, that's YourSQL.
No, it's Bill's SQL.
Parent
Re:Cue postgres fan bois (Score:4, Funny)
Parent
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.
Parent
Already Planning my project for MariaDB (Score:3, Interesting)
From my understanding, it already supports PHP and is far faster than 5.1.
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.
Parent
Re:Already Planning my project for MariaDB (Score:4, Informative)
If they make improvements and Oracle refuses to be part of the community, then guess who is going to have the better version in the long run? I'm putting my money on that community of developers rather than the company with the overblown ego. We all know how companies with overblown ego react to the open source community after all.
Parent
Fork it (Score:5, Funny)
If I could only think up a cliched pun using the term forked, I would be sure to get the converted +5 funny mod.
If only.
Re:Fork it (Score:5, Interesting)
I got a +5 funny post once.
When I was being serious.
Parent
Re:Fork it (Score:5, Informative)
Most
Parent
Re: (Score:3, Interesting)
I didn't realize that any mod got you mod points.
Funny does nothing for your karma, though.
What the fork? (Score:5, Funny)
Just tell me which one to use for the salad, so my ignorance doesn't trip me up like it did with that bidet that one time.
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.
Parent
Re: (Score:3, Insightful)
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.
Re:PostgreSQL: Why don't people use it that much? (Score:5, Informative)
Postgresql has a terrible marketing and image, mysql doesn't.
Parent
Re:PostgreSQL: Why don't people use it that much? (Score:5, Insightful)
Religious debate. Way back in the Olden Days, postgres was an unstable mess. Absolutely godawful. Corrupted databases, lost data, slow as moleasses, constant need to restore from backups. Completely worthless.
At the same time, MySQL was fast, stable, fast, worked well enough, slightly feature incomplete, and fast.
Those old stereotypes have stuck. MySQL nowadays? Actually pretty feature complete. PostgreSQL nowadays? Pretty stable and solid.
But nobody updates their perceptions, so the old ideas shine through.
Parent
Re:PostgreSQL: Why don't people use it that much? (Score:5, Interesting)
Parent
Re:PostgreSQL: Why don't people use it that much? (Score:5, Insightful)
There's no SERIAL datatype. It's simply a shortcut for creating a sequence, and is equivalent to saying "integer DEFAULT nextval('tablename_colname_seq') NOT NULL".
Also, I'm feeling really curious about this, because:
1. Why would the sequence get out of sync in the first place?
2. If it does, why doesn't using nextval and setval work for fixing it?
3. How will the app lose data? If somehow it generates the same number twice, any attempt to INSERT a row would simply fail.
So please explain how you get what you said to happen.
Parent
Re:PostgreSQL: Why don't people use it that much? (Score:4, Informative)
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.
PostgreSQL seem to have copied that bit from Oracle, which also uses sequences. But sequences are actually superior, and here's why.
With sequences, you can emulate auto-increment behavior easily (you use the NEXTVAL or whatever the syntax in a specific implementation is, right in your INSERT). On the other hand, with sequences, you can generate the IDs first, and then generate a bunch of INSERTs with those IDs, with only two roundtrips: one for SELECT NEXTVAL - for as many records as you want - and another for multi-record INSERT. Why would you want a bunch of IDs? When you are batch-inserting records into a bunch of tables that reference each other (e.g. 10 records into table A, each of which has 10 new child rows in table B, each of which has 10 more new rows in table C). In MSSQL with auto-generated keys, you have to go about it that way:
1. INSERT records into A and retrieve the generated keys.
2. Use retrieved keys to generate INSERTs for new records in B; retrieve generated keys.
3. Use retrieved keys to generate INSERTs for new records in C.
For more tables in the hierarchy, you do more roundtrips. Now the same with sequences:
1. Request generation of keys for all records you'll be inserting, and retrieve generated keys.
2. Generate INSERTs for all new records using retrieved keys.
And it doesn't matter how deep the tree is, it's only 2 batches.
Of course, for MSSQL you can do away with generated keys completely, and use GUIDs, which can be generated on the client in the first place. But that makes indexes that much bigger, and queries that much slower...
nd heaven help you if the Sequence gets out of sync
This bit I don't understand at all. What do you mean by "sequence gets out of sync"? It's not really in sync with anything, it's just a simple counter that's guaranteed to safely produce unique incrementing values even for concurrent requests.
Parent
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:MySql (Score:5, Insightful)
SQLite is fast all right, but it doesn't scale at all.
MySQL does?
PostgreSQL scales well, but is fairly slow on average.
Honestly, that hasn't been true in years.
The thing with MySQL is that you were supposed to have both.
And yet somehow ended up with neither.
Parent
Re:MySql (Score:5, Informative)
In comparison? Yes. When you're doing simultaneous writes from multiple threads, SQLite's lack of fine-grained locking kills performance.
A couple of months back I did some benchmarking of MySQL and SQLite3 as possible storage backends for a website. The test load was a task consisting of two SELECTs, an UPDATE, and an INSERT. With only one or two simultaneous clients, SQLite3 was faster. With three clients, they were tied. At 50 clients, SQLite3 was taking over 100 times longer than MySQL.
Parent
Re:MySql (Score:5, Informative)
PostgreSQL scales well, but is fairly slow on average.
Really? Because any recent review of Postgres shows that it stomps the pants off MySQL in all cases except very simple queries against very small tables. (And really, who gives a !@#% about that scenario?)
Also....
1) It's data validation is excellent.
2) It's extremely stable. In YEARS of working with it, I've had ZERO integrity issues despite managing rather large data sets.
3) Particularly important: it maintains good performance as the query complexity soars. While it can take a bit of tuning, I've done 12 table joins with combined inner, outer, and subqueries and millions of records, with an average return time of around 0.2 seconds. The statement alone was two pages, printed form, on a single-core Athlon 64 with ATAPI drives and 1 GB of RAM.
4) It's FREE FREE FREE!
5) It includes excellent near-realtime replication. (functionally analogous to MySQL replication, which is nice when it works, but since it usually doesn't, well...)
1994 called. It wants its stale information back.
Parent
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: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.
Parent
Re:How healthy are forks? (Score:4, Insightful)
Sorry for replying to myself, but another fork in the making is OpenOffice.org->Go-OO. This one is interesting because it's more similar to the MySQL fork, in that the main project is controlled directly by a big corporation, rather than a nonprofit entity as GCC and XFree86 were. Apparently a lot of OO.o contributors weren't happy with the control Sun had over OO.o, and believed that Sun wasn't very accepting of patches contributed from outside Sun. So they forked it to "Go-OO", which is now included by default in several Linux distros.
Parent
Re:How healthy are forks? (Score:5, Informative)
And one more fork in the making that looks like it is going to have the same impact as XFree/X.org eventually, if not bigger: EGLIBC [eglibc.org]
Parent
Oracle doesn't care (Score:5, Insightful)
Oracle doesn't care about losing the trust of the MySQL community. They already have a database to sell; they're probably more interested in the vertical integration with OS, hardware, and programming language tools.
I wouldn't be surprised if they were happy to sell the MySQL business unit, or kill it completely.
Database abstraction layers people (Score:4, Insightful)
The LAMP stack was always fundamentally flawed because the 'M' was not really an open source public project, where everything else was. We need to replace the M with a true open source project, and I hope the best project wins.
What everyone failed to do, that they should have done years ago, as a standard was build database abstraction layers. I know people will argue about performance bla, bla, bla but I don't buy that. We should have been doing it for years, exactly for this reason. Instead everyone was lazy, picked MYSQL because it was free/cheap/easy to learn.
Now, hopefully get off our lazy collective asses and build in database abstraction layers in to our web apps the way we should have from the start, or replace the 'M' with something really open source and public that does not belong to a company.
My only hope is that Oracle might do the right thing and cut it loose as a fully open source project to develop to its fully potential.
Re:Oracle needs to cater to business not the commu (Score:5, Interesting)
Parent
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.
Parent
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.
Parent
Re:Oracle needs to cater to business not the commu (Score:4, Informative)
Wikipedia
Is 99% cached content, served as effectively static files
Google
Has some developers who have it installed; none of their major services are based on it
Facebook
According to the video of how it works, is basically a graph database, on top of a giant key:value table, on top of memcache, on top of mysql -- ie, they do their best to avoid actually hitting the database, and when they do, they only make use of the most basic functions (and it isn't even good enough for that, so they're working on a replacement)
Twitter
While large, it's hardly complicated in terms of database schema, and it /still/ falls over all the time :P
The other sites, I've never seen any behind the scenes reports on.
While "we have at least one copy of mysql installed somewhere in our organisation" is common, "we are using mysql as the central database for our heavily stressed mission critical systems, and it works great" is much rarer :-P
Parent
Re:Oracle needs to cater to business not the commu (Score:5, Interesting)
Parent
Re:Oracle needs to cater to business not the commu (Score:5, Informative)
I've heard the arguments that postgres is as easy as MySQL, and they're bullshit.
Lets see:
Postgres has no good GUI applications that can compare with MySQL's
Why you need more than one is beyond me. Isn't Pgadmin [pgadmin.org] enough?
their command line application is just as good in its own way
Well, ok. Whatever 'in its own way' means.
and the market share that ensures you need to google multiple times to find the info you're looking for.
Postgres has some of the best documentation of any open source project I've seen [postgresql.org]. Sure, MySQL is good as well, but lets not spread bullshit here.
Installing postgres is also a nightmare compared to MySQL.
You mean in a download-the-msi-and-double-click-on-it way, or the apt-get-install-it way?
To sum up: free > $millions, easy > full-featured (in many circumstances).
Well, it's fully-featured, but not necessarily all of those features at the same time. Try doing full-text indexing on a database with foreign-keys on it in MySQL sometime.
Parent
Re:Knowing Oracle... (Score:5, Insightful)
That's an interesting point of view. I saw things slightly differently, so say what you think of my take on it. I agree that Oracle might not actually care so very much that they got a free MySQL when they bought SUN. But in so far as they do pay attention things, I would think they'd steer people away from PostgreSQL toward MySQL rather than the other way around. My reasoning is that there is a clear and significant gap between MySQL and Oracle DB. MySQL is never going to draw many customers away from using Oracle DB, and mostly the other way around as well. But I see the gap between PostgreSQL and Oracle as being much smaller, both in the capabilities of the two databases and the easier time you have moving from one to the other (in either direction). I think that makes PostgreSQL more of a threat to the Oracle install base and thus something they would prefer to keep people away from. Using MySQL as a stalking horse makes more sense to me. Thoughts? Matches the real world or too conspiracy?
Parent