Re: Have vacuum emit a warning when it runs out of maintenance_work_mem - Mailing list pgsql-patches

From Jim C. Nasby
Subject Re: Have vacuum emit a warning when it runs out of maintenance_work_mem
Date
Msg-id 20070513221401.GA69517@nasby.net
Whole thread Raw
In response to Re: Have vacuum emit a warning when it runs out of maintenance_work_mem  (Heikki Linnakangas <heikki@enterprisedb.com>)
List pgsql-patches
On Sun, May 13, 2007 at 11:19:07AM +0100, Heikki Linnakangas wrote:
> Jim C. Nasby wrote:
> >On Sat, May 12, 2007 at 07:57:44PM +0100, Heikki Linnakangas wrote:
> >>Or we could switch to a more compact representation of the dead tuples,
> >>and not need such a big maintenance_work_mem in the first place.
> >
> >Sure, but even with a more compact representation you can still run out
> >of maintenance_work_mem... unless we allow this to spill to disk. At
> >first guess that sounds insane, but if you've got a large enough set of
> >indexes it *might* actually be faster.
>
> It would only make sense if the table is clustered on an index, so that
> you'd in practice only need to keep part of the array in memory at a
> time. It's pretty narrow use case, not worth spending time on I think.

There might be ways to get around that. For example, instead of testing
every index entry one at a time, you could read in several pages of
index entries, sort the entries based on ctid, and then use that to do
the lookups. Might be worth looking at one of these days...
--
Jim Nasby                                      decibel@decibel.org
EnterpriseDB      http://enterprisedb.com      512.569.9461 (cell)

pgsql-patches by date:

Previous
From: David Fetter
Date:
Subject: OS/X startup scripts
Next
From: "Jim C. Nasby"
Date:
Subject: Re: Concurrent psql patch