Hi,
I would like to get some ideas about subject. I do not have any
preferred solution (hot-standby, Slony or pgpoll) so anything which
can deliver/satisfy the following will good:
- one side completely down: Client should use switch to other side
transparently (Failover / High Availability)
- database writes: transparent for application ie. connection
pooler/... should redirect writes to master (it would be nice to have
writes on both sides and everything in sync) and use local database
for reads (database holds metadata/configuration; just few writes)
- replication lag: Clients shouldn't use "stalled data". Switch to
master or stop and wait are preferred actions.
- automatic failover w/o DBA intervention (or minimal intervention)
The other things to consider are:
- average latency could be up to 400ms. There is no problem to buy
connectivity from different provider if we can use simpler/more robust
setup. But I don't know which provider can deliver low latency link
suitable for this purpose.
- one second lag between master and slave would be tolerable but if we
can go lower that would be nice (low latency link, configuration, ...)
but we need robustness
- kernel or tcp/ip tweaks? We use CentOS 5.7
- database is small; around 1.5GB. It doubles in size every 6..9 months.
- NetScaler like appliance could be used
Thanks!
--
Ondrej Ivanic
(ondrej.ivanic@gmail.com)