| From: | Shane Ambler <pgsql(at)007Marketing(dot)com> | 
|---|---|
| To: | Gideon <gideondebian(at)isogo(dot)co(dot)za> | 
| Cc: | Richard Huxton <dev(at)archonet(dot)com>, List <pgsql-general(at)postgresql(dot)org> | 
| Subject: | Re: Database Mirroring Solution | 
| Date: | 2006-11-10 13:56:03 | 
| Message-ID: | 455484F3.40603@007Marketing.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-general | 
 >>> We basicaly need to run a database servers in 2 different
 >>> towns. Now there will be update's and selects and both need
 >>> to be in sync with each other. Aswell as if / when database in
 >>> town 1 goes down ... we need to be able to switch to the database
 >>> in town 2 for emergency purposes. We cannot use just one master
 >>> as the connectivity between the two towns isn't fast enough for
 >>> the amount of users that will be viewing data through the connection.
There are two ways to have the replication happen -
1. Have a change made at site1 then replicate it at site2 before 
committing the change and allowing the user to carry on with something else.
2. Have a change made at site1 and commit it so the user can move on to 
something else, then duplicate the change at site2 in the background.
If you want the quicker user response from the second way then you will 
need to separate the data in a way that eliminates update conflicts as 
well as sequence number conflicts.
The first way will get delays (increasing as traffic increases) in 
committing as the change is replicated in the other office, larger 
delays will cause rollbacks as I would expect failures in the 
replication when the delays are too long.
If your current connection is not fast enough to have both offices 
connect to the one database then replicating both ways in real time will 
only produce double the traffic. Which means you will want to look at 
synchronising in the background and have varying delays between changes 
in site1 showing up in site2.
example:-
Lets say you have 5 users in each office, currently if the database is 
in one office then 5 users will connect to it through the local network 
(no issues there) and 5 will connect through your slow external network.
If you want all changes to reflect in both offices then the changes made 
  in both offices will be sent to the other office, so you will 
effectively have 10 users working through your slow external connection.
If your external network is insufficient for the 5 users from the other 
office then synchronising both ways will double the traffic and not get 
the desired result.
Excess other traffic can also interfere so you may want to look into 
Quality Of Service between the 2 sites to ensure the database traffic 
always gets priority over any other traffic.
 >
 > Thanks for the advice. I will keep it in mind. I also just wanted to
 > make sure
 > that I havent missed something or some solution that is already out
 > there to
 > cater for my needs.
PGCluster is a multi master replication system, but I don't think it 
will offer a better solution for you.
--
Shane Ambler
pgSQL(at)007Marketing(dot)com
Get Sheeky @ http://Sheeky.Biz
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Albe Laurenz | 2006-11-10 14:06:59 | Re: "stopping" a single database in a cluster | 
| Previous Message | Christopher Browne | 2006-11-10 13:41:51 | Re: Database Mirroring Solution |