We are expanding our network of webservers on EC2 to a number of different regions and currently use master/slave replication. We've found that over the past couple of months our slave has stopped replicating a number of times which required us to clear the db and initialise the replication again.
As we're now looking to have servers in 3 different regions we're a little concerned about these MySQL replication errors. We believe they're due to auto_increment
values, so we're considering a number of approaches to quell these errors and stabilise replication:
- Multi-Master replication; 3 masters (one in each region), with the relevant
auto_increment
offsets, regularly backing up to S3. Or, - MySQL-Cluster; 3 nodes (one in each region) with a separate management node which will also aggregate logs and statistics.
After investigating it seems they both have down-sides (replication errors for the former, performance issues for the latter).
We believe the cluster approach would allow us to manage and add new nodes more easily than the Multi-Master route, and would reduce/eliminate the replication issues we're currently seeing. But performance is a priority.
Are the performance issues of MySQL-Cluster as bad as people say?