Re: TOAST code ignores freespace (was Tweak TOAST code)

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Simon Riggs <simon(at)2ndQuadrant(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: TOAST code ignores freespace (was Tweak TOAST code)
Date: 2010-05-02 14:34:43
Message-ID: 10783.1272810883@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

Simon Riggs <simon(at)2ndQuadrant(dot)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

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Simon Riggs 2010-05-02 15:20:55 Re: TOAST code ignores freespace (was Tweak TOAST code)
Previous Message Simon Riggs 2010-05-02 12:45:45 TOAST code ignores freespace (was Tweak TOAST code)

Browse pgsql-hackers by date

  From Date Subject
Next Message Simon Riggs 2010-05-02 15:20:55 Re: TOAST code ignores freespace (was Tweak TOAST code)
Previous Message Bruce Momjian 2010-05-02 14:31:39 Re: pg_migrator to /contrib in a later 9.0 beta