Re: Automatic free space map filling

Jim C. Nasby <jnasby@pervasive.com>

From: "Jim C. Nasby" <jnasby@pervasive.com>
To: Dawid Kuroczko <qnex42@gmail.com>
Cc: pgsql-hackers@postgresql.org
Date: 2006-05-02T15:49:57Z
Lists: pgsql-hackers
On Mon, May 01, 2006 at 10:24:50PM +0200, Dawid Kuroczko wrote:
> VACUUM table WHERE some_col > now()-'1 hour'::interval;
> 
> I.e. Let vacuum run "piggyback" on some index.  This would allow
> for a quick vacuum of a fraction of a large table.  Especially when
> the table is large, and only some data (new data) are being modified.
> 
> The vacuum for such a table would:
> 1. scan the index accoriding to the where criteria and create bitmap
>  of blocks to look at.
> 2. go through these blocks and vacuum them.
> 
> Hmm, another perhaps silly idea -- a special index kind for tracking
> tuple deaths.  Ie -- something like whenever tuple is updated/deleted,
> insert an entry into such index, using last session the tuple is visible
> for as a key.  Then, perhaps, vacuum could scan such an index and
> find tuples which are candidates for removal.  I lack the knowledge of
> PostgreSQL's internals, so forgive me if I am writing something
> completely insane. :)

There is a TODO to create a 'dead space map' which would cover #2 and
probably eliminate any use for #1.
-- 
Jim C. Nasby, Sr. Engineering Consultant      jnasby@pervasive.com
Pervasive Software      http://pervasive.com    work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf       cell: 512-569-9461