Slashdot Mirror


Google Releases MySQL Enhancements

An anonymous reader noted that "Google has released its internally developed enhancements to MySQL to the open source community this week. Changes include improvements in replication, high availability configuration, and performance." It'll be interesting to see if the changes they made are of interest to other places using MySQL.

21 of 208 comments (clear)

  1. Great! by glwtta · · Score: 5, Insightful

    Did they fix that thing where it always sacrifices data integrity for speed?

    (I'm not even trolling, I do want to know if they fixed that)

    --
    sic transit gloria mundi
    1. Re:Great! by Bigby · · Score: 4, Insightful

      You can go with a slower speed and higher data integrity by switching from MyISAM to InnoDB tables. The choice is there, so I would use the term "always sacrifice".

    2. Re:Great! by xelah · · Score: 4, Insightful

      He doesn't mean 'foreign keys actually work', or 'inserting nonsense dates gives an error' or anything of that kind. He means things like:
          - The database doesn't corrupt tables. Ever.
          - If the power fails or the kernel goes away at an arbitrary instant, then when the database starts up again all of the data will be there, with committed transactions entirely present and uncommitted ones entirely gone.

      Secondly, it's not justified to just assume that MySQL will be faster even with it's limits on data integrity. It depends on your workload. Consider differences in locking strategy and query plans, for example. There's a benchmark showing scaling behaviour in one particular set of circumstances here: http://tweakers.net/reviews/674/6 ; this shows a fairly striking difference in scaling with load on a specific machine.

  2. Re:so... by bigman2003 · · Score: 4, Interesting

    No, all hail MySQL.

    I'm a recent convert from SQL Server, and I love MySQL now.

    The fact that I can download a copy and get it running in about 20 minutes is the best part. The fact that the admin is pretty damn good, and easy, is the part that keeps me using it.

    Maybe there IS something to this whole open-source thing.

    --
    No reason to lie.
  3. Google-y goodness by loafing_oaf · · Score: 5, Insightful

    Ah, now this is how it's supposed to work. No bull like, "We're releasing improvements as MSN-SQL," or any other nonsense. Yay Google.

    --
    Always someone has power over you. The thing to consider is this: Is the power good, or bad?
  4. Wont be included in MYSQL... by emj · · Score: 4, Insightful

    MySQL is dual licensed so if they add this code they can't sell their product under another license..

    1. Re:Wont be included in MYSQL... by Albanach · · Score: 5, Informative

      MySQL could license the code for distribution. Equally Google could submit the code to MySQL using their existing mecanism for code contributions and transfer copyright to MySQL.

      To suggest that the code can't be included because someone else owns copyright is just wrong - MySQL didn't develop the Innodb stuff, they license it. They could do the same here.

    2. Re:Wont be included in MYSQL... by MightyYar · · Score: 4, Informative
      If you look at the subversion repository, they also have patches for MySQL 5. It seems as though they are not going to "release" those patches until they are feature-equivalent to the MySQL 4 patches:

      These will have the same functionality as the MySQL 4 patches. Unfortunately, only some of the features have been ported. This will be updated when the patches have equivalent functionality.
      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
  5. The patch... by dfdashh · · Score: 5, Informative
    --
    df -h /my/head
  6. This illustrates a problem with commercial OSS by MikeRT · · Score: 4, Interesting

    At least with the GPL, anyway. You have a company like MySQL which actually makes a product, rather than bundling and providing services as the majority of the business. However because they can't exclusively control the app, they can't make a large amount of money except on other services and such. Then a company like Google comes in, with tons of resources, and makes great modifications to your code. The only problem is that you can't merge them into the commercial distribution without their permission. What's ironic about this is that being dual-licensed, the code would remain free for everyone to use under the GPL.

    MySQL chose this approach, but I could see how this might make others less inclined to dual-license under the GPL.

    1. Re:This illustrates a problem with commercial OSS by 99BottlesOfBeerInMyF · · Score: 4, Insightful

      This illustrates a problem with commercial OSS At least with the GPL, anyway.

      I think this illustrates a problem with trying to sell OSS as if it were closed source software, instead of relying upon contract work for improvements, customizations, services, and other closed source add ons or using that OSS as a tool yourself for some other market.

  7. Re:so... by Matje · · Score: 5, Informative

    I wouldn't be so sure: the mysql administrator is not always able to restore a backup correctly. you are well advised to restore backups through the command line. it is also impossible (at least last time I checked) to automatically include all databases in a scheduled backup. You can only select the databases that are present at the time you schedule the backup.

    furthermore, the mysql query browser screws up when you paste a query containing tabs. this particular bug was reported to mysql over a year ago. it was somewhat fixed, but not really.

    I really like mysql but claiming that the admin is better than sql server is well, pushing it.

  8. Re:Wireless Developers? by fm6 · · Score: 5, Funny

    (Snicker.) In the building where I work, there are special supply cabinets for nomadic employees who use the flex offices. These have signs on them saying "These supplies are for flexible employees only!" Every time I see one, I want to add an addendum: "Inflexible employees fuck off!"

  9. Re:Hep Me Understand... by bill_mcgonigle · · Score: 4, Insightful

    What good is speed without data integrity? If I can't trust my data, It doesn't matter how fast I can retrieve it.

    If you have a read-only situation there's no need for full ACID compliance. I've seen some contrivances where MySQL reads happen from myASM databases, and the writes go into an InnoDB database, and something on the backend happens to replicates the changes into the 'read-only' databases reliably. I've just never had, myself, an application so speed critical that it was worth doing that instead of doing PostgreSQL for everything. But my use cases aren't everybody's use cases.

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  10. Re:so... by Architect_sasyr · · Score: 4, Interesting

    Whilst the link escapes me there is a set of admin tools for MySQL that are almost identical to the 2k5 ones for MSSQL. Truth be told it doesn't look as flash, but they are still really nice to use. The one installed on my laptop (hence not being able to remember the name) allows for highlight execution of part of script a-la the SQL Studio and cut and pastes fine, I'm sure there is more than one tool out there that can do this!

    I use both MS SQL and MySQL in corporate environments for various purposes and have to say that I like both for different reasons. MySQL is "damned good" in its own right, but there are some ANSI features available in MSSQL I really have trouble living without (for example: DELETE FROM tblData WHERE fldValue = '3' OUTPUT INTO tblBackup). My thought would be to see what Google have to offer, if it helps me, then great, if it doesn't, it's great for the community, and in a few years time when MySQL has all the features I require I can finally throw out the MS SQL servers.

    My $0.02 AU

    --
    Me failed English...
    FreeBSD over Linux. If my comments seem odd, this may explain...
  11. Better replication is a start by thsths · · Score: 5, Interesting

    Because the replication support in MySQL is very basic. A single master for the whole database, isn't that a bit limited? I had to run two database processes just because I had two data sources to replicate from.

    Unfortunately, the patches from Google don't really fix the basic problem. I think MySQL needs a complete redesign of the replication function. Oracle seems to handle this much better: the replication is controlled on the master, not the client, and it works in just about any combination you can imagine. That is not to say that the MySQL replication is not useful in certain situations (it fans better), but it is very much limited to one kind of application.

    Way to go.

  12. Re:InnoDB...? by suv4x4 · · Score: 4, Informative

    Umm, InnoDB is an engine for MySQL, they are still using MySQL. They just said they use the InnoDB engine exclusively rather than the other engines such as MyISAM. They probably never used MyISAM since it doesn't have foreign keys or transactions. No respected DBA would ever use MyISAM.

    Where did I say InnoDB wasn't MySQL ..? And no, they used MyISAM initially, you can check the comments after their original post.

    In fact the irony in your post is big, as the original post addresses just people like you who are very quick to decide what a "respected DBA" would do, or not (versus reality).

    I'll quote one of the Google devs answering questions about it:

    Q: holy crap, you ran adwords on a transactionless database?

    A: Yep.

    Q: you have balls. and you're lucky as hell nothing (else) went wrong.

    A: Nope. Luck had nothing to do with it. If you don't have transactions you just roll your own. It's actually not hard at all.


    Bottom line is, you use transactions as it easier to retain data integrity and makes for simpler code. You don't use transactions to be "respected DBA". Whatever reasons they had to use MyISAM was probably sound, but after certain level of sophistication, they switched to InnoDB to make things easier to manage.

  13. Re:so... by gfxguy · · Score: 4, Insightful

    Gee, thanks. What about us jack-of-all-trade schmoes who only use the basics and aren't running company wide databases? The amount of data I use the database for is actually quite small, relatively speaking. I run (among all my other jobs) our internal webserver, which means I need to write all the code, including the presentation part, and administer the database.

    Sorry, we can't all be gurus, but I still need to back up my tables every so often.

    --
    Stupid sexy Flanders.
  14. Re:so... by chrispycreeme · · Score: 5, Funny

    Because it's a hell of a lot more fun than using a mouse trap and the mouse is just as dead.

  15. Re:so... by tempestdata · · Score: 5, Insightful

    Well said, not everyone can be the guru of everything. This macho geek attitude of 'If you cant do it in this super efficient, optimal way, you have no business doing it' is very detrimental to the OSS community. I am a software engineer, but I do basic admin stuff too, there are admins in my company who are obviously better than me.. but that doesn't mean that I cant take care of some of the duties too. I dont have to be supremely competent.. just competent enough.

    --
    - Tempestdata
  16. Re:so... by jazzkat · · Score: 5, Insightful

    BigMan, If you're coming from SQL Server, you'd be better off downloading and using Postgres 8.2.4 for windows, from here. PG is BSD licensed, which means you can bundle it with your commercial .NET-based apps for free.

    The management interface for PG is on-par with SQL Server Studio; I use both on a daily basis. It's also "20 minutes to set up and start populating data". As an added plus, Postgres has all of the "standard" syntax and referential data integrity turned on out of the box.

    You use MySQL if: a) you're developing a LAMP app for an inexpensive webhost that only allows MySQL databases, or b) all of your developers cut their teeth on MySQL and therefore productivity will drop if you ask them to use standard compliant syntax, or c) You're using an app (like SugarCRM or WordPress), the developers of which insisted on using funky MySQL-only features (instead of standard portable syntax) and therefore it's too much work to port to a standard syntax.

    In all other cases, you use Postgres or some other commercial database. Postgres scales much better than InnoDB on any combination of a) larger numbers of read-write transactions, b) larger numbers of connections, c) more processors, d) larger datasets (including and beyond 400-500GB).

    Cheers, -J