tags:

views:

277

answers:

5

As most of you know, Sun acquired MySQL (and later Oracle acquired Sun), and during these acquisitions, there were a lot of FUD in MySQL community which resulted in creation of various forks.

Today we have MySQL from MySQL, Percona (XtraDB) MySQL, OurDelta MySQL, MariaDB, Drizzle to name a few. Which brings us to the source of the problem.

We are in the process of upgrading our databases (hardware/software) and I would like to know which one of the forks should I go with. Each has their own set of pros/cons. We are currently using MySQL 5.0.x from MySQL/Linux on an 8-core machine. Our new hardware is a monster with 32 cores and 32GB of memory connecting to a fast NetApp Storage via FC.

I would like to stick with MySQL from MySQL but I have heard horror stories on how badly MySQL 5.1 performs on many cores. I have also heard that MySQL 5.4 performs better on multi-core machines but that's still not production ready. In addition, I have also heard a lot of good things about Percona builds.

This is what I know so far:

MySQL 5.1 from MySQL: Reliable choice, but doesn't scale well on a big machine

Percona: Scales well, good backing company. I don't have much experience with it

MariaDB: Don't know much about it besides that it was founded by Original MySQL developers (including Monty)

OurDelta: Don't know much

Drizzle: Mostly optimized for cloud computing

I would like to know what's the general notion about this problem. Which build/version should I go with? How are you guys picking your builds/versions?

Thanks!

A: 

I think it's still too early to write off MySQL entirely. I'm not enthusiastic about Sun/Oracle gaining the reins, but I don't have a clear idea what direction they'll take with it. Regardless, I'd wait another year before seriously thinking of switching to a fork. Time will tell which project has the resources and motivation to survive, or if a fork is even necessary.

Chris S
A: 

Use MariaDB. They've just released a version lately. Maria engine is also much better than MyISAM. With opensource project, you go where the founder go.

jpartogi
I think you're getting confused here. MariaDB is the fork of MySQL. Maria is a storage engine which is a better version of MyISAM, but not yet stable: http://askmonty.org/wiki/Rename_Maria
Morgan Tocker
+1  A: 

Google has a memory library patch out that supposedly improves performance on multi-thread / core mysql installations. Supposedly, the performance bottleneck was in the memory allocation routines, and would manifest itself starting at 4 cores. I'm currently running a dual proc box with 4 cores each, and am having no problems with 5.1.x without the memory library patch.

My biggest suggestion to you would be to install 5.4 and run a benchmark suite against it. If it does the job, go with it. The fragmentation of the various forks does suck, but maybe it will be for the best. At least the founders have money now to fund their own direction... I wouldn't take the advice to follow them blindly though... It took a lot of time and efffort to set up the mysql infrastructure initially, and while it wouldn't hurt to support the team that did it the first time, there is no guarantee they will succeed the second time. So... support them, but don't rely on them until you know you can rely on them.

Zak
+4  A: 

All of the 'forks' you mentioned (except Drizzle) re-base off newer official releases of MySQL. I think that the word fork can lead you down the wrong path - since the intention is just to provide after market modifications. I wrote about this here:

http://mtocker.livejournal.com/50931.html

Since they re-base of MySQL, and MySQL 5.0 is in "extended maintenance", only major vulnerabilities are to be fixed. This means you want to be moving to 5.1. If we work with this assumption, then it cuts OurDelta out from your decisions - since they are just the 5.1 MariaDB build/packaging partners.

I think you can also rule out Drizzle, since it is currently pre-beta. They're planning a beta by the end of the summer - but it's still much earlier than what you'll want. I really don't think you use a database not ready for production, so this rules out MySQL 5.5 as well.

So this leaves Percona Server, Official MySQL 5.1 and MariaDB. It's true that 5.1 has some poor scalability with many cores, but if you enable the InnoDB plugin it is better.

The rest of my response from here on in is biased - I work for Percona:

Percona XtraDB has additional CPU scalability fixes than MySQL 5.1+InnoDB plugin. The ones that are going to matter are covered here:

http://www.percona.com/docs/wiki/percona-xtradb:features:start

One I can comment on in particular that will matter is this one: http://www.percona.com/docs/wiki/percona-xtradb:patch:innodb_split_buf_pool_mutex

Morgan Tocker
That's funny because that's exactly what we ended up deciding with help of Aurimas (from Percona). We're a happy client. Keep up the good job.Thanks,Drew
Drew
+2  A: 

Personally, I think that everyone who needs to set up a new MySQL installation today should be using MariaDB. MariaDB is based on the latest MySQL 5.1, actively maintained (including fixes for bugs reported against MySQL) and packages Percona XtraDB / InnoDB plugin.

I don't even know if "fork" accurately describes Maria, since they are committed to keeping up with current releases of MySQL.

In short: MariaDB 5.1 = MySQL 5.1 + Percona XtraDB + additional useful patches + active development and maintenance

casey
Doh. Thought I was on Serverfault. How'd this question get here anyway? ;)
casey