Re: VACUUM and transactions in different databases - Mailing list pgsql-general

From Bill Moran
Subject Re: VACUUM and transactions in different databases
Date
Msg-id 20061207090122.145dbf6b.wmoran@collaborativefusion.com
Whole thread Raw
In response to Re: VACUUM and transactions in different databases  (Christopher Browne <cbbrowne@acm.org>)
Responses Re: VACUUM and transactions in different databases  (Alvaro Herrera <alvherre@commandprompt.com>)
List pgsql-general
In response to Christopher Browne <cbbrowne@acm.org>:
> Oops! c@cornelia-boenigk.de (Cornelia Boenigk) was seen spray-painting on a wall:
> > Hi all
> >
> > If I have a running transaction in database1 and try to vacuum
> > database2 but the dead tuples in database2 cannot be removed.
> >
> > INFO:  vacuuming "public.dummy1"
> > INFO:  "dummy1": found 0 removable, 140000 nonremovable row versions
> > in 1341 pages
> > DETAIL:  135000 dead row versions cannot be removed yet.
> >
> > How can I achieve that database2 is vacuumed while a transaction in
> > database1 is not yet commited?
>
> You can't, unless you're on 8.1, and the not-yet-committed transaction
> is VACUUM.

I'm a little confused.

First off, it would seem as if this is completely eliminated in 8.2, as
I tested a scenario involving an idle transaction in one database, and
both vacuum and vacuum full were able to complete in another database
without completing the first transaction.

Are you saying that in 8.1, there is a single exception to this, which
is that if db1 (for example) is in the process of running vacuum, it
won't block db2 from vacuuming?  But that any other type of transaction
can block operations in other databases?

--
Bill Moran
Collaborative Fusion Inc.

pgsql-general by date:

Previous
From: Oleg Bartunov
Date:
Subject: Re: Tsearch2 / PG 8.2 Which stemmer files?
Next
From: Alvaro Herrera
Date:
Subject: Re: VACUUM and transactions in different databases