MySQL Forums
Forum List  »  Replication

How best to support global website?
Posted by: Jack Lewis
Date: October 11, 2014 08:24PM

Hi All (I've reposted this from Newbie, which was probably not the right forum),

I'd like some advice on the best way to provide MySQL database services for a global website. Here's the situation:

As of now, we've launched a new Saas product in Sydney Australia, and we're currently only servicing clients in Sydney (and a few in Singapore). However, we'll soon be expanding to support customers in the UK and US.

The current setup is 1 master MySQL instance and two slave instances, all colocated in a Sydney datacenter. I use a MySQL connection load balancer to direct read requests to the slaves and write requests to the master.

My ideal is to be able to replicate this stack to other datacenters around the world, so that users have low latency, with the master databases in each datecenter replicating with each other in some way... but is this the best approach? To be specific, what I want to achieve is:

1. I am NOT looking for write scaling. The client app/users in each region will only write to the database(s) in that region. And I think one write node (the master) in each region is sufficient, at least for now.

2. I do want to reduce latency for users (i.e., have datacenters located near to them).

3. Failover from one datacenter to another is a bonus, but this is not critical, as I already use multiple AWS availability zones for this purpose.

4. I want to have one view of all user/app data.

I guess my options are:

1. Don't globally distribute. Just deploy this stack in one datacenter, and service all clients from that stack. Yes, some clients would get higher latency, but maybe the latency is not significant enough to overly complicate the infrastructure? In this case, is there any advice on where, globally, the best datacenter would be located.

2. Use MySQL master-master circular replication to keep the masters in sync. I know that this can cause problems, but can it be successfully implemented (especiallly with > 2 masters?). In general each datacenter will support users in that region, and data will not generally be updated form multiple regions. But, I do want to have just one database that contains all data, especially if we had to fail-over from one region to another.

3. Use MySQL Cluster. I don't know much about this -- is this an option for this use-case?

4. Use Tungsten/Galera/etc. Again, so far, I don't know much about these technologies.

Please let me know if I'm not providing enough information here -- I suspect I'm not.

If anyone has tackled a similar problem, please provide any advise, warnings, etc. that could help.


Options: ReplyQuote

Written By
How best to support global website?
October 11, 2014 08:24PM

Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.