Re: [pgsql-patches] Recalculating OldestXmin in a long-running vacuum

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Heikki Linnakangas <heikki(at)enterprisedb(dot)com>
Cc: Bruce Momjian <bruce(at)momjian(dot)us>, Gregory Stark <gsstark(at)mit(dot)edu>, pgsql-patches(at)postgresql(dot)org
Subject: Re: [pgsql-patches] Recalculating OldestXmin in a long-running vacuum
Date: 2007-02-01 18:19:29
Message-ID: 20222.1170353969@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-patches

Heikki Linnakangas <heikki(at)enterprisedb(dot)com> writes:
> I have two runs of DBT-2, one with the patch and one without.

> Patched:

> autovac "public.stock" scans:1 pages:1285990(-0)
> tuples:25303056(-2671265) CPU 95.22s/38.02u sec elapsed 10351.17 sec

> Unpatched:

> autovac "public.stock" scans:1 pages:1284504(-0)
> tuples:25001369(-1973760) CPU 86.55s/34.70u sec elapsed 9628.13 sec

So that makes this patch a good idea why? (Maybe what we need to see
is the impact on the total elapsed time for the DBT-2 test, rather
than just the VACUUM runtime.)

BTW I've got serious reservations about whether this bit is safe:

> + /* The table could've grown since vacuum started, and there
> + * might already be dead tuples on the new pages. Catch them
> + * as well. Also, we want to include any live tuples in the
> + * new pages in the statistics.
> + */
> + nblocks = RelationGetNumberOfBlocks(onerel);

I seem to recall some assumptions somewhere in the system that a vacuum
won't visit newly-added pages.

regards, tom lane

In response to

Responses

Browse pgsql-patches by date

  From Date Subject
Next Message Bruce Momjian 2007-02-01 18:33:36 Re: [pgsql-patches] Patch to avoid gprofprofilingoverwrites
Previous Message Heikki Linnakangas 2007-02-01 17:53:35 Re: [pgsql-patches] Recalculating OldestXmin in a long-running vacuum