On Wed, 14 Apr 2010 20:56:13 +0200 Rainer Weikusat rweikusat@mssgmbh.com wrote:
One of the things my employer uses dovecot for is as mail download server for an 'e-mail purification service' (AV/ anti-spam) for smartphones. The service itself presently runs on a rented server somewhere in the UK and the corresponding 'web service' front-end and user account/ mail account database resides on a server in Germany. The UK dovecot server uses the PostgreSQL server on the German machine for user authentication. The latter is reachable using two entirely different 'internet paths' and there was an outage of several hours on one of them a couple of weeks ago. This prompted some frantic network reconfiguration efforts in order to get the abovementioned service going again and resulted in the conviction that - ideally - the dovecot server should be capable of using connections to multiple PostgreSQL servers (or a single server reachable via several IPs) simultaneoulsy, distributing requests among them, and should be capable of detecting a possible problem on one of the db server connections and use the still functioning ones to continue operations.
Have you looked at anything like pgpool? I looked at this a while back, and from what I could see, it sits between the client app and postgresql, and works fairly invisibly. It does appear to have a failover mode which will do what you want. I haven't yet implemented pgpool anywhere, so I can't give details or opinions.
-- Marshal Newrock Zordio, LLC - http://www.zordio.com