Re: TOAST code ignores freespace (was Tweak TOAST code) - Mailing list pgsql-hackers

From Tom Lane
Subject Re: TOAST code ignores freespace (was Tweak TOAST code)
Date
Msg-id 10783.1272810883@sss.pgh.pa.us
Whole thread Raw
In response to TOAST code ignores freespace (was Tweak TOAST code)  (Simon Riggs <simon@2ndQuadrant.com>)
Responses Re: TOAST code ignores freespace (was Tweak TOAST code)
Re: TOAST code ignores freespace (was Tweak TOAST code)
List pgsql-hackers
Simon Riggs <simon@2ndQuadrant.com> writes:
> Not commenting further on that patch, but I notice that when we UPDATE
> the toasting algorithm takes no account of the available freespace on
> the current block. If we are updating and the space available would make
> a difference to the row length chosen, it seems like it would be more
> beneficial to trim the row and encourage HOT updates.

That doesn't strike me as a terribly good idea: it would make the
behavior of TOAST significantly more difficult to predict.  Also, what
happens if we force a row to a smaller size and then it doesn't fit
anyway (eg because someone else inserted another row on the page while
we were busy doing this)?  Spend even more cycles to un-toast back to
the normal size, to be consistent with ordinary cross-page updates?

Pretty much every previous discussion of tweaking the TOAST behavior
has focused on giving the user more control (indeed, the patch you
mention could be seen as doing that).  What you're suggesting here
would give the user less control, as well as less predictability.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: pg_migrator to /contrib in a later 9.0 beta
Next
From: Bruce Momjian
Date:
Subject: Re: pg_migrator to /contrib in a later 9.0 beta