MySQL H.A with automatic failover MySQL has a lot of different highly available solutions, I would like to know what are the differences between all the current implementations, here are the implementations that look currently up to date :


MySQL Group Replication (by Oracle)
MySQL NDB Cluster (by Oracle)
Galera Cluster (by Galera)
XtraDB Cluster (by Percona)
MySQL Fabric Cluster (by Oracle)
MySQL Orchestrator (by Github)


What would be the recommended options (or any others) for a high available setup with automatic failover ? (For something equivalent of the SQL Server DB Mirroring with synchronous replication)
Galera == PXC == MariaDB w/Galera -- These are close to the same.
For HA, you need 1 (or more) node in each of 3 datacenters.  (Think earthquakes, tornados, floods, even datacenter outages -- which do happen.)

Oracle's Group Replication is quite new, but has a lot of promise.

Oracle's "Fabric" is probably being abandoned.  (Probably because of a hard-to-solve single-point-of-failure.)

Orchestrator is very good at failing over arbitrary trees (think relay-servers) of lots (even hundreds) of slaves.  Not sure about Master failover.  (See lectures from Booking.com.)

MHA is pretty good -- But when it discovers a "split brain" situation, it requires manual intervention.

NDB Cluster has a number of different things in its "engine".  That is, it is not a 'drop-in' replacement for InnoDB, which all of the rest support.  For one thing, it employs "eventual consistency", wherein you need to specify how to resolve conflicts.

I think the Galera-based solutions, plus Group replication are the only ones that will automatically repair a failed server when it is brought back up.  (I could be wrong here.)

My preference today:  Percona's PXC or MariaDB with Galera -- each builds in and supports Galera.  But I am keeping my eye on Group Replication.