Re: Parallel Seq Scan

From: Kouhei Kaigai <kaigai(at)ak(dot)jp(dot)nec(dot)com>
To: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, Gavin Flower <GavinFlower(at)archidevsys(dot)co(dot)nz>, Jeff Davis <pgsql(at)j-davis(dot)com>, "Andres Freund" <andres(at)2ndquadrant(dot)com>, Amit Langote <amitlangote09(at)gmail(dot)com>, "Amit Langote" <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp>, Fabrízio Mello <fabriziomello(at)gmail(dot)com>, Thom Brown <thom(at)linux(dot)com>, Stephen Frost <sfrost(at)snowman(dot)net>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, "Haribabu Kommi" <kommi(dot)haribabu(at)gmail(dot)com>
Subject: Re: Parallel Seq Scan
Date: 2015-07-29 23:45:17
Message-ID: 9A28C8860F777E439AA12E8AEA7694F801120463@BPXM15GP.gisp.nec.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> On Wed, Jul 29, 2015 at 7:32 PM, Kouhei Kaigai <kaigai(at)ak(dot)jp(dot)nec(dot)com> wrote:
> >
> > Hi Amit,
> >
> > Could you tell me the code intention around ExecInitFunnel()?
> >
> > ExecInitFunnel() calls InitFunnel() that opens the relation to be
> > scanned by the underlying PartialSeqScan and setup ss_ScanTupleSlot
> > of its scanstate.
>
> The main need is for relation descriptor which is then required to set
> the scan tuple's slot. Basically it is required for tuples flowing from
> worker which will use the scan tuple slot of FunnelState.
>
> > According to the comment of InitFunnel(), it open the relation and
> > takes appropriate lock on it. However, an equivalent initialization
> > is also done on InitPartialScanRelation().
> >
> > Why does it acquire the relation lock twice?
> >
>
> I think locking twice is not required, it is just that I have used the API
> ExecOpenScanRelation() which is used during other node's initialisation
> due to which it lock's twice. I think in general it should be harmless.
>
Thanks, I could get reason of the implementation.

It looks to me this design is not problematic even if Funnel gets capability
to have multiple sub-plans thus is not associated with a particular relation
as long as target-list and projection-info are appropriately initialized.

Best regards,
--
NEC Business Creation Division / PG-Strom Project
KaiGai Kohei <kaigai(at)ak(dot)jp(dot)nec(dot)com>

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Joe Conway 2015-07-29 23:46:35 Re: CREATE FUNCTION .. LEAKPROOF docs
Previous Message Joe Conway 2015-07-29 22:44:20 Re: more RLS oversights