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

From: John Naylor <jcnaylor(at)gmail(dot)com>
To: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: WIP: Avoid creation of the free space map for small tables
Date: 2018-12-07 13:55:57
Message-ID: CAJVSVGWJWyM_mwh1mLWz5vfLbYhyMDqdSJ0Cp08n7EQAZ5GJvw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 12/6/18, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
> On Thu, Dec 6, 2018 at 10:53 PM John Naylor <jcnaylor(at)gmail(dot)com> wrote:
>>
>> I've added an additional regression test for finding the right block
>> and removed a test I thought was redundant. I've kept the test file in
>> its own schedule.
>>
>
> +# ----------
> +# fsm does a vacuum, and running it in parallel seems to prevent heap
> truncation.
> +# ----------
> +test: fsm
> +
>
> It is not clear to me from the comment why running it in parallel
> prevents heap truncation, can you explain what behavior are you seeing
> and what makes you think that running it in parallel caused it?

One of the tests deletes all records from the relation and vacuums. In
serial schedule, the heap and FSM are truncated; in parallel they are
not. Make check fails, since since the tests measure relation size.
Taking a closer look, I'm even more alarmed to discover that vacuum
doesn't even seem to remove deleted rows in parallel schedule (that
was in the last test I added), which makes no sense and causes that
test to fail. I looked in vacuum.sql for possible clues, but didn't
see any. I'll have to investigate further.

-John Naylor

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alexander Korotkov 2018-12-07 15:34:44 Re: Connections hang indefinitely while taking a gin index's LWLock buffer_content lock
Previous Message Francesco Nidito 2018-12-07 11:24:26 Re: Log level of logical decoding