What kind of locks does vacuum process hold on the db? - Mailing list pgsql-general

From Nitin Verma
Subject What kind of locks does vacuum process hold on the db?
Date
Msg-id 640150C1BB635E4C9F2F617BA3EFF1D102594BE3@XCHMTV1.azulsystems.com
Whole thread Raw
Responses Re: What kind of locks does vacuum process hold on the db?
List pgsql-general
What kind of locks does it hold on the db? Table level / Row level /
AccessExclusiveLock ?
Is there a document that details vacuum process, and its internals?


Use case: I am doing a vacuum {all full analyze} on a postgres 8.1 hosting
two user databases. For this I am using ${pg-home}/bin/vacuumdb, not direct
SQLs. Parallel to this I am running transaction on both user-DBs.
Observation:
Transactions don't pause while vacuum is running. (Odd, how come?)

http://www.postgresql.org/docs/8.1/interactive/sql-vacuum.html
"Plain VACUUM (without FULL) simply reclaims space and makes it available for
re-use. This form of the command can operate in parallel with normal reading
and writing of the table, as an exclusive lock is not obtained. VACUUM FULL
does more extensive processing, including moving of tuples across blocks to
try to compact the table to the minimum number of disk blocks. This form is
much slower and requires an exclusive lock on each table while it is being
processed."

After this I tried two vacuums in parallel but those lock each other.

pgsql-general by date:

Previous
From: "Rodrigo De León"
Date:
Subject: Re: how to print a schema
Next
From: "Scott Marlowe"
Date:
Subject: Re: What kind of locks does vacuum process hold on the db?