Mysql – MariaDB Cluster vs Percona Cluster for MySQL

mariadbMySQLmysql-clusterperconapercona-xtradb-cluster

What are the advantages and and disadvantages between the two? I've only been able to find information on these two implementations without any specifics on clusters.

I'm currently implementing a Percona Cluster but my only concern currently is with MYISAM databases for replication. I run several wordpress databases in INNODB on these servers but when I need to migrate databases from other systems, they are sometimes fully or partially MYISAM which has caused some problems with my setup lately.

Is moving from a Percona Cluster to a MariaDB Cluster a better choice?

Best Answer

Both platforms use the same mechanism for replication: Galera. On the page at that link, you'll notice there are images featuring both PXC and MariaDB Cluster.

Galera library provides transactional replication. MyISAM doesn't do transactions, so the problems you may be having now are very likely related and would not be any different on the alternate platform.

Currently replication works only with InnoDB storage engine. Any writes to tables of other types, including system (mysql.*) tables, are not replicated. However, DDL statements are replicated in statement level, and changes to mysql.* tables will get replicated that way. So, you can safely issue: CREATE USER..., but issuing: INSERT INTO mysql.user..., will not be replicated.

http://www.percona.com/doc/percona-xtradb-cluster/limitation.html

Currently MariaDB Galera Cluster only supports the InnoDB/XtraDB storage engine.

https://mariadb.com/kb/en/getting-started-with-mariadb-galera-cluster/

And, of course, PXC uses XtraDB, Percona's compatible replacement for InnoDB (it has "XtraDB" right in the name), and MariaDB also uses Percona's XtraDB instead of Oracle's InnoDB, although, for compatibility on both systems, the storage engine still calls itself InnoDB.

Since the two systems share a signficant amount of code and are all intended to be essentially drop-in replacements for one another, the decision of which platform to use is largely a matter of opinion. I personally prefer vendor "x" which might mean I'd personally recommend you use MariaDB and also might mean I'd personally recommend sticking with PXC, but I need not actually actually tell you my preference, since it doesn't matter -- it's based largely on opinions and impressions and documentation and personalities and not on any kind of valuable evidence.

Your best solution for migrating MyISAM is probably going to be to modify the dumpfiles to ENGINE=InnoDB (and any other changes that necessitates) or staging them on a standalone server, then converting and exporting them as fully-InnoDB before trying to import them to your cluster.

If the MyISAM issue is your only concern, or even just your primary concern, then MariaDB Cluster and PXC are essentially identical in that regard -- they don't support it, for a very sensible reason -- it's not feasible to do so.