[Pgpool-general] Reloading the server while under load and recovering the degenerated node

Jaume Sabater jsabater at gmail.com
Tue Feb 24 14:14:52 UTC 2009


On Tue, Feb 24, 2009 at 3:30 AM, Tatsuo Ishii <ishii at sraoss.co.jp> wrote:

> Initialy I thought PostgreSQL will not send parameter status packet
> unless some sensitive parameters such as datestyle etc. is
> changed. The reality is, PostgreSQL sends those packets virtually
> randomly whenever postgresql.conf is reloaded.
>
> Now pgpool ignores those randomly:-) sent packets thus you should be
> able to reload postgresql.conf anytime.

I've applied the patches and run the tests again:

dropdb -h postgresql -p 9999 -U pgpool2 bench_replication
createdb -h postgresql -p 9999 -U pgpool2 bench_replication
createlang -h postgresql -p 9999 -U pgpool2 -d bench_replication plpgsql
pgbench -i -h postgresql -p 9999 -U pgpool2 -d bench_replication
pgbench -h postgresql -p 9999 -U pgpool2 -d bench_replication -c 2 -t 100

Reloading both PostgreSQL, with and without changes in the
postgresql.conf file, resulted in no errors/cuts. Here you are the log
by pgpool sent to the syslog:

Feb 24 15:08:42 pgsql1 pgpool: LOG:   pid 23867:
read_kind_from_backend: parameter name: is_superuser value: on
Feb 24 15:08:42 pgsql1 pgpool: LOG:   pid 23867:
read_kind_from_backend: parameter name: session_authorization value:
pgpool2
Feb 24 15:08:42 pgsql1 pgpool: LOG:   pid 23867:
read_kind_from_backend: parameter name: is_superuser value: on
Feb 24 15:08:42 pgsql1 pgpool: LOG:   pid 23867:
read_kind_from_backend: parameter name: session_authorization value:
pgpool2
Feb 24 15:08:59 pgsql1 pgpool: LOG:   pid 23854:
read_kind_from_backend: parameter name: is_superuser value: on
Feb 24 15:08:59 pgsql1 pgpool: LOG:   pid 23854:
read_kind_from_backend: parameter name: session_authorization value:
pgpool2
Feb 24 15:08:59 pgsql1 pgpool: LOG:   pid 23854:
read_kind_from_backend: parameter name: is_superuser value: on
Feb 24 15:08:59 pgsql1 pgpool: LOG:   pid 23854:
read_kind_from_backend: parameter name: session_authorization value:
pgpool2
Feb 24 15:09:41 pgsql1 pgpool: LOG:   pid 23882:
read_kind_from_backend: parameter name: is_superuser value: on
Feb 24 15:09:41 pgsql1 pgpool: LOG:   pid 23882:
read_kind_from_backend: parameter name: session_authorization value:
pgpool2
Feb 24 15:09:41 pgsql1 pgpool: LOG:   pid 23882:
read_kind_from_backend: parameter name: is_superuser value: on
Feb 24 15:09:41 pgsql1 pgpool: LOG:   pid 23882:
read_kind_from_backend: parameter name: session_authorization value:
pgpool2
Feb 24 15:09:44 pgsql1 pgpool: LOG:   pid 23852:
read_kind_from_backend: parameter name: DateStyle value: ISO, MDY
Feb 24 15:09:44 pgsql1 pgpool: LOG:   pid 23881:
read_kind_from_backend: parameter name: DateStyle value: ISO, MDY
Feb 24 15:09:54 pgsql1 pgpool: LOG:   pid 23852:
read_kind_from_backend: parameter name: is_superuser value: on
Feb 24 15:09:54 pgsql1 pgpool: LOG:   pid 23852:
read_kind_from_backend: parameter name: session_authorization value:
pgpool2
Feb 24 15:09:54 pgsql1 pgpool: LOG:   pid 23852:
read_kind_from_backend: parameter name: is_superuser value: on
Feb 24 15:09:54 pgsql1 pgpool: LOG:   pid 23852:
read_kind_from_backend: parameter name: session_authorization value:
pgpool2
Feb 24 15:09:54 pgsql1 pgpool: LOG:   pid 23881:
read_kind_from_backend: parameter name: is_superuser value: on
Feb 24 15:09:54 pgsql1 pgpool: LOG:   pid 23881:
read_kind_from_backend: parameter name: session_authorization value:
pgpool2
Feb 24 15:09:54 pgsql1 pgpool: LOG:   pid 23881:
read_kind_from_backend: parameter name: is_superuser value: on
Feb 24 15:09:54 pgsql1 pgpool: LOG:   pid 23881:
read_kind_from_backend: parameter name: session_authorization value:
pgpool2

Thanks a lot for the fix, Tatsuo.

Regarding the "some times client connections are not dropped and the
online recovery process fails at second stage", any hints or ideas?

-- 
Jaume Sabater
http://linuxsilo.net/

"Ubi sapientas ibi libertas"


More information about the Pgpool-general mailing list