Skip site navigation (1) Skip section navigation (2)

Re: pgsql_fdw, FDW for PostgreSQL server

From: Hitoshi Harada <umi(dot)tanuki(at)gmail(dot)com>
To: Shigeru Hanada <shigeru(dot)hanada(at)gmail(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Kohei KaiGai <kaigai(at)kaigai(dot)gr(dot)jp>
Subject: Re: pgsql_fdw, FDW for PostgreSQL server
Date: 2011-10-29 07:25:46
Message-ID: CAP7Qgm=Uz4vBUcSGFLU=kv+1BpUs9GyS=mmJiu73Hxdpw7Yv7g@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-hackers
2011/10/25 Shigeru Hanada <shigeru(dot)hanada(at)gmail(dot)com>:
>
> Connection management
> =====================
> The pgsql_fdw establishes a new connection when a foreign server is
> accessed first for the local session.  Established connection is shared
> between all foreign scans in the local query, and shared between even
> scans in following queries.  Connections are discarded when the current
> transaction aborts so that unexpected failure won't cause connection
> leak.  This is implemented with resource owner mechanism.
>

I have a doubt here, on sharing connection for each server. What if
there are simultaneous scan on the same plan? Say,

-> Nested Loop
  -> Foreign Scan to table T1 on server A
  -> Foreign Scan to table T2 on server A

Okay, you are thinking about Foreign Join, so example above is too
simple. But it is always possible to execute such a query if foreign
scan nodes are separated far, isn't it? As far as I see from your
explanation, scan T1 and scan T2 share the same connection. Now join
node scans one row from left (T1) while asking rows from right (T2)
without fetching all the rows from left. If T2 requests to server A,
the connection's result (of T1) is discarded. Am I understand
correctly?

Regards,
-- 
Hitoshi Harada

In response to

Responses

pgsql-hackers by date

Next:From: Heikki LinnakangasDate: 2011-10-29 07:45:46
Subject: Re: So where are we on the open commitfest?
Previous:From: Tom LaneDate: 2011-10-29 03:40:06
Subject: Re: So where are we on the open commitfest?

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group