Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Google Releases MySQL Enhancements

CmdrTaco posted more than 7 years ago | from the what-an-exciting-morning-this-isn't dept.

Google 208

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.

cancel ×

208 comments

Sorry! There are no comments related to the filter you selected.

so... (1)

shinygerbil (926573) | more than 7 years ago | (#18870969)

All Hail Google?

Re:so... (4, Interesting)

bigman2003 (671309) | more than 7 years ago | (#18871033)

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.

Re:so... (5, Informative)

Matje (183300) | more than 7 years ago | (#18871259)

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.

Re:so... (2, Interesting)

bigman2003 (671309) | more than 7 years ago | (#18871671)

I don't want to get all niggly...

But I didn't claim that MySQL admin was better than SQL Server admin- I just said it was damn good.

I have had much better success with backup and restore on MySQL than I have had on SQL Server. I find the interface and functionality much easier to understand and much more obvious. The damn DTS in SQL Server is a black hole to me...admittedly I had a database replicate in the wrong direction about 4 years ago and I am still gun-shy when using it. Yes, it was my fault, but MySQL lays things out a little more clearly.

Re:so... (0)

Anonymous Coward | more than 7 years ago | (#18871951)

It's always easier to lay things out when you have less there.

Re:so... (1)

Krazy Nemesis (795036) | more than 7 years ago | (#18872395)

Yeah, but why use a cannon to kill a mouse?

Re:so... (5, Funny)

chrispycreeme (550607) | more than 7 years ago | (#18872547)

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

Re:so... (0, Flamebait)

Mr. Underbridge (666784) | more than 7 years ago | (#18872071)

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.

I'd echo the "command line" solution - any admin who couldn't whip up a script in 10 minutes to backup all databases that exist when the script is *run* isn't worth much.

Re:so... (4, Insightful)

gfxguy (98788) | more than 7 years ago | (#18872261)

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.

Re:so... (5, Insightful)

tempestdata (457317) | more than 7 years ago | (#18872589)

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.

Re:so... (1)

misleb (129952) | more than 7 years ago | (#18872269)

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've also had some serious problems with the ODBC client for Windows. There was one bug when accessing views on a MySQL > 5.0.10 server through ODBC that, as far as I know, has yet to be fixed. It has been open for over a year. And it is pretty serious. Basically you can't query a view from MS Access (didn't try from other programs). I had to get a user supplied patch, figure out how to recreate their ancient VC6 build environment, and recompile the ODBC client.

But I guess I should be grateful that I could recompile with a user supplied patch. There's commercial software that I use right now that leaves me helpless until the company gets around to releasing a binary patch. At least with open source there is some chance that I can get in there and fix a problem myself (i've done it).

-matthew

Re:so... (1)

J0nne (924579) | more than 7 years ago | (#18872363)

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.

http://sourceforge.net/projects/automysqlbackup/ [sourceforge.net]
Sure, it's a shell script, but it does what you want (in the list of databases, just type 'all').

Re:so... (2, Informative)

Matje (183300) | more than 7 years ago | (#18872513)

[blatant selfpromotion] if you're looking for something similar (but with much less functionality) written as a dos batch script, try this http://www.jijenik.com/projects/mysqlbackup/ [jijenik.com] . It will even email you an compressed and encrypted copy of the backup file. [/blatant selfpromotion]

Re:so... (2, Informative)

cdwiegand (2267) | more than 7 years ago | (#18871705)

I call shill. I used Sql Server 2K and 2K5 at my last job, and I would LOVE to have SQL Server Studio for MySql - the admin tools SUCK. The ones that use the native dll crash, and the ones that use .Net bindinds (i.e. Toad from Quest) have bugs of their own, and crash every once in awhile too. Also, none of them hold a candle to the usability of SQL Server Studio - executing part of a script, and wanting to cut and paste the result to show what I got (standard practice here) is difficult in MySql's tools (even third party ones), but SQL Server makes it easy.

Re:so... (4, Interesting)

Architect_sasyr (938685) | more than 7 years ago | (#18871847)

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

Re:so... (0, Troll)

hey! (33014) | more than 7 years ago | (#18872467)

Well, that's saying something, because from my point of view SQL Serer's admin tools suck.

I mean honestly, a database that's supposed to be for the enterprise, but it lacks even rudimentary log analysis tools?

Also, way too much of what go's on in Enterprise Manager is undocumented. Oh, the way to do it in the GUI is documented, but under the covers it is impledmented with undocumented Transact SQL. The reason this matters is that making changes on production databases through a GUI gives me the willies. I'd rather write a script I can test, then know exactly what is done, not be at the mercy of a slip of the mouse. If your mouse does slip, you may never know why something happened, due to the above mentioned lack of log tools.

I'm not anti-GUI. GUI has its place, for example in prototyping. But when getting it right matters (or when finding out what went wrong matters), you want to be able to do everything in a script. It's nice to have a GUI, but its essential to have well documented scriptable operations for everything you might want to do.

I think it is interesting to compare MySQL to SQL Server, because they have analogous natural niches. SQL Server is a good choice as a simple backing store to an application created in Visual Studio. MySQL plays a similar role in the LAMP stack.

SQL Server is not a good choice for situations where many different applications use the data, especially if the way they use the data requires sophisticated relational functionality. It isn't that SQL Server is quirky, although it is. It isn't that SQL Server's treatment of advanced queries is flaky, although it is. It isn't even that SQL Server only gives you the crudest of physical DBA options, althogh it does.

The killer management deficit of SQL SErver is the inability to detect problems created by rogue programs, diagnose, and correct them. With a more capable databases, it is often quite easy to undo the damage of a rogue program without resorting to backups. This includes undoing arbitrary deletions and modificatoins of important data.

Everything in a relational database should be undoable in strict choronlogical order to any point in the past you specify. Any sequence of operations should be undoable even if other transactions are interleaved with them, provided no inconsistency results. I have personally extracted all the transactions done by certain people, found out various ways they were screwing up the data, and with a touch of my magic wand made it as if they had always done the right thing.

This is career saving/making stuff we are talking about here. SQL Server flunks. I don't know about MySQL.

There are aftermarket log analyzers for SQL Server. They are a must-have if you run SQL Server. But even so, they are not easy to use. The log file structure in SQL server is not structured to support the kinds of operations DBAs need to do. This may be in an effort to eke out a bit more transaction speed: updates to databases aren't just in the database files; the full scope of the change must be reflected by changes to the log file before and after the data file per se is changed. Making the log lest robust could create a significant improvement in transaction throughput.

Finding what's "under the covers" (2, Informative)

VampireByte (447578) | more than 7 years ago | (#18872607)

Also, way too much of what go's on in Enterprise Manager is undocumented. Oh, the way to do it in the GUI is documented, but under the covers it is impledmented with undocumented Transact SQL.


You can use the SQL Server Profiler tool to capture the SQL that's run when you do something in Enterprise Manager. I've done this when I wanted to do something in my own admin tools that I know can be done in EM.

Re:so... (0)

Anonymous Coward | more than 7 years ago | (#18872049)

OOG loves open source.
You did not see reason open source good.
MySQL made you suspect that open source maybe good.
OOG loves MySQL.
OOG loves Google.

Re:so... (1)

pvera (250260) | more than 7 years ago | (#18872597)

I use both SQL Server 2000/2005 and MySQL. There is no way in hell that you can compare the out-of-the-box admin tools that ship with MySQL with the Enterprise Manager+Query Analyzer in SQL Server 2000 and the SQL Server Management Studio in 2005. This is why most people use phpmyadmin, Aqua Data Studio or an equivalent third party tool instead of the CLI interface.

Also, installing SQL Server 2000 and/or 2005 is pretty effortless. Just run the installer and the basic defaults will do for most people. When you say "The fact that I can download a copy and get it running in about 20 minutes is the best part." you are implying that you can't install SQL Server in 20 minutes. Sure, you can't download it because it isn't free, but installing it takes just a few minutes.

That said, I am a fan of MySQL. It is a great product and the price is right. Even paying for commercial support is affordable. SQL Server is awesome, but I don't agree with the pricing for the developer and standard editions. SQL Server 2005 developer should be free, and SQL Server Standard should cost no more than $300.

There's another thing I really like about MySQL is that all of the database objects for one database are not clumped together into one file like SQL Server does (SQL Server allows you to spread out one database across many files, but MySQL saves each object within the database as one or more files). This has not caused me to lose data (yet) in the past 7 years, but it did create some hairy situations.

Re:so... (1)

bigman2003 (671309) | more than 7 years ago | (#18872755)

Sorry, I was not referring to the CLI interface at all. The only thing I have used that for is to import some databases from a PHPMyAdmin dump.

I'm using the GUI tools from the MySQL site:

http://mysql.org/downloads/gui-tools/5.0.html [mysql.org]

I just assumed that most people- especially those familiar with SQL Server would be using the GUI.

Google's Not Evil Today (1)

neoform (551705) | more than 7 years ago | (#18871207)

*chalks it up on the board*

"GoogleIsGood"

Re:so... (1, Funny)

bill_mcgonigle (4333) | more than 7 years ago | (#18871309)

All Hail Google?

No. Remember - Google uses open source but never gives anything back.

Great! (5, Insightful)

glwtta (532858) | more than 7 years ago | (#18870971)

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)

Re:Great! (4, Insightful)

Bigby (659157) | more than 7 years ago | (#18871013)

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".

Re:Great! (0)

Anonymous Coward | more than 7 years ago | (#18871103)

so I would use the term "always sacrifice".

you would, would you.

Re:Great! (0)

Anonymous Coward | more than 7 years ago | (#18871427)

you would, would you.


He probably could care less. ;)

Frankly... (1, Funny)

Anonymous Coward | more than 7 years ago | (#18871253)

I'd argue speed at all. But InnoDB wins hands god-damned fucking down over the drek that is MyISAM. MyISAM is a carcass; whom can deny the Angel of Death? What Shai-hulud has decreed shall be.

InnoDB: When your clients want to run crap that doesn't support Postgres, and you don't want to run myisamchk every other day.

Re:Great! (2, Insightful)

Matt Perry (793115) | more than 7 years ago | (#18872387)

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".
According to the docs MyISAM is the default table format [mysql.com] . So how about "sacrifice by default." Sure, you can change the default to InnoDB but why isn't it set to InnoDB already? I find it strange that you have to enable data integrity features in a RDBMS.

Re:Great! (2, Funny)

rnicey (315158) | more than 7 years ago | (#18872549)

Because then they'd have to admit that they're a fancy SQL parser, and most of the real meat is contributed by a company called Oracle (ahem Innobase). That said, InnoDB is a real nice data engine.

Silly Question (2, Informative)

bill_mcgonigle (4333) | more than 7 years ago | (#18871225)

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

It's a silly question, really. MySQL is about performance. If you can trade off integrity for speed, and you need speed, use MySQL with myASM tables. If you need that integrity and would benefit from MVCC [wikipedia.org] use PostgreSQL. If you need MySQL for some reason (web hoster, etc) and want the integrity, use InnoDB tables (for version 5 - something else for version 6), though there's a performance hit and you still don't get MVCC.

Re:Silly Question (1)

afidel (530433) | more than 7 years ago | (#18871319)

That's funny, your own link to Wiki contradicts your assertion that you don't get MVCC with MySQL.
MySQL when used with InnoDB [7] or Falcon [8] storage engines.

Re:Silly Question (1)

bill_mcgonigle (4333) | more than 7 years ago | (#18871677)

That's funny, your own link to Wiki contradicts your assertion that you don't get MVCC with MySQL.

Thanks for making me go look at this.

From the MySQL site:

InnoDB implements MVCC with a combination of multiple versions of record and write locks on key ranges and records. In Repeatable Read transaction isolation mode, InnoDB has update anomalies that require the use of the non-standard SELECT ... FOR UPDATE syntax. The result of a simple SELECT and a SELECT ... FOR UPDATE may differ within the same repeatable read transaction.

Falcon uses versions of records and transaction identifiers to provide repeatable reads and to recognize and prevent inconsistent updates by concurrent transactions. Repeatable read is handled by providing each transaction with the version of each record that was committed when the transaction started.
So it would appear that InnoDB can do MVCC, if you use special syntax. I'm not likely to give full credit for solving the problem set that way.

The Falcon backend appears to do MVCC correctly - it appears to now be available in MySQL 5.2, which is currently in alpha release. I don't follow MySQL too closely, but it seems that this is no long going to have to wait for 6.0 with Firebird, which was the story I heard several months ago. That's good, it'll help people transition more gracefully.

I didn't search enough to find benchmarks of myASM vs. Falcon tables - that would be good to see. Jim Starkey is doing the design work. He's already proven his mettle with Interbase/Firebird. I'd be so tickled if MySQL became a first-class database with Falcon, since it already has the popularity/mindshare.

Hep Me Understand... (0)

Anonymous Coward | more than 7 years ago | (#18871405)

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

Please help me understand this perspective. (?)

Mod parent up! (0)

Anonymous Coward | more than 7 years ago | (#18871563)

Hep me, too - what good is ANY data storage mechanism that doesn't offer data integrity as feature zero?

Can someone describe what loss of integrity we're talking about?

Re:Mod parent up! (1, Informative)

Anonymous Coward | more than 7 years ago | (#18872037)

Slashdot is a perfect example of a loosey-goosey "good enough" MySQL application, where speed is important. The data accuracy isn't that important. All that matters is that it works most of the time - a comment lost here or there, or slightly overlapping multiple pages in a story, hardly matters in the big picture. If your comment doesn't "take", just try again, no big deal. OTOH you wouldn't want this behavior for your corporate accounting ledgers, so there you'd be safer using a "real" database designed from the ground up based on the correct principles of database theory, such as PostgreSQL.

Re:Mod parent up! (1)

JavaRob (28971) | more than 7 years ago | (#18872377)

Slashdot is a perfect example...
Yeah -- I'm confused as to why Taco didn't mention that. Taco -- are YOU interested in the changes Google made?

I think /. has put a lot of time into tweaking their install as well... not sure if they go so far as making code changes to MySql, though.

Re:Mod parent up! (0)

Anonymous Coward | more than 7 years ago | (#18872457)

The "slightly" (ha) overlapping pages in a story are a major factor in my assessment of Slashdot as a pathetic application, if it can't even handle pagination correctly. Is this the database's fault?

Re:Mod parent up! (1)

Safety Cap (253500) | more than 7 years ago | (#18872619)

Examples include:
  • ignoring "not null" constraints,
  • accepting and silently truncating data (stuff a 30-char string into a varchar20 field and you'll loose that last 10 chars without ever knowing it),
  • accepting impossible dates, etc., etc.

Re:Hep Me Understand... (4, Insightful)

bill_mcgonigle (4333) | more than 7 years ago | (#18871747)

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.

Re:Hep Me Understand... (2, Informative)

_|()|\| (159991) | more than 7 years ago | (#18872011)

What good is speed without data integrity?

In this context, data integrity refers to mechanisms that prevent you from doing something bad. If you never do anything bad, these mechanisms aren't strictly necessary. It's analogous to the difference between dynamically and statically typed program languages.

What do I mean by "something bad"? Without referential integrity, you could have the database equivalent of dangling pointers. Without concurrency controls (either through locking or the previously mentioned MVCC), one user could accidentally blow away another's changes. (Look up isolation levels for some specific examples.) Without transactions, a failed update could leave the database in an inconsistent state (e.g., the money left your savings account, but never made it to your checking account).

Re:Hep Me Understand... (2, Informative)

Safety Cap (253500) | more than 7 years ago | (#18872551)

If you never do anything bad, these mechanisms aren't strictly necessary.

Show me one programmer who hasn't done something 'bad' (i.e., made a mistake) and I'll say, "Just let him write his second line of code," just after I pry the delete, backspace and ctrl keys off his keyboard.

Re:Great! (1, Interesting)

Anonymous Coward | more than 7 years ago | (#18871361)

They did that in 5.0 with strict mode.

http://dev.mysql.com/doc/refman/5.0/en/server-sql- mode.html [mysql.com]

Re:Great! (4, Insightful)

xelah (176252) | more than 7 years ago | (#18872101)

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 [tweakers.net] ; this shows a fairly striking difference in scaling with load on a specific machine.

Re:Great! (1)

Simap (158205) | more than 7 years ago | (#18872677)

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


You can use InnoDB tables with a write-through battery-backed cache and the performance is very similar, yet 100% ACID safe. Dell 2950s come with this standard (not a plug, just something i noticed)

Fit for duty? (2, Funny)

Anonymous Coward | more than 7 years ago | (#18870999)

Those Googlians are stupid, don't they read slashdot? If they did they'd know MySQL isn't fit for ANYTHING! Sheesh.

Re:Fit for duty? (3, Insightful)

alienmole (15522) | more than 7 years ago | (#18871215)

Yes, but imagine the world's biggest Beowulf cluster of MySQL servers.

Now imagine them in Google's data centers.

Which, in fact, is where they are. Now do you see?

Re:Fit for duty? (1)

Frosty Piss (770223) | more than 7 years ago | (#18872067)

But how can this be? According to the Slashdot Zingiest, MySQL isn't a "real" DB server. Only rubes use MySQL, real DB admins insist on PostgresSQL... So according to the Slashdoters with the low ID numbers, than, Google is just a bunch of rubes!

Re:Fit for duty? (1)

alienmole (15522) | more than 7 years ago | (#18872235)

What are they teaching in troll school these days? If Google were running PostgreSQL, they wouldn't need such huge clusters, and then they wouldn't be as cool!

Nice to see the feel-good side of open source (0)

Anonymous Coward | more than 7 years ago | (#18871005)

It feels all warm and fuzzy, makes me feel that way too.
Oh, no, wait I'm just growing mold.

It's nice to see this though. It's a good change from the internal politics/fighting, or the complaints of other one OSS group using anothers OSS code - it emphasizes what the while thing is supposed to be about.

Captcha: 'sneaking' - so appropriate for an AC like me.

Google-y goodness (5, Insightful)

loafing_oaf (1054200) | more than 7 years ago | (#18871055)

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.

Fucks Zeus Twofo You (-1, Troll)

Anonymous Coward | more than 7 years ago | (#18871089)

http://www.tubgirl.com [twofo.co.uk] [tubgirl.com]

Wont be included in MYSQL... (4, Insightful)

emj (15659) | more than 7 years ago | (#18871091)

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

Re:Wont be included in MYSQL... (1)

Tokimasa (1011677) | more than 7 years ago | (#18871191)

Doesn't it depend on the license that Google released their improvements under? If the license that Google uses allows for commercial distribution, then it could be sold.

Re:Wont be included in MYSQL... (2, Insightful)

vivaoporto (1064484) | more than 7 years ago | (#18871289)

Yes it does. And it was GPL, as it's said in TFA. So, no dual license if it is included.

Re:Wont be included in MYSQL... (5, Informative)

Albanach (527650) | more than 7 years ago | (#18871209)

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.

Re:Wont be included in MYSQL... (3, Insightful)

BinaryPower (1089809) | more than 7 years ago | (#18871249)

Google doesn't sell a lot of software products. Some, but not a lot. It's intended purpose was to speed up their own internal system, and so they decided to share their work because it probably works well.

Re:Wont be included in MYSQL... (2, Insightful)

diegocgteleline.es (653730) | more than 7 years ago | (#18872501)

Also, because it's just cheaper for them if they get it merged in the mainstream mysql tree. Basically, it's stupid not to release it.

Re:Wont be included in MYSQL... (2, Informative)

MightyYar (622222) | more than 7 years ago | (#18871287)

That's true, but only part of this release is a patch - the other two items are tools:

  • mypgrep.py - a tool, similar to pgrep, for managing mysql connections
  • compact_innodb.py - compacts innodb datafiles by dumping and reloading all tables
  • patches - patches to add features to MySQL 4.0.26

It will be interesting to see what happens with the patches.

Wireless Developers? (1)

BigDumbAnimal (532071) | more than 7 years ago | (#18871177)

The situation is similar among wireless developers, almost 30% of who use Microsoft SQL Server compared to the 20% who use MySQL.
What is a wireless developer? Cell phone companies? Programmers who use laptops?

Re:Wireless Developers? (5, Funny)

fm6 (162816) | more than 7 years ago | (#18871479)

(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!"

Re:Wireless Developers? (1)

Greedo (304385) | more than 7 years ago | (#18872029)

Most of the developers I know are wired ... on Red Bull, that is.

This illustrates a problem with commercial OSS (4, Interesting)

MikeRT (947531) | more than 7 years ago | (#18871193)

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.

Re:This illustrates a problem with commercial OSS (1)

dfdashh (1060546) | more than 7 years ago | (#18871275)

Clarification: MySQL provides tons of services (http://mysql.com/support/). It is just that they are only for their "Enterprise" products. Of course, those are under the commercial license...

Re:This illustrates a problem with commercial OSS (4, Insightful)

99BottlesOfBeerInMyF (813746) | more than 7 years ago | (#18871467)

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.

Re:This illustrates a problem with commercial OSS (0)

Anonymous Coward | more than 7 years ago | (#18872033)

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.


But that has it's own share of problems... Namely make sure the software sucks so that there is a market for improvements, customizations, services and support.

Re:This illustrates a problem with commercial OSS (1)

99BottlesOfBeerInMyF (813746) | more than 7 years ago | (#18872301)

But that has it's own share of problems... Namely make sure the software sucks so that there is a market for improvements, customizations, services and support.

No, that is the problem with relying upon support as your main revenue stream, not with any of the business methods I listed.

You can make money developing an OSS database by:

  • offering to code improvements, bug fixes, and interfaces for anyone willing to pay for them
  • selling any product or service that relies upon a database and using the OSS database as a tool for that purpose (while not paying to license a commercial one and getting free improvements form others)
  • building custom solutions for a given company's workflow based around the tool, e.g. a database for tracking the shipments of shoes through customs agencies

None of those provide any motivation for trying to hold back the functionality of the product, nor to do shoddy work in the hopes that you can get paid again for fixing your own problems, because it is a competitive market and someone else can always do better work and drive you out of business.

I think the main thing about OSS licensing that people coming from a closed source sales model mistake is that OSS is not a way to get more money from software you develop. It is a feature of the product that benefits end users and allows you to undercut commercial and closed source offerings with flexibility and price. The people who came up with OSS licensing were both users and developers and the license was designed to benefit them as users. It is not a good business move to open source your code instead of selling it as closed source, unless the cash you get from selling it is not worth the trouble or using the software is more important to you than selling it or if you need a way to make your product better than a competitor and are willing to change to a less profitable model to do it.

WTF? (3, Interesting)

mekane8 (729358) | more than 7 years ago | (#18871233)

MySQL is the second most popular database behind Microsoft SQL Server, according to a winter 2006 report from Evans Data. Oracle comes in second if you combine its database offerings. The situation is similar among wireless developers, almost 30% of who use Microsoft SQL Server compared to the 20% who use MySQL.
What exactly does Oracle offer besides database offerings? How do you not include its "database offerings" when you're ranking the most popular databases? Is information week retarded? The vague reference to "wireless developers" is also weird. Wouldn't the Google page be more worth reading and more coherent?

Re:WTF? (2, Informative)

0racle (667029) | more than 7 years ago | (#18871347)

What exactly does Oracle offer besides database offerings?
Application Server, ERP, some other stuff.

What they are talking about is counting Oracle Standard, Oracle Enterprise and other Oracle database editions as separate offerings to make MySQL look more important.

Re:WTF? (3, Informative)

Smidge204 (605297) | more than 7 years ago | (#18871357)

The word is "combine" not "include" - Oracle offers a variety of Database "flavors" (editions) as well as services and utility suites. If you "combine" these offerings, Oracle comes in second.

=Smidge=

Re:WTF? (2, Insightful)

Em Ellel (523581) | more than 7 years ago | (#18871363)

What exactly does Oracle offer besides database offerings?
Erm, check out their web site [oracle.com] - look at the other two columns of products besides database - they offer quite a few products including little things like Oracle ERP, Peoplesoft and Siebel.

-Em

Oracle Rdb (1)

Guanix (16477) | more than 7 years ago | (#18871513)

There's also Oracle Rdb [oracle.com] , a product for OpenVMS that, as far as I understand, is quite different from the regular Oracle database. More details at Wikipedia [wikipedia.org] .

Re:WTF? (1)

allenw (33234) | more than 7 years ago | (#18871475)

I parsed that as intending to mean that the Evans Data report splits the various Oracle DB offerings (Enterprise Edition, Standard Edition, etc) into separate products for purposes of calculating market share. Of course, that begs the question of how they are calculating the MySQL installations. Does usage under the commercial/enterprise license count differently than the open source version?

Re:WTF? (1)

PinkPanther (42194) | more than 7 years ago | (#18871887)

It also begs the question as to what they define "wireless" to mean, as SQL Anywhere [ianywhere.com] was not mentioned at all [ianywhere.com] .

Re:WTF? (1)

Simon (S2) (600188) | more than 7 years ago | (#18871487)

What exactly does Oracle offer besides database offerings?

Middleware [oracle.com] and applications [oracle.com] like Oracle Fusion, Oracle E-Business Suite, Oracle On Demand, PeopleSoft Enterprise, Siebel, JD Edwards EnterpriseOne, JD Edwards World and so on.

Re:WTF? (1)

TopSpin (753) | more than 7 years ago | (#18871549)

What exactly does Oracle offer besides database offerings?
Three different widespread ERPs (Oracle E-Business, PeopleSoft and JDE,) Siebel, a Java IDE (at one time quite popular,) a database design platform, OLAP stuff (their own and now Hyperion) and application containers. They also have some not so widely used products including a collaboration system (email, etc.) and some sort of Oracle backed file system. They have a cluster file system for Linux that's gotten some play. Oh, and they're an OS vendor now with their 'Unbreakable Linux' thing.

Oracle is a monster.

"wireless developers"
Yeah, I don't get that either. All I can say for sure is that I have no wires sticking out of me anywhere.

Re:WTF? (0)

Anonymous Coward | more than 7 years ago | (#18871719)

What exactly does Oracle offer besides database offerings? How do you not include its "database offerings" when you're ranking the most popular databases? Is information week retarded?
No, but you might be. The keyword you skipped over is combine. Oracle does not have a single database product more popular than MySQL, but all of its database products combined etc. etc.

But they aren't really combining separate products (1)

brokeninside (34168) | more than 7 years ago | (#18872691)

They're combining different versions (10g and 9i) of the same product. I'd have more sympathy for the distinction for the split if they (a) differentiated along those lines for all vendors or (b) they were differentiating distinct products such as the flagship Oracle RDBMS vs. the products the various database vendors purchased by Oracle that they still offer for sale while the features are being folded into future versions of Oracle proper.

Re:WTF? (0, Redundant)

MrMunkey (1039894) | more than 7 years ago | (#18871941)

This is a tad off topic, but MySQL deserves its spot up there.

We've been using MySQL for several years, and recently we decided to purchase the MySQL Enterprise license. Their monitoring tools are AWESOME! I get a text message if a server goes down, replication stops, etc. There are also historical reports and graphs of very detailed information that, I think, you can't get with MRTG and other SNMP monitoring tools. It also gives me suggestions for improving MySQL's performance on that particular server. Even better, it's dirt cheap compared to the other enterprise offerings, and you get support with it.

All in all, I love MySQL, and Google releasing code that makes it better can only be good IMO.

They differentiate between 9i and 10g (3, Interesting)

brokeninside (34168) | more than 7 years ago | (#18872379)

The numbers from the Evans Data report [informationweek.com] :
  1. MS SQL - 61%
  2. mSQL - 40%
  3. MS Access - 38%
  4. Oracle 10g - 22%
  5. Oracle 9i - 20%

The survey ``asked developers at 517 companies in its 2006 winter survey what database they developed with'' with developers allowed to give multiple answers. It isn't clear to me why Oracle was split between two versions while none of the other databases were.

Re:They differentiate between 9i and 10g (1)

ahmusch (777177) | more than 7 years ago | (#18872701)

I guess we're lucky that they didn't differentiate between 9i Release 1 and 2, and 10g Release 1 and 2.

InnoDB...? (2, Interesting)

suv4x4 (956391) | more than 7 years ago | (#18871327)

Apparently something has changed in Google's usage of MySQL. They have this to say for their patch:

"In a perfect world, each feature would be provided as a separate patch and all code would be as portable as MySQL. We are not there yet. These have been implemented and deployed on Linux. Also, some of these features only work with InnoDB, because we use InnoDB."

InnoDB is the slower, but safer/transaction-able way to use MySQL. In an earlier blog entry "let's get a real database", Google revealed they run AdWords/AdSense on MySQL, and they rolled up their own transactions as they went for speed with MySQL. Now we see they changed their mind.

So I suppose that goes to show, never mind how limited your application, you better stay away from MyISAM: it'll bite you sooner or later.

Re:InnoDB...? (1, Redundant)

DeionXxX (261398) | more than 7 years ago | (#18871813)

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.

Re:InnoDB...? (4, Informative)

suv4x4 (956391) | more than 7 years ago | (#18872221)

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.

Re:InnoDB...? (2, Interesting)

fruey (563914) | more than 7 years ago | (#18871897)

I've seen a lot of people saying InnoDB is slower, but last time I converted a forum from MyISAM to InnoDB it was *faster* on reads, it was the writes that were slower...

And, of course, it didn't crash all the time.

Re:InnoDB...? (1)

merreborn (853723) | more than 7 years ago | (#18872703)

One of the things that makes innodb faster than MyISAM in many cases, is MyISAM uses table-level locks while innodb uses row-level locking. If your read/write ratio is anywhere between 30-70%, innodb will be faster. In fact, in a few places, the mysql guys say: MyISAM is only faster if your table receives 90% writes, or 90% reads.

So...what do the changes actually DO? (0, Offtopic)

xxxJonBoyxxx (565205) | more than 7 years ago | (#18871407)

So...what do the changes actually DO? This page is awfully thin on content:
http://code.google.com/p/google-mysql-tools/ [google.com]

These two things look like simple add-on utilities, not something for the core DB (the "compact..." one looks especially unfriendly for live DBs):

mypgrep.py - a tool, similar to pgrep, for managing mysql connections
compact_innodb.py - compacts innodb datafiles by dumping and reloading all tables


I'd like to play with this stuff:

The new features include support for "for semi-synchronous replication, mirroring the binlog from a master to a slave, quickly promoting a slave to a master during failover, and keeping InnoDB and replication state on a slave consistent during crash recovery."
...but where's the actual doc?

And why is Google releasing these for an "unsupported" version of MySQL (4.0)?

Re:So...what do the changes actually DO? (1)

mhall119 (1035984) | more than 7 years ago | (#18871737)

And why is Google releasing these for an "unsupported" version of MySQL (4.0)?

Probably because that's the version of MySQL they wrote it for?

Just ask (1)

wiredlogic (135348) | more than 7 years ago | (#18871465)

It'll be interesting to see if the changes they made are of interest to other places using MySQL.

Why don't you ask Jeeves [ask.com] then?

Re:Just ask (0)

Anonymous Coward | more than 7 years ago | (#18871929)

A flat head screwdriver should be used for flat-head screws and a phillips should be used for phillip screws. They both have their place just as MySQL is a flat-head and SQL Server is a phillips. Companies that prefer warranties and guarantees in terms of confidence levels toward the companies (or open source) that produce these products decide whats best for their organization. Mid range companies prefer to go with MySQL and Php because its open-source and best of all free. Where most Enterprise companies prefer non-open source products because of strong backing from the companies that produce them, such as Microsoft where a level of risk is envolved. After all, Microsoft cant risk their name if Company A is having an issue therefore they must comply with trying to satisfy all customers for the sake of one. Whereas if something goes wrong with MySQL, who you gonna call...with no one to blame. Stockholders dont want to hear that. Freelance developers like MySQL because they can get more business in the free market with no cost to themselves or the client.

Open your eyes vato and stop whinning!

Wrong link (1)

jlebrech (810586) | more than 7 years ago | (#18871611)

Was expecting a link to a google hosted webpage, in the hope of seeing a slashdoted google page in vain.

Typical for MySQL ... (0, Troll)

Anonymous Coward | more than 7 years ago | (#18871729)

I was curious what the actual changes were, so I went a looked...

Why am I not surprised?

        * mypgrep.py - a tool, similar to pgrep, for managing mysql connections
        * compact_innodb.py - compacts innodb datafiles by dumping and reloading all tables
        * patches - patches to add features to MySQL 4.0.26


Dumping and reloading all tables?!? That must be one of the "enterprise" features MySQL boasts about?

Re:Typical for MySQL ... (1)

Splab (574204) | more than 7 years ago | (#18872571)

You are the second one I see make fun of this, and I fail to see why this is funny. If your database is used primarily for looking up stuff and seldom has inserts/updates, it makes perfect sense to dump your tables and reloading them once in a while in order to speed up sequential reads.

Better replication is a start (5, Interesting)

thsths (31372) | more than 7 years ago | (#18871945)

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.

license incompatibility? (1)

nanosquid (1074949) | more than 7 years ago | (#18871973)

The Google add-ons are under Apache 2, while the open source version of MySQL is under GPLv2. Doesn't this present a problem?

Go47 (-1, Offtopic)

Anonymous Coward | more than 7 years ago | (#18872175)

This is consistent thec choosing sling, return it to any parting shot, large - keep your *BSD ihs dying Yet free-loving climate then disappeared

The question I want to know is... (1)

Refefer (1070110) | more than 7 years ago | (#18872357)

How long until Google's contributions to the open source community become regarded as financially motivated or opressive?

Rather, the question I want to know is, when will it become cool to hate Google?
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>