Re: Vacuum only with 20% old tuples

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: PostgreSQL-development <pgsql-hackers(at)postgreSQL(dot)org>
Subject: Re: Vacuum only with 20% old tuples
Date: 2000-07-12 02:06:54
Message-ID: 12045.963367614@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> writes:
> I suggest that we change vacuum to only move remove tuples if there is
> more than 20% expired tuples.

> When we do vacuum, we drop all indexes and recreate them.

> This fixes the complaint about vacuum slowness when there are many
> expired rows in the table. We know this is causes by excessive index
> updates. It allows indexes to shrink (Jan pointed this out to me.) And
> it fixes the TOAST problem with TOAST values in indexes.

We can't "drop and recreate" without a solution to the relation
versioning issue (unless you are prepared to accept a nonfunctional
database after a failure partway through index rebuild on a system
table). I think we should do this, but it's not all that simple...

I do not see what your 20% idea has to do with this, though, nor
why it's a good idea. If I've told the thing to vacuum I think
it should vacuum. 20% of a big table could be a lot of megabytes,
and I don't want some arbitrary decision in the code about whether
I can reclaim that space or not.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Philip Warner 2000-07-12 02:15:09 Re: Insert..returning (was Re: Re: postgres TODO)
Previous Message Hiroshi Inoue 2000-07-12 01:55:42 RE: Re: postgres TODO