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

From Tom Lane
Subject Re: [pgsql-patches] Recalculating OldestXmin in a long-running vacuum
Date
Msg-id 20222.1170353969@sss.pgh.pa.us
Whole thread Raw
In response to Re: [pgsql-patches] Recalculating OldestXmin in a long-running vacuum  (Heikki Linnakangas <heikki@enterprisedb.com>)
Responses Re: [pgsql-patches] Recalculating OldestXmin in a long-running vacuum
Re: [pgsql-patches] Recalculating OldestXmin in a long-running vacuum
List pgsql-patches
Heikki Linnakangas <heikki@enterprisedb.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

pgsql-patches by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: [pgsql-patches] Recalculating OldestXmin in a long-running vacuum
Next
From: Bruce Momjian
Date:
Subject: Re: [pgsql-patches] Patch to avoid gprofprofilingoverwrites