Re: Missing CONCURRENT VACUUM (Was: Release notes for

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Hannu Krosing <hannu@skype.net>
Cc: Bruce Momjian <pgman@candle.pha.pa.us>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2005-08-17T20:45:36Z
Lists: pgsql-hackers
Hannu Krosing <hannu@skype.net> writes:
> On K, 2005-08-17 at 14:48 -0400, Tom Lane wrote:
>> While testing this I realized that it does not in fact work as
>> advertised.  It will only exclude long-running VACUUMs from other
>> VACUUMs' OldestXmin if *all* the transactions in the system are lazy
>> VACUUMs.  If there is even one regular transaction in the system,
>> that transaction will include the VACUUMs in its MyProc->xmin, and
>> thence GetOldestXmin will have to include them in its result.

> Only if these regular transactions are running in SERIALIZABLE isolation
> level, else MyProc->xmin is not set inside GetSnapshotData.

Better read the code again.  The first snap in *any* transaction sets
MyProc->xmin.

			regards, tom lane