Hello, I have the exact same doubt. However, in my system, appservers "A" and "B" don't run at the same time. While "A" is active, "B" is inactive and viceversa. In the case "A" becomes unavailable, "B" takes over. So, the scenario in this case would be:
Pgpool in both appservers are running and connected to Master DB. Each pgpool instance can be accessed at any time, but the application running on each server will do stuff with its local pgpool only if it becomes active. So, for example: 1. Network connection between "A" and Master DB goes down. 2. "A" application still runs and connects to pgpool, which detects the failure and issues failover. 3. "A" app is interacting with Backup DB through its local Pgpool. 4. "A" app goes down. 5. "B" takes over. 6. "B" app is still connected to its local pgpool which has no problems connecting to Master DB. 7. While "A" already saved data into Backup DB, "B" is saving into Master DB. Result: inconsistency. I think it's kind of the same problem. Any workaround? Thanks, Daniel -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Duco Fijma Sent: Thursday, December 11, 2008 9:34 AM To: [email protected] Subject: [Pgpool-general] inconsistency when using two pgpool instances inwarm standby? Hello, I'm designing a warm-standby Postgres/pgpool system accepting connections from a number of application servers. Of course, running a single instance of pgpool introduces a single point of failure. However, I'm having difficulties seeing how multiple instances of pgpool, in general, can have a consistent picture of the (failure) state of the "master" database. For example, consider two appservers "A" and "B", both running an instance of pgpool. Additionally, we have a master postgres database server and a standby postgres database server. In that situation, the network connection between "B" and the master database server is going down. The pgpool instance on B detect a failure and triggers a failover to the standby server, which therefore exits recovery mode and starts accepting database connections. Especially in a design without single points of failure, the network connection between appserver "A" and the master database is likely not to be failing at the same time. Therefore, from the perspective of appserver "A" the master database is not failing at all. Its pgpool instance therefore happily continues to proxy database connections to the master database. The net effect is that our system is broken into two independent halves. It just takes one database transaction to make these two halves into two inconsistent systems :) I find it difficult to think of a solutions to this. Whatever schema I use, the very same failure that caused the database failover in the first place, can or will also hinder (direct or indirect) communication between the two pgpool instances to prevent inconsistent failover states. -- Duco _______________________________________________ Pgpool-general mailing list [email protected] http://pgfoundry.org/mailman/listinfo/pgpool-general _______________________________________________ Pgpool-general mailing list [email protected] http://pgfoundry.org/mailman/listinfo/pgpool-general
