[Pgpool-general] Online recovery during load

Christophe Philemotte christophe.philemotte at apreco.be
Wed Jan 13 15:55:31 UTC 2010


Hi,

I've read several messages in this mailing list talking about online
recovery. And thanks to them, I've managed to set up it and I can online
add a new node or recover a degenerated one.

Before to present you my problem, just a question about the 2nd stage
(you'll understand that this question is linked to my problem). Why the
client connections have to be closed during this stage? Couldn't the
recovered node catch up with the master node without stopping the service?

Now, let me present you my problem. When I test online recovery during a
typical database load, I've obtained two failed scenarios:
1. when the client_idle_limit_in_recovery is set (the best found value
is 10s), the online recovery is done, but a few client requests have
failed (timeout or closed connection);
2. when the client_idle_limit_in_recovery isn't set, the online recovery
is not done, because of a few client connections that cannot be closed
(There are effectively used by client processes, not lazy ones).

Setup used:
  - pgpool-II 2.3.1
  - postgresql 8.3
  - everything on the same machine
  - two backends

And I've played with different configuration variables such as
connection_life_time or child_life_time, but that makes no difference.
In a sense, I think it is normal. How can the 2nd stage could be
performed if a client need his connection?

Maybe the answer is that making online recovery means interrupting
temporally the service. Is it the case? Or do I set up better pgpool?

If you need any config elements or whatever, please tell me.

Anyway, thanks to the pgpool's team for this great software :).

Christophe Philemotte


More information about the Pgpool-general mailing list