pg_autovacuum taking locks on multiple tables at the same time

Started by Hari Bhaskaranover 19 years ago2 messagesgeneral
Jump to latest
#1Hari Bhaskaran
hbhaskaran@gmail.com

This is causing a headache for us, if that is indeed true.

So we have code that goes like

begin;
lock table t1;
lock table t2;
...
...

Of course within our own code, we do make sure things are always locked
in the same order (so we wouldn't create deadlocks). We do, however, end
up in deadlocks with pg_autovacuum which seem to take lock in different
order.

Why does pg_autovacuum need locks on more than one table at a time?
(there tables in question are NOT related to each other via foriegn keys)

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Hari Bhaskaran (#1)
Re: pg_autovacuum taking locks on multiple tables at the same time

Hari Bhaskaran <hbhaskaran@gmail.com> writes:

Why does pg_autovacuum need locks on more than one table at a time?

It doesn't --- unless maybe you are considering system catalogs, in
which case I'd wonder why you need exclusive lock on a catalog.

If you can prove the contrary, let's see a test case.

regards, tom lane