Re: pgsql: Avoid creation of the free space map for small heap relations, t

Amit Kapila <amit.kapila16@gmail.com>

From: Amit Kapila <amit.kapila16@gmail.com>
To: John Naylor <john.naylor@2ndquadrant.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Amit Kapila <akapila@postgresql.org>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2019-02-28T02:40:28Z
Lists: pgsql-hackers
On Thu, Feb 28, 2019 at 7:45 AM John Naylor <john.naylor@2ndquadrant.com> wrote:
>
> On Thu, Feb 28, 2019 at 7:24 AM Amit Kapila <amit.kapila16@gmail.com> wrote:
> > > The flaw in my thinking was treating extension too similarly too
> > > finding an existing block. With your patch clearing the local map in
> > > the correct place, it seems the call at hio.c:682 is now superfluous?
> >
> > What if get some valid block from the first call to
> > GetPageWithFreeSpace via local map which has required space?  I think
> > in that case we will need the call at hio.c:682.  Am I missing
> > something?
>
> Are you referring to the call at line 393? Then the map will be
> cleared on line 507 before we return that buffer.
>

That's correct, I haven't looked at line number very carefully and
assumed that you are saying to remove the call at 507.  I also think
that the call at line 682 doesn't seem to be required, but I would
prefer to keep it for the sake of consistency in this function and
safety purpose.  However, I think we should add a comment on the lines
suggested by you.  I will send the patch after making these
modifications.

-- 
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com


Commits

  1. Clear the local map when not used.

  2. Remove unneeded argument from _bt_getstackbuf().

  3. Avoid creation of the free space map for small heap relations, take 2.