Slashdot Log In
Locating the Real MySQL
Posted by
kdawson
on Mon Mar 30, 2009 06:58 PM
from the place-your-bets dept.
from the place-your-bets dept.
An anonymous reader writes "In a blog post, Patrick Galbraith, an ex-core engineer on the MySQL Server team, raises the question: "What is the official branch of MySQL?" With Monty Widenius having left Sun and forked off MySQL for MariaDB, and Brian Aker running the Drizzle fork inside of Sun, where is the official MySQL tree? Sun may own the trademark, but it looks like there is doubt as to whether they are still the maintainers of the actual codebase after their $1B acquisition of the code a year ago. Smugmug's Don MacAskhill, who is the keynote at the upcoming MySQL Conference, has commented that he is now using the Percona version of MySQL, and is no longer relying on Sun's."
Related Stories
Submission: Will the real MySQL please stand up? by Anonymous Coward
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.
PostgreSQL (Score:5, Informative)
http://www.postgresql.org/ [postgresql.org]
Just saying.
Re:PostgreSQL (Score:5, Insightful)
Hey, maybe people have a reason to use MySQL - a product that only supports that db, or developers who aren't particularly familiar with what relational databases are supposed to be like.
Parent
Re: (Score:3, Informative)
Hey, maybe people have a reason to use MySQL - a product that only supports that db, or developers who aren't particularly familiar with what relational databases are supposed to be like.
I don't know why this is marked as Funny... there are far too many programs or even webapps (PHP ones in particular) that only work with MySQL.
Re:PostgreSQL (Score:5, Funny)
I don't know why this is marked as Funny... there are far too many programs or even webapps (PHP ones in particular) that only work with MySQL.
The problem is that the Funny mod can't differentiate between when someone is laughing with you or at you.
Parent
Re:PostgreSQL (Score:5, Insightful)
Good luck finding it. MySQL has horrible documentation [mysql.com]. The whole structure of it is a mess.
Plus, when you say "and if there is a problem, it is documented". Yeah, that is great, but most of the "well-documented" problems are long-standing bugs for insanely stupid shit.
It does make me laugh though, because honestly, I agree that mysql is well documented. Every random question [google.com] I google for usually has a hit. And funny enough, the top listing is usually a page here [mysql.com]--failing that, at least on the first page of results [google.com].
Because you know better.
Parent
Re:PostgreSQL (Score:4, Interesting)
It really is a very good database. I just hope more projects start using it. And that more hosting companies will as well.
I am pretty sure that that MySQL still has better client slave replication "Like Slashdot uses" than Postgres. But I could be wrong.
Parent
Enough already! (Score:5, Informative)
Enough with the knee-jerk elitism. MySQL is just fine for quite a lot of tasks, and the article isn't about the religious battle between DB packages.
-B
Parent
Re:Enough already! (Score:5, Informative)
It's not a religious battle, it's about using the best tool for the job. MySQL may be very easy to setup, but just fyi, PostgreSQL is a snap to set up now on Windows or Linux.
Looking for reasons to use PostgreSQL?
Much better index support.
Kerberos or LDAP access controls.
Better native Unicode support.
If you're hog-tied to MySQL because of your software, well so be it. But if you have a choice, the winner should be fairly obvious.
Parent
Re:Enough already! (Score:5, Interesting)
Actually the subject is how your data is supposed to be used.
MySQL users see the database as a program persistance layer. I am not sure WHY they are using something that pretends to be a relational database, but they are. It is the single-app approach (one app, one database).
The PostgreSQL crowd sees data and application as being separate issues. The data in theory should be able to be managed in any of a hundred different applications, all hitting the same database, without causing the nightmares in QA that this sort of thing creates in MySQL.
So is the program what is important? Or is the data there to be used by many programs?
MySQL works OK for one-app databases and many people think that is all that is needed. It breaks down outside that area, however.
Parent
Re:Enough already! (Score:5, Interesting)
You forgot to broaden your scope. Otherwise, you are correct.
Your database is almost literally your company. It should reflect your way of doing business--any moderately skilled developer should be able to walk into an orginization they know nothing about and using only the database schema, infer pretty much what the company does, and how it does it.
You can always fix flawed software design, but it is almost impossible to fix a flawed database design. Do your database wrong, the growth of your company will be hindered. Do it right, and your company will flourish. No joke.
Parent
The sociology of MySQL is interesting. (Score:4, Insightful)
You know something is wrong when a discussion of MySQL is dominated by comments about PostgreSQL.
Parent
Re:The sociology of MySQL is interesting. (Score:4, Funny)
You know something is wrong when a discussion of MySQL is dominated by comments about PostgreSQL.
Or you're on Slashdot. My guess: when the editors see the MySQL article in the queue, they think, "We haven't had a MySQL/PostgreSQL flamewar in a while. Let's post this!"
Parent
Re:Enough already! (Score:5, Insightful)
An "Elite" is a person or group that have superlative skills an ability, and are granted enhanced social status on account of this, to wit "I'm good at what I do therefore I should lead/be popular/be recognized." This is probably tolerable.
"Elitism" is a dysfunction where a person or group uses enhanced social status to asserts superlative skill and ability in order to justify their social status and to exclude others. "I'm popular/leading/recognized therefore I am good at what I do therefore I should lead/be popular/be recognized and there ain't no way those dirty punks over there are as good as us, after all they aren't as popular."
Parent
Re:Enough already! (Score:4, Insightful)
It isn't degrading. When you clean up enough messes left by people who have no business touching a database, it gets fustrating. Especially when things like this are said:
Because InnoDB is only half of MySQL. InnoDB doesn't do fulltext search. If you want fulltext, you gotta go MyISAM. Guess what happens to your cute, cozy referential integrity when half your tables are InnoDB and half are MyISAM? Bye bye! And error reporting? What error reporting? The part where it doesn't tell you "bye bye referential integrity!" and rolls back half your transaction and commits the other half? Or did you mean the part where it automatically adds default values to fields you set not null*? Or were you talking about the part where it thinks invalid dates are valid and doesn't throw an error? Or are those examples only good for Fortune 10(tm) enterprises and not some piddly organization like yours.
No sir, nobody who is a developer that takes their profession seriously would make a claim that MySQL takes anything seriously. They've cleaned up enough MySQL messes, thank you.
[rant]*one of my biggest pet peeves of MySQL... when I say CREATE TABLE(varchar(255) blah NOT NULL) please do not add your own 'DEFAULT ""' to the end--it is considered by some to be rather rude! I can spot MySQL schema's a mile away by this single trait. Anything NOT NULL almost always has a bullshit default value. Got a NOT NULL int--it will have a DEFAULT 0! Got a NOT NULL date, "DEFAULT 0000-00-00", which isn't even a valid date! How is that for taking your data seriously?[/rant]
Parent
Re:Enough already! (Score:5, Informative)
i asked you a valid question, how does innodb not maintain referential integrity? you bring up myisam. i didn't mention myisam. i know myisam isn't ACID. i asked you how innodb isn't. and as for error reporting, http://dev.mysql.com/doc/refman/5.1/en/error-handling.html [mysql.com]. so again, how does innodb not take referential integrity and error reporting seriously?
Well, how about completely ignoring the "REFERENCES othertable(othercolumn)" syntax for foreign key constraints without as much as a warning in even the strictest mode, leaving you without referential integrity without any way of knowing?
Or from the manual: "By default, the binary log is not synchronized to disk at each write. So if the operating system or machine (not only the MySQL server) crashes there is a chance that the last statements of the binary log are lost. To prevent this, you can make the binary log be synchronized to disk after every Nth binary log write, with the sync_binlog global variable (1 being the safest value, but also the slowest)."
So InnoDB still defaults to non-ACID behaviour, but it doesn't stop there yet:
More from the manual: Even with [sync_binlog] set to 1, there is still the chance of an inconsistency between the tables content and the binary log content in case of crash. [...] This problem can be solved with the --innodb-safe-binlog option (available starting from MySQL 4.1.3), which adds consistency between the content of InnoDB tables and the binary log. For this option to really bring safety to you, the MySQL server should also be configured to synchronize to disk, at every transaction, the binary log (sync_binlog=1) and (which is true by default) the InnoDB logs.
Another option if you want ACID. Oh wait, there's a 3rd, since binlog defaults to off so you need to enable that too. Three options have to be changed from their defaults to get durability after each and every single commit (when we're talking databases, that's kind of what I expect. If you don't, that's fine, but we're not talking about the same thing then)
, are you referring to companies like google, yahoo, or alcatel-lucent? need i really go on?
Stick to apples-apples comparisons. None of those companies are using MySQL as a relational database (say, doing their accounting in it or trusting their business on it), sure Google uses it as a memory-only non-transactional clustered datastore with an SQL query interface, after having put in a lot of patches to make that work, but so what? Yes, use it for that, sure use MyISAM for your blog, but when we're talking about a proper relational database where "commit" means the data is stored, where a foreign key means a foreign key and where you would run your core business on it then stick to those cases where it's actually used as such. A better example for that is Skype, which runs its entire operations from buddylists to billing on Postgresql.
Parent
Re:Enough already! (Score:5, Insightful)
So you want the column to be NOT NULL, and yet you can't be bothered to tell the db your desired default value for that column. What EXACTLY do you expect the database to do ?
What kind of weird argument is that? Yes I want the column to be not NULL, but why on earth would you just assume that therefore there must be some default value that's acceptable? What if it's also a unique column?
when you say "NOT NULL" as such, PostgreSQL makes it "NOT NULL DEFAULT NULL" which means that yes, it's going to not allow you to INSERT anything that is NULL and you MUST specify some valid value. That certainly does not imply that a sane default exists, and IF it did, I would have just specified it myself in the first place.
Now a "proper" db might just moan at table creation time that you're trying to do something silly, whereas MySQL assumes you are silly and inserts it's own suggested default.
There is nothing silly about having a NOT NULL column with no default (i.e. default is NULL so not allowed). It is a FEATURE of the database to stop me when I have some bug in my code trying to insert a NULL there, just like it is to stop me from inserting a duplicate value, or violate any other constraint I have set.
Inserting its own suggested default is completely braindead, when I say NOT NULL DEFAULT NULL I want the database to enforce that, and to force me to provide proper data. Period. Putting 0 or '' or 0000-00-00 there is retarded, and it's a complete MySQL-ism.
Parent
Re:PostgreSQL (Score:5, Interesting)
Why do you like it so much? Is it faster with large datasets? Does it support backups/replication/some other great to have feature?
I'm pretty familiar with MySQL, but I've been thinking about branching out to PostgreSQL lately as I've seen a few jobs that prefer it. I'd just like some real reasons why I should prefer it, as well as any "gotchas" that might be important for a MySQL user to know. I've never had a problem with MySQL, but most of the projects I've used it on have been fairly small.
Parent
Re:PostgreSQL (Score:4, Insightful)
ACID :).
I prefer postgresql because of the stored procedures, triggers, rules, plpgsql, etc.
MySQL 5 sort of has some of that now, but when I las t used it (MySQL 4), I ended up trying to half-ass implement that stuff client side. Postgresql makes it easier to do it right.
Parent
Re: (Score:3, Funny)
Here [lmgtfy.com] are some sites that might help.
Re:PostgreSQL (Score:5, Interesting)
One of the reasons I like PostgreSQL is it is more like Oracle.
If you're doing a migration from Oracle, especially one that has a lot of pl/sql functions. Here's some good advice for converting pl/sql to pl/pgsql [redhat.com].
Also, going from PostgreSQL to Oracle seems easier as well. With PostgreSQL you can use more Oracle like features so if you need to move to Oracle, you can take advantage of some of it's advanced features instead of migrating simple tables and sql statements.
Sun was actively involved with PostgreSQL before they bought MySQL. I was really dissapointed with their decision, especially at the price.
My guess is they weren't really buying MySQL for the technology, they were buying it for the community. Overnight, a ton of MySQL users and developers were part of Sun's open source community. Building communities takes time and Sun was having a hard time doing it with some of their projects.
All it seems they did though is fund MySQL forks. Kinda messed up for the MySQL developers to do that but we don't know all the details.
$1 billion dollars could have funded a lot of improvements to PostgreSQL better clustering, replication, visual tools, and more. A better PostgreSQL could hurt Oracle more than buying MySQL. After Ellison announced he'd be moving his developers from Solaris workstations to Linux workstations, it could have been a nice comeback.
It also seems that the switch form solaris to linux might not have been developer driven [intel.com]. Even MS knows you have to keep your developers, developers, developers happy.
Parent
Re:PostgreSQL (Score:5, Informative)
The Oracle pl/SQL -> PostgreSQL pl/pgSQL link you suggested was from PostgreSQL 7.1, pretty ancient at this point. PostgreSQL 8.3 Porting from Oracle [postgresql.org] is a current resource.
Parent
Re:PostgreSQL (Score:5, Informative)
Today, the big difference is PostgreSQL is considered better on higher-end hardware with concurrent I/O support and better multi-core support. MySQL is considered better on clusters of lower-end hardware. There is a Wiki comparing the two [wikivs.com] in much better detail.
Personally, I work with both in large production systems and can fill a few pages on likes and gripes. I'm on MySQL 4.1, so concurrency is a concern, and PostgreSQL's replication is a pain. Unless you're trying to solve a problem MySQL can't satisfy, I wouldn't switch for the sake of change. Your time is probably better spent upgrading to MySQL 5.1.
Parent
Re:PostgreSQL (Score:4, Informative)
Why do you like [PostgreSQL] so much?
The reason we use PostgreSQL instead of MySQL at work is mainly because the JDBC drivers for MySQL are GPL licensed, while Postgres' isn't.
Parent
Re:PostgreSQL (Score:4, Informative)
Parent
Re:PostgreSQL (Score:5, Informative)
Early on, PostgreSQL focused on complete implementation and correct behavior over speed, then worried about adding speed later. MySQL focused on speed, and worried over correctness and completeness later. Since then, PostgreSQL has sped up a lot, and MySQL has shaped up in implementation completeness. But it won't surprise me if PostgreSQL still has a few extra features.
This comparison of PostgreSQL vs MySQL [postgresql.org] is on PostgreSQL's wiki but it seems very fair.
The most interesting bit is this:
The forking of MySQL is going to split resources and creating that replacement for InnoDB may take longer.
Parent
MariaDB link is incorrect (Score:5, Informative)
The MariaDB link should be http://askmonty.org/wiki/index.php/Main_Page [askmonty.org]
Re:MariaDB link is incorrect (Score:5, Funny)
If they can't find the real MySQL, sounds like they need a unique identifier with an index...
Parent
Selling an open-source software business? (Score:5, Interesting)
This calls into question whether it's viable to sell a business based on open-source software.
What did Sun buy exactly? Sales and support?
Re:Selling an open-source software business? (Score:5, Funny)
What did Sun buy exactly? Sales and support?
A bridge!
Hello Mr Sun CEO, I have a bridge here to sell you! Best deal you'll ever make. Pinky swear.
Parent
Re: (Score:3, Informative)
This calls into question whether it's viable to sell a business based on open-source software.
I was under the impression that MySQL operated with a full-featured, proprietary, licensed, commercial version getting immediate upgrades and support, plus a less-featured open source version with releases of code (ported?) from the full-featured branch that ran some months behind the for-pay version.
If that's right, I'd say Sun bought the whole shebang, including the code and customer bases for the licensed deluxe
Re:Selling an open-source software business? (Score:5, Informative)
For the database server itself, there is no difference between MySQL Community Edition and MySQL Enterprise Edition besides the release schedule. The community edition (aka the regular one everyone uses) has been pared down to 4 releases a year, which are cherry picked from the enterprise releases.
However, the source is completely available for the enterprise releases, and you are able to compile and install them yourself. This is what Percona is doing, for instance (plus some other patches).
With that said, MySQL has other software that comes along with the enterprise edition that is not open sourced to my knowledge. A query analyzer, monitoring, and other goodies. Personally I prefer to find their equivalents in the open source world, but I'm sure some people buy and use these packages.
Parent
Re:Selling an open-source software business? (Score:5, Funny)
Parent
What Sun bought -- (Score:5, Insightful)
I think what Sun was trying to buy was a little more respect from the open source community.
(At least, that's what I would prefer to think. There is a distinct possibility that that purchase price was heavily subsidized by a certain large company who is quite aware that the best way to kill a technical project is to feed it huge amounts of money.)
Yeah, they went way too far overboard, of course, to actually get that respect.
But, "'e's not dead yet."
Setting aside the brainless rumors of Sun being bought, if I found myself in charge of making the purchase meaningful, I'd be looking at spinning MySQL back out into an independent company and bringing back as many of the guys who built it as they can. Add a couple of developers with other, non-MySQL, database experience to the team, of course, but give control back to the original developers.
Also, don't ask the original developers to give up their independent products.
The MySQL project needed fresh ideas, and this could be one way to bring fresh ideas in. It'd take a long time to get real return on what they invested, but it would be better than blowing away the whole investment.
Anyway, even if the main branch dies, there will likely be some useful development from the forks.
Parent
Not a good precedent (Score:5, Insightful)
I don't have any idea what the politics behind all this is, nor do I have enough interest to look it up, but it seems to me that if a company pays $1B for code, then it forks left and right and they're left with nothing but yet another version, that's not going to exactly be a good advertisement for investing in open source. While this outcome is much better than a closed source application being killed off, it still would have been much better if differences could have been worked out and Sun had something for their money.
Re: (Score:3, Interesting)
Actually the message it sends is you can not take control just by buying out one piece of the open source world. For the record Sun is going through the same thing with Open Office. Sun really doesn't understand open source.
The official branch is where ever the big distros decide to pull from.
Re: (Score:3, Insightful)
"The official branch is where ever the big distros decide to pull from."
May I offer a rewrite?
The official branch is where ever the knowledgeable gurus decide to push into.
Allow to say: (Score:5, Informative)
While i am *not sure* of the details, i am pretty sure that SUNs lawyers did not forget to make very definite regulations for maintainers leaving, forking of etc. As far as i undrstood, sun bought the code *and* the rights. As many people dont understand GPLed code still has an owner. Independent of that mysql may still be a trademark.
So the standard (GPL) way is to rename the project and add the staement that you modified it which *somehow* makes it different from the "official" branch (to define that, that is the branch which does not carry the notice that it was modified and which is published under the prior, maybe (tm)ed, name).
Will the real MySQL (Score:5, Funny)
please stand up?
Re:Will the real MySQL (Score:5, Funny)
The real MySQL has learned the first lesson of not being seen: not to stand up.
Parent
Re:Will the real MySQL (Score:5, Funny)
Hi, my name is
What, my name is
Who, my name is
My Sequel.
Parent
The real MySQL is... (Score:5, Insightful)
...whatever is at www.mysql.com. Look, I'm not trying to be flippant, but when I'm trying to sell the boss on FOSS solutions, I need to send him a link to a site that will give him the warm-fuzzies that demonstrates that a. the tech is solid (typically mention Wikipedia for that one) and b. it's not some fly-by-night operation that will suddenly up and disappear.
I'm not trying to put the other projects down, and I can appreciate why they exist, but this is the exact reason I'm always being laughed out of meetings where they decide to buy an Oracle license, or a Microsoft OS, those guys have the message down (i.e. marketing).
I'm trying to be the in-house cheerleader for what can be done in the free/open-source communities and mixed messages just don't fly to a boss who barely skims the executive summary of whatever glossy lands on his desk any given day.
Re:The real MySQL is... (Score:5, Insightful)
As someone who has extensive hands-on use of Oracle eBusiness, I can say it's a steaming turd with some authority. Having a vertical CRM/order management/invoicing/everything stack is an easy sell to managers, but what they don't realize is it requires significant effort to align it with your business model.
In short, Oracle is designed to sell and it does work, but only well if you're prepared to spend a fortune implementing it.
Parent
Re: (Score:3, Funny)
Ah, but those steaming turds are just the ticket for a consultant looking to warm his hands.
I'm a consultant, and I love steaming turds!
Re: (Score:3, Insightful)
turds work for the big iron companies too. Like IBM's enterprise solution for anything: sell the client a bunch of overcomplicated rube goldberg contraptions that require a ton of customization and services, big turds for the money sewer.
Re:The real MySQL is... (Score:5, Informative)
For starters, the database schema is extremely complicated, much more so than is necessary for most companies. The web interface to eBusiness isn't too bad, although even on big iron it is still pretty slow for a lot of filter and search operations.
The web-launched Java interface takes a LOT of resources per instance; it's very slow on a typical desktop computer. The java interface is MDI, whereas separate windows would be quite a lot easier for users to use. It's also single threaded, meaning one blocking MDI child window blocks the entire eBusiness instance. Clicking the List of Values[...] object is scriptable and in some situations isn't very intuitive. In some cases it will not check the associated field or entered text first, meaning it performs a wildcard search. If done in a field that is populated with hundreds of thousands of records, this can block your eBusiness for 10 or 20 minutes. There is no "break" either, you let it run or you kill it and lose whatever didn't have saved in other MDI children windows.
This is just a short list. There are a lot of reasons Oracle eBusiness is a huge frustration for users and developers.
Parent
Re:The real MySQL is... (Score:5, Funny)
a. the tech is solid (typically mention Wikipedia for that one)
So do you edit the Wikipedia page just before you tell your boss look at it?
Parent
Great Sun Acquisition (Score:3, Insightful)
Database software? (Score:5, Funny)
What, haven't you people heard of Access??
Where is the confusion? (Score:5, Funny)
Re:Ironic (Score:4, Insightful)
Here we have the one shinning open source alternative to commercial databases and it is now faced with an identity crisis because they sold their name to a company about to be bought by IBM and outsourced to China and India.
Huh?
I think the two main open source alternatives to commercial databases are Firebird and PostgreSQL.
Parent