Re: Retry Cached Remote Connections for postgres_fdw in case remote backend gets killed/goes away
Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
From: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
To: Fujii Masao <masao.fujii@oss.nttdata.com>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2020-10-01T12:14:23Z
Lists: pgsql-hackers
Attachments
- v7-Retry-Cached-Remote-Connections-For-postgres_fdw.patch (application/x-patch) patch v7
On Wed, Sep 30, 2020 at 11:32 PM Fujii Masao <masao.fujii@oss.nttdata.com> wrote: > > > And another way, if we don't want to use wait_pid() is to have a > > plpgsql stored procedure, that in a loop keeps on checking for the > > backed pid from pg_stat_activity, exit when pid is 0. and then proceed > > to issue the next foreign table query. Thoughts? > > +1 for this approach! We can use plpgsql or DO command. > Used plpgsql procedure as we have to use the procedure 2 times. > > > > > mypid = -1; > > while (mypid != 0) > > SELECT pid INTO mypid FROM pg_stat_activity WHERE backend_type = > > 'client backend' AND application_name = 'fdw_retry_check'; > > Or we can just wait for the number of processes with > appname='fdw_retry_check' to be zero rather than checking the pid. > Done. Attaching v7 patch with above changes. Please review it. With Regards, Bharath Rupireddy. EnterpriseDB: http://www.enterprisedb.com
Commits
-
postgres_fdw: reestablish new connection if cached one is detected as broken.
- 32a9c0bdf493 14.0 landed