On Mon, May 10, 2021 at 07:54:24AM -0700, Peter Geoghegan wrote:
> On Mon, May 10, 2021 at 4:44 AM Matthias van de Meent
> <boekewurm+postgres@gmail.com> wrote:
> > I noticed that the improvement in bloat control in the HeapAM that I
> > know of (3c3b8a4b, 0ff8bbde) weren't documented here. Although each
> > can be considered minor, they together can decrease the bloating
> > behaviour of certain workloads significantly (and limit the total
> > damage), and in my opinion this should be mentioned.
> >
> > 3c3b8a4b: Returns space claimed for the line pointer array back to the
> > page's empty space, so that it can also be used for tuple data.
> >
> > 0ff8bbde: Allows large tuples to be inserted on pages which have only
> > a small amount of data, regardless of fillfactor.
>
> +1 on mentioning both things.
OK, you are confirming what Matthias suggested. I added these two
items, which both seem to apply only to heap pages, not index pages:
---------------------------------------------------------------------------
<listitem>
<!--
Author: Peter Geoghegan <pg@bowt.ie>
2021-04-07 [3c3b8a4b2] Truncate line pointer array during VACUUM.
-->
<para>
Deallocate space reserved by trailing unused heap line pointers
(Matthias van de Meent, Peter Geoghegan)
</para>
</listitem>
---------------------------------------------------------------------------
<listitem>
<!--
Author: Noah Misch <noah@leadboat.com>
2021-03-30 [0ff8bbdee] Accept slightly-filled pages for tuples larger
than fill
-->
<para>
Allow wide tuples to be always added to almost-empty heap pages (John Naylor,
Floris van Nee)
</para>
<para>
Previously tuples whose insertion would have exceeded the page's fill
factor were instead added to new pages.
</para>
</listitem>
--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com
If only the physical world exists, free will is an illusion.