Our company offers a web service that is provided to users from several d
ifferent hosting centers across the globe.
The content and functionality at each of the servers is almost exact
ly the same, and we could have based them all in a single location. However, we chose to distribute the servers geographica
lly to offer our users the best performance, regardless where they might be.
Up unt
il now, the only content on the servers that has had to be synchronized is the server software itse
lf. The features and functionality of our service are being updated regularly, so every week or two we push updates out to all the servers at basically the same time. We use a relat
ively manual approach to do the updating, but it works fine.
Sometime soon, however, our synchronization needs are going to get a b
it more complex.
In particular, we'll soon start offering a feature at our site that wi
ll involve a database with content that will change on an almost second-by-second basis, based on user input and activity. For performance reasons, a comp
lete instance of this database will have to be present locally at each of our server locations. At the same time, the content of the database will have to be synchronized across all server locat
ions, so that users get the same database content, regardless of the server they choose to visit.
We have not yet chosen the database that we'll use for this funct
ionality, although we are leaning towards MySql. (We are also considering PostgreSQL.)
So, my quest
ion for the assembled experts is: What approach is the best one for us to use to synchron
ize the database instances across our servers?
Ideally, we'd l
ike a solution that is resilient to a server location becoming unavailable, and we'd also prefer a solution that makes eff
icient use of bandwidth. (Processing power doesn't cost us a lot; bandwidth, on the other hand, can get expensive.)
FWIW ...
(1) Our servers run Apache and Tomcat on top of Centos.
(2) I've found the following "how to" that suggests an approach involving MySQL that could address our needs: http://capttofu.livejournal.com/1752.html
Thanks!