Search This Blog

02 August 2010

Tip that will save hours of sleep...

This tip is several months late but here goes anyway.

In my opinion, when you have an environment where you're using multiple MySQL storage engines (using the right tool for the job and all that jazz), there is nothing more annoying than to have tables created or altered into a storage engine that you did not request. The default behaviour of MySQL is to use the default engine if the requested storage engine is not available.

Why is this annoying? Because when a specific storage engine is requested, it needs to be using that specific engine and anything else is an error.

Fortunately, there is an SQL-Mode in MySQL which will enable the most desirable behaviour ... that is, if an engine, specifically requested, is not available, there will be an error instead of substituting the default storage engine: NO_ENGINE_SUBSTITUTION

Everyone should put this into their site's my.cnf files. I am glad to see more and more people using it.

(My only apology is that I am sorry I failed to argue strongly enough to make this behaviour default when I implemented it, years ago)

06 June 2010

Oracle's MySQL Report Card,

Yeah, I know it is early days right now but I do think that Oracle's acquisition of Sun Microsystems has not harmed MySQL.

Oracle has not done anything to get in the way of MySQL and as far as I can tell, it's basically business as normal: People are still using MySQL.

Admittedly, I have been busy at my job at Blizzard Entertainment but I really haven't seen anything which alarms me.

Besides, the forks are a good thing: It is a sign of a healthy community that there are forks which explore different development ideas. I just hope that the forks have sufficient respect for each other that they will allow code to be merged in every direction. For that reason, the few code contributions I have made for MariaDB (for example) have been all made using the BSD license, which should not prevent them from being merged into MySQL.

Personally, I would like to encourage more people to contribute code using the BSD license. I do believe that the use of the BSD license is perhaps the best decision made by Brain Aker for his Drizzle project.

04 January 2010

"Save MySQL"; my 2 cents.

There is no denying that MySQL has a huge amount of momentum behind it. 10+ years as the leading free SQL database kinda does that. It has successfully changed the perception of databases - where people used to visualise big-iron mainframes in specially cooled rooms to where anyone can install it for free within 15 minutes.

That is not what this blog post is about. The topic of today is the "Save MySQL" campaign and how I believe it is unnecessary.

In fact, I believe that it could be harmful.

Like Anders, I have mostly been refraining from participating in this campaign but now I think it would be helpful for people to know my reasoning why.

Let us consider some scenarios:
  1. Oracle acquires Sun, ceases MySQL development.

    This would be a Pyrrhic victory for Oracle as the community would immediately coalesce around MariaDB / popular forks. Everything continues... except the MySQL trademark.

    Oracle is not that stupid.

  2. Oracle acquires Sun, allows MySQL development to continue as before.

    In my opinion, this would be the worst possible scenario for MySQL/MariaDB/forks as it would divide and fragment the community as the codebases diverge.

    Are the "Save MySQL" campaigners really trying to achieve this goal?

  3. Oracle does not acquire Sun, Sun continues MySQL development as before.

    See previous point. Equally disastrous.

  4. Sun sells MySQL intellectial property to third party. Oracle may or may not acquire Sun.

    Who would the third party be? Sun shareholders would be very annoyed if the sale was for less than $1bn... and rightfully so! Who has the cash to pay $1bn for a open-source database? I doubt that IBM would come to the rescue here as I doubt that there is enough IP in MySQL alone to interest them and the SAP bridge has already been burned.

So, what do I want to happen? That is a good question. There are a lot of tough decisions which has to be made to complete MySQL/MariaDB/etc. I like that MariaDB is being developed by Monty and many other long-time MySQL developers: A part of me wishes to be working with them to help shape it's future.

Perhaps "MySQL" should become like "Linux". A brand owned by a benevolent organization and permits many distributions to use it to name their database product. The "MySQL" brand would require that so named software be GPL, share a common protocol and SQL dialect. There would be an open MySQL Compatibility Test kit which would test distros for compatibility to some "gold standard".

Perhaps that is what I would like.