Tuesday, July 24, 2012

What is a MySQL GA? RC? Beta?

I still do not know how this works for MySQL, but whatever the thiinking is, I do not like it. There is a flow of new features coming into the GA releases which is my mind usually isn't a good thing (i.e. a new feature means a new source of bugs). This is particularily bad in the case of MySQL due to the risk of regression bugs and lack of modularization.

And I know, what you are going to say, if we didn't get those new features then that old GA version would not be useful, if for no other reason so due to Moore's Law, the software has to keep up with what is going on in the world of Hardware. But MySQL has never been good at that, for example, can someone explain why the sample MySQL config file for big MySQl server, my-huge.cnf, starts with this comment:
# Example MySQL config file for very large systems.
#
# This is for a large system with memory of 1G-2G where the system runs mainly
# MySQL.
When was a "very large" system one with "1G-2G" of memory? Was it before or after the civil war? What usefulness does something like this have? (And this is from MySQL 5.6, which isnät even GA yet).

MySQL has never been very good at keeping up with itself either, the same my-huge.cnf contains a long comment section on how to set up replication by mocking with the config file, something that has been adviced against for ages and which isn't even supported in MySQL 5.6 (or MySQL 5.5 for that matter).

What MySQL needs, in my mind, is more version, less emphasis on adding necessary features for new hardware or for fixing bugs, and more GA versions. 5.6 has been real slow in appearing, which is annoying. There is some good stuff in there, but it's very late.

If you ask me, GA means "This versioon will only get bugfixes from now on". And if this means that important features that should be in production has a long time getting there, then the issue is not to add new features to GA releases released during the Carter administration, but to get some more GA releases out there.

And besides that: Can we modernixe MySQL a bit? Remove old stuff from the distribution that doesn't work or that noone really should use? Add stuff that is up-to-date, like sample config files for Amazon EC2? Right? And possibly tools integrated with EC2? Or iOS? Or Ubuntu?

/Karlsson
And yes, I am aware that I myself is a firm beliver in awk, vi and autotools, which are awfully old technologies. So maybe my views shouldn't be taken too seriously, and I just want to stir up a debate?

4 comments:

Justin Swanhart said...

What major new features are getting added to GA releases?

I don't consider adding new variables to fix various problems (--slave-max-allowed-packet for example) to be a problem.

Anders Karlsson said...

It's a new variable and a new feature. A small one yes, but still something that adds complexity. And was the bug really fixed just by adding a new varable? I thought this was to introduce a W/O for the bug, but I haven't investigated it that much. But really, we do need more frequent GA releases. And this is not the first time either, we have had new features added in RC releases for 5.5.

This not to say that I do not want those features, quite the opposite. What I want is more frequent stable GA releases with more frequest alpha and betas in between so features that end up in GA and RC are at least somewhat tested.

shantanu said...

>> like sample config files for Amazon EC2? Right?

Genuine config files (not like the ones like my-huge.cnf!) for different ec2 instance types are really necessary.
Community can contribute, but it will be great if it comes officially.

Daniël van Eeden said...

You've been bitten by Bug #60306 and maybe also Bug #59414.

http://bugs.mysql.com/bug.php?id=60306
http://bugs.mysql.com/bug.php?id=59414