From MySQL+MMM to MariaDB+Galera Cluster: A High Availability Makeover
blog.scoutapp.com
blog.scoutapp.com
Even in these cases, there are always other potential options, for instance using query playback with a combination less frequent FS or blockstore layer provided snapshot functionality.
In practice, in my own experience, generally when people get an SQL based database to a huge size the often greater issue is that someone has a huge mess of bad application code relying completely on the current database configuration that is not time or cost-feasible to modify.
Galera doesn't come out of the box with a secure SST option. SST, or state snapshot transfer, is how it bootstraps a new/failed node to get it close enough to continue with regular Galera replication. If you're running on a public cloud, you might care about secured SST communication. I wrote a drop-in secure rsync SST option, based on socat, that uses SSL encryption to seamlessly secure that traffic. Not perfect by any means, but it works without any futzing around.
http://www.percona.com/doc/percona-xtradb-cluster/release-no...
It is a ten year old bug [1] never addressed, no tools ever made to optimize it, and the larger your data, the sooner it will come to bite you. Doesn't matter if you are using mysql, percona or mariadb.
Alter and optimize are already possible on a live innodb table, in theory it should not be exponentially harder to optimize ibdata.
Note that oracle solved this problem on their commercial database product.
The main reason the central table space grows is due to rollback segments. To avoid collecting a lot of them there are two tips (in addition to file per table you mentioned):
1. Use multi-threaded purge. 2. Avoid very long running transactions (ie. 12+ hours)
Once we have done that, we don't really see this problem any longer.
But if you use file-per-table, I've never actually had a problem in practice, since in production, most tables tend to only grow. And even if you remove half the rows of a large table, you're probably expecting that space to be reclaimed eventually.
If, on the other hand, you do a big restructuring where you're deleting 90% of your rows in one big swoop... then it's probably actually easier and faster to just create a new table and copy the 10% valid rows into it, then drop the old table, and rename. All space reclaimed.
It's definitely something annoying to have to keep in mind, and it's why I prefer to use MyISAM when doing big data manipulation on my local dev machine (everything's faster without transactions too). But using InnoDB in production, I've found the never-shrinking-table-files to be a nonissue.
Curious if anyone else has had different experiences.
Maria uses Percona's InnoDB patchset (XtraDB).
Both use the galera patch from codership.
I don't think Percona merges anything back from Maria.
http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-limitat...
And apparently they require a minimum of six nodes. And the supported installation method is a GUI installer. Sounds like typical "enterprise" Oracle trash, further eroding whatever confidence I might have in it.
I went with MariaDB because of the features in MariaDB - because the goal wasn't just to improve availability, but to speed up queries, and the improvements MariaDB's made to complex queries and indexing made that decision easy when compared to Percona Server or MySQL Cluster.