Forgot your password?
typodupeerror
Databases Programming Software Businesses Oracle Sun Microsystems IT

Has MySQL Forked Beyond Repair? 334

Posted by timothy
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.'"
This discussion has been archived. No new comments can be posted.

Has MySQL Forked Beyond Repair?

Comments Filter:
  • by Anonymous Coward on Thursday May 21, 2009 @05:13PM (#28045827)

    If Oracle provides what business needs/wants .. and that's what they have been doing thus far. They will be fine. Nothing to see hear move along.

  • by danomac (1032160) on Thursday May 21, 2009 @05:14PM (#28045845)
    It's not so much fanboys. 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.

    It now makes far more sense to develop using a different DBMS.

    Note: I've never installed or used PostgreSQL.
  • by mikael_j (106439) on Thursday May 21, 2009 @05:18PM (#28045915)

    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

  • by Anonymous Coward on Thursday May 21, 2009 @05:26PM (#28046017)

    The REAL MySQL is whichever has the trademarks. MariaDB will be another RMSDB. May even be better than MySQl, but it won't be MySQL.

    One thing most FOSS people have to learn. In the corporate world, developers are resources, they are not what makes the product. The product is made by the Company, using whichever resources it has (cash, materials, people, etc).

  • by amicusNYCL (1538833) on Thursday May 21, 2009 @05:27PM (#28046019)

    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.

  • by harryandthehenderson (1559721) on Thursday May 21, 2009 @05:27PM (#28046027)
    But they can't integrate it back into a proprietary commercial product like MySQL AB or Sun could do if they don't hold the copyrights to the contributed code to the forks. Oracle isn't stupid like Sun and just gives shit away. If they can't integrate the work back into a sellable commercial product they just aren't going to bother.
  • by Anonymous Coward on Thursday May 21, 2009 @05:37PM (#28046149)

    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.

  • by houstonbofh (602064) on Thursday May 21, 2009 @05:38PM (#28046161)

    Both MySQL and PostgreSQL are junk compared to Microsoft SQL Server.

    No, that's YourSQL.

    No, it's Bill's SQL.

  • by K. S. Kyosuke (729550) on Thursday May 21, 2009 @05:39PM (#28046187)
    Come to think of it, MySQL had been forked on the inside long before that - a thousand and one storage engine and none of them complete... (Just stating the facts.)
  • by Jurily (900488) <jurily@noSpAM.gmail.com> on Thursday May 21, 2009 @05:44PM (#28046261)

    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.

  • by jd (1658) <imipak&yahoo,com> on Thursday May 21, 2009 @05:45PM (#28046269) Homepage Journal

    Well, yes, PostgreSQL is good. So is Ingres, now that there's a GPL version. Even fewer people use that. (Hell, I don't even know a distro that has Ingres packages.)

    And, of course, those are only a few of the database engines out there. When you consider the sheer number of different types of database there are (hierarchical, relational, OLAP, object-oriented, indexed sequential flatfile, random access sequential, and so on), it's obvious that there's a lot of room for specialist engines.

    Chances are, though, that users don't have meaningful access to even a fraction of the engines out there, or any sensible way to compare what their requirements are with the types of engines they can choose between.

    Open Source is all about choice, but without the information or the means to make that choice, the choice is essentially an empty one.

  • by Anonymous Coward on Thursday May 21, 2009 @05:51PM (#28046327)
    Dude, maybe you should wake up: SQL Server supports ANSI SQL windowing function ROW_NUMBER() OVER (ORDER BY) and, of course, when you apply a predicate to the resulting row number all optimization are done.

    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...
  • by Reality Master 201 (578873) on Thursday May 21, 2009 @05:52PM (#28046373) Journal

    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.

  • by Rhapsody Scarlet (1139063) on Thursday May 21, 2009 @06:03PM (#28046499) Homepage

    Both MySQL and PostgreSQL are junk compared to Microsoft SQL Server.

    No, that's YourSQL.

    No, it's Bill's SQL.

    Isn't it really more Steve's SQL these days?

    [Insert overdone chair-throwing joke here]

  • by vadim_t (324782) on Thursday May 21, 2009 @06:08PM (#28046569) Homepage

    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.

    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.

  • Re:MySql (Score:3, Insightful)

    by loufoque (1400831) on Thursday May 21, 2009 @06:11PM (#28046601)

    Personally, I think SQLite3 (4) is going to be the database of choice for small web hosts very soon. Small, portable, fast enough.

    SQLite is fast all right, but it doesn't scale at all.

    PostgreSQL scales well, but is fairly slow on average.

    The thing with MySQL is that you were supposed to have both.

  • by h4rm0ny (722443) on Thursday May 21, 2009 @06:14PM (#28046635) Journal

    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?
  • by Your.Master (1088569) on Thursday May 21, 2009 @06:15PM (#28046649)

    Doesn't work so neatly as that. GPL is a copyright and you can infringe copyright without using literally identical material.

    I'm not so sure the ethical argument works out either. Just because some GPL advocates say they want others to study and learn from it, doesn't mean that the people who actually contributed to it intended for it to be studied, learned from, and then essentially plagiarized without the license. I doubt even most advocates who speak those words are intending that you do this.

  • by moderatorrater (1095745) on Thursday May 21, 2009 @06:24PM (#28046767)
    Because Oracle licenses can cost millions in an economy where every dollar counts whereas MySQL is free and fairly reliable. When he says "unneeded", he's probably referring not only to features but to stability and all those things that make people consider MySQL a toy database. If you need multiple 9s reliability, use something else. If you just need things to be up 90%+ of the time without any of the fancy features that Oracle gives you, then MySQL is an easy choice. At that point it comes down to whether you want to use MySQL or a more robust free database, and when it hits that point MySQL has a strong advantage in ease of use.

    I've heard the arguments that postgres is as easy as MySQL, and they're bullshit. MySQL has good GUI applications, a good command line application, market share that ensures a tutorial for everything under the sun, and an easy installer for windows and linux. Postgres has no good GUI applications that can compare with MySQL's, their command line application is just as good in its own way, and the market share that ensures you need to google multiple times to find the info you're looking for. Installing postgres is also a nightmare compared to MySQL.

    To sum up: free > $millions, easy > full-featured (in many circumstances).
  • by Anonymous Coward on Thursday May 21, 2009 @06:44PM (#28047005)

    Assuming you have a unique key on the table called ID,

    SELECT * FROM Table LIMIT 20, 10

    becomes

    SELECT TOP (10) * FROM Table WHERE ID > 20 ORDER BY ID

    ?

  • Re:MySql (Score:5, Insightful)

    by Just Some Guy (3352) <kirk+slashdot@strauser.com> on Thursday May 21, 2009 @06:47PM (#28047043) Homepage Journal

    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.

  • by cenc (1310167) on Thursday May 21, 2009 @06:52PM (#28047097) Homepage

    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.

  • by ppanon (16583) on Thursday May 21, 2009 @07:05PM (#28047253) Homepage Journal

    OTOH, a dead project provides the ultimate stability

    Not when it comes to security vulnerabilities.

  • by Grishnakh (216268) on Thursday May 21, 2009 @07:18PM (#28047379)

    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.

  • Don't believe me? Go ahead and create a multi-TB database (on one server) with a few tables that are >100GB each. Do some performance benchmarking after scaling as best you can with each DB System and let me know how that works out for you. Oh, did I mention that this has to be on one server that you replicate to the other side of the world with less than 30s of change difference between the two and that you also need local HA and global DR OUTSIDE of the replication you just setup? Oh yeah; your data change rate is ~500MB /min. Good luck!

    One server? Why? Your company is big enough that it can afford to be running OC-12 links at your site and OC-3 to both the remote, and the DR sites (500MB * 3 = 1.5GB/min, with TCP/IP overhead, in the order of 300mbps) for your database alone, let alone email and other connectivity, at going market rates of over $600k/mo, and yet you can't/don't want to cluster a couple of servers?

  • by Anonymous Coward on Thursday May 21, 2009 @07:30PM (#28047493)

    Have you USED SQL Server? Have you USED Enterprise Manager? Do not say "Yes" Because making the comment you did proves you have not, or that you are an imbecile. Enterprise Manager is quite possibly the single best thing Microsoft has ever turned out. Were it able to interface with other Databases with a fraction of the functionality it currently has, MS would be selling a copy to every damned database developer who values their time. SQL Server might not be ORACLE for scalability, but it comes real close, and it sure is a hell of a lot more scalable than MySQL, and yes, I am/was a MS Certified DBA who now develops apps based on MySQL. I am not fanboi, but I DO know both. SQL Server FTW without doubt

  • by idontgno (624372) on Thursday May 21, 2009 @07:44PM (#28047637) Journal

    Personally, I believe the bought Sun just to get control of MySQL so they could kill it, since it was taking sales away from them.

    A cogent and insightful theory, except that it's precisely like Mack buying out Segway because it was taking truck sales away from them.* Oracle doesn't have a credible product (or even a foot in the door) in any market where MySQL is already effective.

    But this won't be totally effective

    For the basic reason I stated above

    we need to get all the MySQL users to rally behind one of the forks not controlled by Oracle.

    Fair enough; I dislike Oracle's business dealings and basic arrogance enough to get me behind a genuine grassroots fork. But don't succumb to Amiga Persecution Complex [catb.org]. If it happens, the non-Oracle fork's ultimate poor uptake and small community won't be because of some sinister Oracle Trilateral Commission keeping the little guy down; it'll be the little guy just being little.

    *I'd like to point out the nifty Slashdot-compliant car analogy. OK, technically, truck analogy.

  • by Anonymous Coward on Thursday May 21, 2009 @07:50PM (#28047703)

    It's Bill's SQL which is based back in the way-back on Sybase 10 and is one of the few apps Microsoft hasn't totally trashed since acquisition.

    No, you can read up the whole development story in "Inside SQL Server book" if you want. Sybase code base was used up to version 6.5 of SQL Server. Starting from version 7.0 the product was completely re-engineered to the point that, AFAIK, there's nothing left from the original code base in today's versions. But maybe you can surprise me with some references...

    The management tools are painful, but no moreso than say Oracle. (Oracle does a lot more, but the pain, oh the pain.)

    Come on, this is simply wild trolling. So you got an "Insightful" for false statements and trolling, I guess this is how it works with some guys around here...

  • by Anonymous Coward on Thursday May 21, 2009 @08:32PM (#28048007)

    Can I see MySQL implementation of recursive/hierarchical queries and windowing functions?

    I'll trade analytical functions over syntactic sugar to page record sets anytime.

  • by klubar (591384) on Thursday May 21, 2009 @09:36PM (#28048473) Homepage
    With most of the exanmples mentioned, a small number of DB errors (lost records, index errors, sychronzation errors) are accepttable. For applications like youtube, slashdot, etc. it really doesn't matter if records are lost. I'd be more interested in hearing about major financial or business systems that run on MySql. MySQL is a nice database--good for hobby projects--even big ones--but nor really the choice for heavy lifting DBs. Most of those examples started with MySQL because they needed free more than reliable.
  • by Blakey Rat (99501) on Thursday May 21, 2009 @10:33PM (#28048877)

    Because web hosting companies don't install it. They install MySQL, or MS SQL (if they're .net hosts.) That's it.

  • Re:Fork it (Score:2, Insightful)

    by kusanagi374 (776658) on Thursday May 21, 2009 @10:53PM (#28049007)

    So, I guess you were joking right now, eh?

  • by Anonymous Coward on Thursday May 21, 2009 @11:15PM (#28049113)
    Because, to achieve superiority, one must alter context before presenting a challenge to ensure that, under these erroneous circumstances, the challenger can never win. Fair circumstances may have more accurate results, but they don't always please the uberleet.
  • by Tim99 (984437) on Thursday May 21, 2009 @11:17PM (#28049121)

    Have you USED SQL Server? Have you USED Enterprise Manager?

    In answer to your questions - Yes and Yes. It certainly was one of Microsoft's better products, when used by a knowledgeable person.
    One of the main problems with it was that I was relatively easy to use it to bork something important - Maybe that is why it was widely known as "Enterprise Mangler".
    Anyway MS now seem to have depreciated Enterprise Manager - The current tool "SQL Server Management Studio" has succeeded in hiding the structure and function of SQL Server from the typical "point and grunt" administrator.
    Every DBA should have had the opportunity to experience the joy of typing "DELETE FROM Customers" and accidently hitting the [Enter] key before the typing in " WHERE Customer ID = 'Bad Customer'".

  • Irrelevant (Score:3, Insightful)

    by kriston (7886) on Thursday May 21, 2009 @11:23PM (#28049139) Homepage Journal

    It's irrelevant. We moved everything to PostgreSQL and life is as uncomplicated and standards-compliant as life can get.

  • by maxwell demon (590494) on Friday May 22, 2009 @03:18AM (#28050301) Journal

    OTOH, a dead project provides the ultimate stability

    Not when it comes to security vulnerabilities.

    OTOH, a dead project provides the ultimate stability

    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.

  • by AftanGustur (7715) on Friday May 22, 2009 @04:34AM (#28050635) Homepage

    It's not so much fanboys. 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. It now makes far more sense to develop using a different DBMS.

    Microsoft has said exactly the same thing about Linux ..

    What will happen is that developers will support one "brand" of MySQL. Just like things are today with Linux distributions.
    Most corporate offerings support Only Redhat Enterprise Linux,or SuSE, although their products work (and are run on) different distributions.

    That will also probably be the case with MySQL.

  • Re:MySql (Score:2, Insightful)

    by Cico71 (603080) on Friday May 22, 2009 @05:08AM (#28050763) Journal

    The result is that PG is almost always faster than MySQL in the general case.

    Amen. And that is exactly why DBMSs where built in the first place: to handle efficiently, and independently from physical implementations, the the general case. A lot of solutions that implements very specific, hard-coded, physical access paths are faster than any DBMS.

    MySQL is also loaded with gotcha's and odd behavior based on the "back end" or what settings you use.

    And this is exactly what a DBMS should prevent: dependencies on physical implementations.

    If someone think this is only theory, then he should do a reality check and see what good optimizers in the Oracle, DB2, MSSQL (and I guess PostgreSQL but I have not experience there) space can do with extremely complex queries

    If I need to be extremely fast just a bunch classes of queries for a web back-end, then I may as well replicate data and just use an indexing engine.

  • by CrashandDie (1114135) on Friday May 22, 2009 @05:17AM (#28050815)

    SELECT * FROM customer ORDER BY last_name LIMIT 5, 10

    This shows records 6-10 from the customers table.

    No it doesn't. It's going to show records 6 - 15.

    Flame all you want, but at least do it properly.

  • by bytesex (112972) on Friday May 22, 2009 @07:27AM (#28051457) Homepage

    Are you trolling ? You don't have to quote your identifiers if they don't contain spaces in postgres. And if you don't know what sequences do or why they're useful, then you probably don't use any normalization anyway and you're better off using BerkeleyDB. I suppose your sequence gets 'out of sync' after an import (which doesn't include setting the sequence), and that by 'losing data' you mean that your inserts start failing on your unique constraints. This is why you reset your sequence after an import. If it's the 'holes' in your numbering that you're concerned about, then you haven't understood what primary keys are for. You don't count() with them, for example.

  • by asdf7890 (1518587) on Friday May 22, 2009 @07:47AM (#28051589)

    You're supposed to be using SQL Server Management Studio. (I don't know if you'd consider that better or worse, but... at least it's "remarkably changed" from Enterprise Manager.)

    I wouldn't agree there. From what I see SSMS is basically the old Enterprise Manager and Query Analyzer programs integrated, with some useful but minor UI improvements along the way. Oh, and a simple "project" abstraction for grouping script files and connection settings, and hooks to make other tools look more integrated.

    Not what I would call remarkably changed. Certainly better, but an evolution rather than a revolution.

    Caveat: I'm using SSMS as provided with SQL2005, we have yet to move towards SQL2008 so for all I know there could be more siginicant changes in the latest revision of the tool.

  • by kilodelta (843627) on Friday May 22, 2009 @09:04AM (#28052267) Homepage
    I do not trust a study done by Microsoft. I'd much prefer an independent agency. Granted, their newer product (MS-SQL 2008) might have solved some of the issues had with older.

    My fundamental issue with MS and databases is that it's just too expensive in terms of money and hardware.

"One Architecture, One OS" also translates as "One Egg, One Basket".

Working...