Re: Append with naive multiplexing of FDWs - Mailing list pgsql-hackers

From Kyotaro Horiguchi
Subject Re: Append with naive multiplexing of FDWs
Date
Msg-id 20200901.094456.893457092229573010.horikyota.ntt@gmail.com
Whole thread Raw
In response to Re: Append with naive multiplexing of FDWs  (Etsuro Fujita <etsuro.fujita@gmail.com>)
Responses Re: Append with naive multiplexing of FDWs  (Etsuro Fujita <etsuro.fujita@gmail.com>)
List pgsql-hackers
Fujita-san, thank you for taking time!

At Mon, 31 Aug 2020 19:10:39 +0900, Etsuro Fujita <etsuro.fujita@gmail.com> wrote in 
> On Mon, Aug 31, 2020 at 6:20 PM Etsuro Fujita <etsuro.fujita@gmail.com> wrote:
> > * I know your patch is a POC one, but one concern about it (and
> > Horiguchi-san's patch set) is concurrent data fetches by multiple
> > foreign scan nodes using the same connection in the case of
> > postgres_fdw.  Here is an example causing an error:
> 
> > select * from pt1, pt2 where pt2.a = 't22' or pt2.a = 't23';
> > ERROR:  another command is already in progress
> > CONTEXT:  remote SQL command: DECLARE c4 CURSOR FOR
> > SELECT a, b FROM public.t22 WHERE (((a = 't22'::text) OR (a = 't23'::text)))
> 
> > (Horiguchi-san’s patch set doesn't work for this query either, causing
> > the same error.  Though, it looks like he intended to handle cases
> > like this by a queuing system added to postgres_fdw to process such
> > concurrent data fetches.)
> 
> I was wrong here; Horiguchi-san's patch set works well for this query.
> Maybe I did something wrong when testing his patch set.  Sorry for
> that.

Yeah. postgresIterateForeignScan calls vacate_connection() to make the
underlying connection available if a server connection is busy with
another remote query. The mechanism is backed by a waiting queue
(add_async_waiter, move_to_next_waiter, remove_async_node).

regards.

-- 
Kyotaro Horiguchi
NTT Open Source Software Center

pgsql-hackers by date:

Previous
From: Andy Fan
Date:
Subject: Re: Get rid of runtime handling of AlternativeSubPlan?
Next
From: Tom Lane
Date:
Subject: Re: Maximum password length