Re: Is there a way to make VACUUM run completely outside

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Hannu Krosing <hannu(at)tm(dot)ee>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Is there a way to make VACUUM run completely outside
Date: 2005-02-08 16:39:50
Message-ID: 20050208163950.GB24203@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Feb 08, 2005 at 01:55:47PM +0200, Hannu Krosing wrote:

> So I guess that making it commit and open new transaction at a regular
> interval (like each minute) during vacuuming single table would not
> alter its visible behaviour. That would solve my problem of long-running
> vacuums on large tables polluting unrelated small but heavily updated
> tables with dead tuples.

Interesting. The problem is that a long running VACUUM on a single
table will keep in PGPROC a TransactionId that will last very long,
which will "pollute" every concurrent Snapshot; so smaller tables can't
be cleaned up because the tuples are visible for the transaction running
the vacuum -- except that that transaction cannot possibly want to look
at them.

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"La tristeza es un muro entre dos jardines" (Khalil Gibran)

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2005-02-08 16:42:11 Re: float4 regression test failed on linux parisc
Previous Message pgsql 2005-02-08 16:14:01 One Big trend vs multiple smaller trends in table statistics