Locating the Real MySQL
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."
http://www.postgresql.org/
Just saying.
The MariaDB link should be http://askmonty.org/wiki/index.php/Main_Page
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?
There's no -1 for "I don't get it."
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.
These posts express my own personal views, not those of my employer
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).
And now pretend that you are, like many thousands of other people, hosted in a place that doesn't offer it. Or run software which can't talk to it. Or have staff who aren't trained in its use or upkeep. Or... a hundred other things.
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
Ash and Hickory, straight-grained and true, make excellent bludgeons, dandy for the cudgeling of vegetarians.
please stand up?
THE MAGIC WORDS ARE SQUEAMISH OSSIFRAGE
...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.
The pages that come up for "mysql.com" are what I consider to be the "official" version of MySQL.
I didn't even realize the other pages were out there until this article was posted and I started reading the comments.
Not that it matters much -- I'm an http://www.postgresql.org/ fan myself.
I do not fail; I succeed at finding out what does not work.
Don't forget even MySQL has an identity crisis on *offical* versions. I wrote about this "Understanding the various MySQL Products & Variants" at http://ronaldbradford.com/blog/understanding-the-various-mysql-products-variants-2009-03-13/
01110010 01101111 01101110 01100001 01101100 01100100 00100000 01100010 01110010 01100001 01100100 01100110 01101111 011
The moment I saw the headline, I immediately thought of three smart-ass tags... then I looked down and all three were taken. At least I can still tag it something obvious like 'story'
Scientists point out problems, engineers fix them
altslashdot.org: The future of slashdot.
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.
So much for that open source licenses if the many people who worked and contributed all of their time to make MYSQL to make it an enterprise level application get shafted by the few.
We've seen many terrible forks in the past but this has to take the cake and usually thatâ(TM)s the last you hear of them we all know how well SUN maintains and contributes to there open source projects as it is. It's been awhile but the last time i checked their STL library it was horribly behind. Now imagine IBM.
Time for postgress, besides it has much better GIS support.
So, then it looks like Sun acquired nothing. The real IP has walked out the door.
Just because a big gray elephant is easier to find, that some stealth dolphin...
What, haven't you people heard of Access??
Is it just me, or did anyone read the title as "LOLCATTING the real mysql"?
Which reminds me, I need coffee.
To find out for example that when you download MySQL you are not getting the "official" INNODB engine either which yuo have to build yourself on solaris.
I think the distro is becoming somewhat of a cruel joke on users.
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.
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
I could use some Yerba Mate. Writing books is exhausting, and I will soon be done. I will be able to sleep. Hooray!
I'm glad to have triggered some discussion here. I just want to improve MySQL, that's all.
There are a lot of "Oracle required" situations that can be serviced by http://www.enterprisedb.com/
They provide an implementation of PL/SQL for PostgreSQL with commercial support.
I do not fail; I succeed at finding out what does not work.
Oh, yes. The Copyright!
With that, Sun can:
- License the code (non-exclusively) to customers under OTHER licenses than the open source license under which it was released.
- Sue others for infringement when THEY use it in ways not included in the open source license.
- Make derived works that they don't release under the open source license.
These are all things that Sun can now do and no others can (presuming Sun continues MySQL's tradition of keeping the main codebase clean of outside code for which they don't have additional non-open-source licensing).
Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
Am not ready to entrust my data to a talking, masked, styrofoam cup!
Sig this!
It seems to me this is squarely in slashdot's sweet spot.
If the blurb doesn't interest you, give the story and the discussion a pass. There'll be another story soon enough that doesn't meet your specifications either.
You think that the machinations of what is either the number 1 or number 2 name in the open source world is of narrow interest?
If an executive knows the name of any Open source project, it will be either Linux, MySQL, Openoffice or apache.
Now, while I think that MySQL fading away, and leaving PostgreSQL as the leading database would be a Good Thing, MySQL is still of great importance, and it's fracturing under Sun's (Mis)Management is one of the most important things happening in IT right now.
Prediction for end of Universe #42: Fencepost error in Quantum_bogosort.cpp
mysql.com
What tree is the official MySQL tree is irrelevent. What is important is that Monty got his billion.
MySQL resides with Sun. Period. End of discussion.
At the moment, the top listing is www.mysql.com - Duh.
This issue is a bit more complicated than you think.
I'm already sick of innodb and myisam issues also falcon and maria are in alpha/pre alpha stages
maybe it's easier to write an new engine for an stable db like firebird/postgresql
I will post my progress on this page
http://mapopa.blogspot.com/search?q=mysql
ahh by the way firebird engine is stable for more that 20 years (triggers/transactions are normal things from that time)
http://www.firebirdsql.org/index.php?op=history&id=beginning
developer http://flamerobin.org
I ran into that little nugget when I migrated webapp database from MySQL to PostgreSQL.
As with any webapp, the software would let you create an account on the website. Can't have duplicate users, so the code would check to see if the username existed.
SELECT count(uid) FROM users WHERE username='coryking';
Got "0"? Well, the user is okay... well, at least on MySQL. In MySQL, "coryking", "CorYKING", and "CORYKing" are all the same. As I would soon discover, that assumption is *not* true on PostgreSQL.
Result? A month after the migration, I discovered "unique" accounts for "coryking", "CoryKING" and "CORYKING". Obviously, this can't be. All usernames in webland are case-insensitive. Thankfully, there was only a handfull of these "unique" users to clean up. Had this been left alone for a year, I'd have quite a cleanup on my hands!
Moral? MySQL is case-insensitive, PostgreSQL isn't. Honestly, the proper thing is to be case-sensitive and I assume pretty much every database besides MySQL is case-sensitive. But you have to make your unique index on LOWER(username) instead of username--oh wait, except you can't do that in MySQL cause they dont support indexes on functions... sucks for them!
Good times.
As many people dont understand GPLed code still has an owner.
It may have an owner, but that owner gave an unlimited redistribution license to a whole lot of people (provided those people redistribute via GPL). Once that cat's out of the bag, it's not going back in.
The only thing they really can do (that any other GPL licensee can't) is re-license the code under alternate licenses that are more permissive than the GPL.
Independent of that mysql may still be a trademark.
True. But that only applies to the branding stuff, not the code.
The most relevant example is probably CentOS, which is a binary compatible clone of RHEL. Only difference is any material that says "Red Hat" or RHEL.
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
Did they? I'm pretty sure non-compete clauses that require people not to leave, work for competitors, etc are illegal in California where Sun is headquartered. At least many such contracts have been found to be so. They might pay attractive retention bonuses, but they can't force anyone to work for them, slavery being illegal and all. So I'm not so sure how much protection they can really have. I also wonder how one would go about restricting anyone's ability to fork.
"MySQL works OK for one-app databases and many people think that is all that is needed. It breaks down outside that area, however."
You know something is wrong when a discussion of MySQL is dominated by comments about PostgreSQL.
Why is someone still writing a book on Perl and web app development?
What's next "Counter terrorism with cauldrons and catapults"?
What would stop Sun from merging any interesting development made on any of these forks back into their version?
Although in kdawson's case, it's usually the SAME story again three days later.
Investors might not be able to become billionaires but customers can be sure that the code base is not going to disappear.
It's better for society in general. I can live with the odd rich person not being so rich.
SUN can't do anything with Open Source but fuck it up. Had they left MySQL alone we wouldn't have a half dozen forked versions. I'd also know that MY current version won't suddenly up and jump the shark into obsolesence because of this.
PostgresQL here I come.
Pax Vobiscum
Looking at MariaDB, they are going to keep it in line with the stable release of MySQL, add some new features, and use Maria as the default storage engine.
It will stay compatible with the 'main' MySQL.
It looks like changes on this fork may well make it back to the main MySQL code, so it's almost as if Monty is still working on the normal codebase anyway. I suppose he's now doing what he wants instead of Sun?
At least in PostgreSQL create indexed functions. In other words, you can create a unique index on LOWER(username). I'm sure the other guys let you index functions too. Either way :-)
And now pretend that you are, like many thousands of other people, hosted in a place that doesn't offer it.
If you're using MySQL on a shared hosting plan, and you've about to outgrow MySQL, then you may have outgrown your hosting plan. For example, Go Daddy offers MySQL on shared hosting plans, but it offers both MySQL and PostgreSQL on virtual dedicated server plans. Start porting your bespoke software now on your development server, so that you can switch once your 12-month shared hosting commitment is up for renewal. Just be glad to even have MySQL; you could be limited to the SQLite database module for PHP.
Honestly, if you are at the stage where you are tossing around words like "high-availability", it is time to actually spend cash on a big-boy RDBMs. PostgreSQL is awesome, but it can only scale so far.
If you went MySQL, yeah you can do crazy load-balanced databases out of the box, but it will cost you as much in developer time to hack around the *other* limitations in the product that it would be cheaper to buy a real database.
MySQL is only free if your developer time is not. Good DBAs aren't cheap and MySQL is needs more developer time to work around its limitations than any other database (in my humble opinions).
It is a bit of lore. It is a difference between the two products that you might not have considered before migrating that you better take into account. I didn't even think about it, and I almost got into a huge jam as a result.
Except that breaks unicode. Characters aren't byte[]'s, they are characters.
The proper answer is to use the correct collation. The only thing is PostgreSQL doesn't really do that kind of thing yet.
My solution was to create a new datatype based on this example that uses case-insensitive operators. Instead of using the "varchar", I my spiffy new, case-insensitive "ltext" version. Fully indexable too!
There are a lot of knobs to turn. They are somewhat well-documented knobs, but knobs none the less. MySQL ships with like four sample configurations.
That said, the best solution would be to make it self-opimizing. It already tries to self-optimize its query plans (i.e.: "We aren't gonna support hints on indexes... if the query planner needs hints, the query planner is broken"). It could do something similar with its configuration. But honestly, that would take development time away from more important things like materialized views or WITH queries. I'd much rather have stuff like that.
By the way, you don't have to edit the config file by hand, you can actually edit it from the comfort of your desktop in PgAdmin and even trigger a reload of the file.
The problem with what you're saying here is that, in the name of programmer convenience, you're not addressing any of the problems that an RDBMS is supposed to solve. Most critically in this case, logical data integrity. Do you understand what problem RDBMS features like constraints are supposed to solve? Do you seriously want databases to stop solving those problems in the name of being more similar to a tool you're more familiar with, that does not solve that problem?
I propose you stop telling us all how databases should work, and learn some elementary database theory.
And then your buggy programs that fail to specify a value for that column cause the silent insertion of bogus data into your database; data that we could prove at that moment to be wrong. Then nobody notices for a long time, run queries against the DB and get incorrect answers. For example, they fail to specify the column for the amount of a cash transaction, which means that a row with $0 is inserted, and all reports that rely on computing the average amount per transaction are hopelessly wrong.
Are you adequate?
In a related thread talking about PostgreSQL, it was written:
> My guess is they weren't really buying MySQL for the technology,
> they were buying it for the community.
Good point.
AND, that is precisely why technologies such as Perl and MySQL succeed so well in spite of suboptimal even awkward design within the product.
First, beware of posters here, including me, that, as with religious text editor debates, tend to like what they know, and what they have used the most.
That being said...
I remember the first time I saw the Perl Book (way back when) my reaction after a 30 minute skim read was "there is no way I am going to use a language that has a manual this thick and is so out of touch with computer science". Yet now I love Perl and am kind of proficient with it. Why? Because the community that develops it not only cares about the community, they make things easy to do from the system point of view: installing, providing examples, being pragmatic about over overloading constructs in just the right way so that one can get things done and get them done quickly, etc., etc., etc.
In MySQL it is quite nice, for example, that '', NULL, and 0 all tend to have the same semantics in certain contexts. Or that on the command line, you can enter a comment beginning with any of //, --, or /* ... */ . Those are trivial examples but they illustrate the common sense pragmatism that the MySQL designers put into their system. It just makes life nicer for the user.
Look SQL itself is sucky. All of the RDBMs must cope with that. So the least one can do is provide system level ease of use. MySQL does that quite well, which is one important reason it has a thriving community.
Sometimes you get both - good design and community. Witness Python. I have not had reason to develop with Python but when the Python book first came out, unlike my initial negative reaction to the Perl Book, I thought "Now THAT is a good language. The manual is very understandable and the design is clean." The fact that a solid community arose is icing on the cake for Python and an *additional* fact about Python culture. There are excellent languages, such as Common Lisp, that failed to develop a vibrant community so excellence of language is neither a necessary nor sufficient condition to foster community.
MySQL designers and community make the right choices to support the fostering of the language. Postgres (I refuse to use the new name PostgreSQL which is a cheap cop out and attempt to leverage on the success of MySQL by copying the idea of the name) and Oracle do not share that basic thrust of making things simple to use at the system level. Oracle was first though, and is "real", very real. And very solid. So it continues to dominate based on sheer user base in critical applications, the complexity of building a complex solution in the RDBMS space, and, quite simply, because it is so very reliable.
Don't get me wrong, if I had my druthers, I might use Postgres. But, for the same reason I went with Linux and the world went with Intel chips over Motorola, it's all about pragmatism and just getting things done. I started looking for a UNIX on a PC back in about 1985. When FreeBSD came out I tried it. It was only when Linux, due to the sheer pragmatism of its community attracted so many followers and I noticed that friends of mine in the research community were going with it that I made the decision to do likewise, and have not looked back. Same reason I stuck with Red Hat after giving SuSE a sold try a few years ago.
MySQL is to easy use and, more importantly, EASY TO START USING. Then, once the community evolves, things feed on themselves. You get lots of example code, good documention, etc. You are off and running.
Disclaimer: I have not used Postgres very much. I have and do use both Oracle and MySQL a lot. But I tried PostgreSQL (OK, I'll call it that) enough to be frustrated by its lack of community and a
The ability to understand the difference between ++i and i++ comes by experience to those for whom it makes a difference. The ability to recognize and appreciate a decent RDBMS comes by experience to those who use such. We can talk about such things, but, as is typical, the set of those who talk and the set of those who do tend to be somewhat disjoint sets.
Designation as elite comes from the person so designating himself, or, perhaps, some certifying organization which certifies primarily based on tests. Experience is a hard thing to measure, and an even harder thing to certify meaningfully. Tests can only certify a baseline competence.
Elitism tends to declare itself beyond competence. Thus, elite is mostly hubris.
Hubris (in the sense of self-confidence) is not entirely evil, and I may be conflating "l33t" with "elite" to an extent with which you would not agree, but elite is still mostly hubris.
I would rather talk about dedication to ideals such as constantly refining one's skill set, and service.
Some people call that professionalism, but that's yet another word that means different things to different people. (Some managers think it's unprofessional to perform uncharged service, for instance.)
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.