On Thu, Oct 29, 2009 at 6:21 PM, <[email protected]> wrote: > It seems that there is not a good solution for this. > For example, let's say I have two backends: backend0 and backend1. > > 1. Network connection error happens on backend0. > 2. backend0 is denerated. > 3. New data incomes into pgpool->backend1. > 4. backend0 is now out of sync. > 5. Network connection is re-established on backend0. > 6. pgpool is restarted for some reason. > 7. pgpool connects to both backends. > 8. a client executes a query that causes to retrieve data from both > backends, but are mismatching. > 9. pgpool degenerate the one that is NOT the master -> backend1. > 10. DBA gets crazy because data was lost (in the backend1, when backend0 > connection was down)
I think that you are going over the top by missing a few key points: 2. After this event, pgsql in node 0 should be shut down by failover script configured in pgpool-II or any other mechanism. 6. "For some reason" seems like kids playing around to me. I can only see this happening if all of the following are true: a) No backup power available. b) Electricity goes down. c) No sysadmin receives an alert of what has happened If you meant a software restart of the daemon, then you have a problem with humans, not with software. > I think pgpool should keep track of which database has data with latest > timestamp in order to degenerate the oldest one. Is it possible? > Or any ideas as to how to solve or mitigate this? Although it would be a good idea for pgpool-II to try and remember that, it gets quite more complicated when you are inside a high availability cluster, where that information would have to be shared. Still, a nice feature it would be. -- Jaume Sabater http://linuxsilo.net/ "Ubi sapientas ibi libertas" _______________________________________________ Pgpool-general mailing list [email protected] http://pgfoundry.org/mailman/listinfo/pgpool-general
