TOAST code ignores freespace (was Tweak TOAST code)

From: Simon Riggs <simon(at)2ndQuadrant(dot)com>
To: Tom Lane <tgl(at)postgresql(dot)org>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: TOAST code ignores freespace (was Tweak TOAST code)
Date: 2010-05-02 12:45:45
Message-ID: 1272804345.4161.31190.camel@ebony
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

On Wed, 2009-07-22 at 01:21 +0000, Tom Lane wrote:

> Tweak TOAST code so that columns marked with MAIN storage strategy are
> not forced out-of-line unless that is necessary to make the row fit on a
> page. Previously, they were forced out-of-line if needed to get the row
> down to the default target size (1/4th page).

A comment from Selena made me notice this patch from last year.

I notice that this patch might result in longer rows in the heap, which
in many cases is good. For updates, it can result in a row too large to
fit on the current block and for us to move block to one in which it
will fit.

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.

--
Simon Riggs www.2ndQuadrant.com

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2010-05-02 14:34:43 Re: TOAST code ignores freespace (was Tweak TOAST code)
Previous Message Simon Riggs 2010-05-02 12:28:43 pgsql: Update standbycheck test output with new ERROR message changes.

Browse pgsql-hackers by date

  From Date Subject
Next Message Simon Riggs 2010-05-02 14:12:25 Re: pg_start_backup and pg_stop_backup Re: Re: [COMMITTERS] pgsql: Make CheckRequiredParameterValues() depend upon correct
Previous Message Simon Riggs 2010-05-02 11:01:52 Further Hot Standby documentation required