Re: [Proposal] Add foreign-server health checks infrastructure

Fujii Masao <masao.fujii@oss.nttdata.com>

From: Fujii Masao <masao.fujii@oss.nttdata.com>
To: "kuroda.hayato@fujitsu.com" <kuroda.hayato@fujitsu.com>, 'Kyotaro Horiguchi' <horikyota.ntt@gmail.com>
Cc: "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>, "Shinya11.Kato@oss.nttdata.com" <Shinya11.Kato@oss.nttdata.com>, "zyu@yugabyte.com" <zyu@yugabyte.com>
Date: 2022-02-18T08:59:46Z
Lists: pgsql-hackers

On 2022/02/17 19:35, kuroda.hayato@fujitsu.com wrote:
> Dear Horiguchi-san,
> 
>> I think we just don't need to add the special timeout kind to the
>> core.  postgres_fdw can use USER_TIMEOUT and it would be suffiction to
>> keep running health checking regardless of transaction state then fire
>> query cancel if disconnection happens. As I said in the previous main,
>> possible extra query cancel woud be safe.

Sounds reasonable to me.


> I finally figured out that you mentioned about user-defined timeout system.
> Firstly - before posting to hackers - I designed like that,
> but I was afraid of an overhead that many FDW registers timeout
> and call setitimer() many times. Is it too overcautious?

Isn't it a very special case where many FDWs use their own user timeouts? Could you tell me the assumption that you're thinking, especially how many FDWs are working?

Regards,

-- 
Fujii Masao
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION



Commits

  1. postgres_fdw: Extend postgres_fdw_get_connections to return user name.

  2. postgres_fdw: Fix bug in connection status check.

  3. postgres_fdw: Add connection status check to postgres_fdw_get_connections().

  4. postgres_fdw: Add "used_in_xact" column to postgres_fdw_get_connections().

  5. doc: Enhance documentation for postgres_fdw_get_connections() output columns.

  6. Avoid reference to nonexistent array element in ExecInitAgg().

  7. Add WL_SOCKET_CLOSED for socket shutdown events.

  8. postgres_fdw: reestablish new connection if cached one is detected as broken.