[Pgpool-general] saving state across pgpool restarts?

Jaume Sabater jsabater at gmail.com
Fri Oct 30 14:15:06 UTC 2009


On Thu, Oct 29, 2009 at 6:21 PM,  <Daniel.Crespo at l-3com.com> 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"


More information about the Pgpool-general mailing list