Re: WIP: Avoid creation of the free space map for small tables

Peter Geoghegan <pg@bowt.ie>

From: Peter Geoghegan <pg@bowt.ie>
To: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>, John Naylor <john.naylor@2ndquadrant.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2019-02-22T23:06:12Z
Lists: pgsql-hackers
On Fri, Feb 22, 2019 at 8:04 AM Alvaro Herrera <alvherre@2ndquadrant.com> wrote:
> Wow, there's a lot less tests failing there than I thought there would
> be.  That increases hope that we can someday have them pass.  +1 on not
> making things worse.
>
> I think the crash in the amcheck test should be studied, one way or
> another; CCing Peter.

I built Postgres with "--with-blocksize=16" and "--with-blocksize=32",
and tested amcheck with both builds. All tests passed.

I have a hard time imagining what the problem could be here. If there
was a problem with amcheck relying on there being an 8KiB block size
specifically, then it would almost certainly have been there since the
initial commit from March 2017. Not much has changed since then, and
the crash that Amit reported occurs at the earliest possible point.

I find it suspicious that there is another crash in pageinspect's
brin_page_items(), since like amcheck, pageinspect is a contrib module
that relies on BLCKSZ when allocating a local temp buffer.

-- 
Peter Geoghegan


Commits

  1. Improve code comments in b0eaa4c51b.

  2. During pg_upgrade, conditionally skip transfer of FSMs.

  3. Add more tests for FSM.

  4. Doc: Update the documentation for FSM behavior for small tables.

  5. Make FSM test portable.

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

  7. Move page initialization from RelationAddExtraBlocks() to use, take 2.

  8. Avoid creation of the free space map for small heap relations.

  9. In bootstrap mode, don't allow the creation of files if they don't already