On Fri, 2006-12-29 at 16:41 -0500, Tom Lane wrote:
> "Simon Riggs" <simon@2ndquadrant.com> writes:
> > On Fri, 2006-12-29 at 10:49 -0500, Tom Lane wrote:
> >> Counterexample: table in which all tuples exceed half a page.
>
> > Current FSM code will ignore those too, if they are less than the
> > average size of the tuple so far requested. Thats a pretty wierd
> > counterexample, even if it is a case that needs handling.
>
> Better read it again. The number that's passed to the FSM is the
> free space *after* vacuuming, which in this scenario will be
> BLCKSZ-less-page-header. This case is not broken now, but it will
> be if we adopt your proposal.
The case doesn't is extremely rare, since
#define TOAST_TUPLE_THRESHOLD (MaxTupleSize / 4)
Even so, I'm fairly certain that an if () statement is OK to handle
that case. So I don't really understand that as a limit to the proposal,
which is a small change in the scheme of things.
DSM has my support; I would like it to be as efficient as possible.
-- Simon Riggs EnterpriseDB http://www.enterprisedb.com