Skip site navigation (1) Skip section navigation (2)

Allowing VACUUM to time out when waiting for locks?

From: Philip Warner <pjw(at)rhyme(dot)com(dot)au>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Allowing VACUUM to time out when waiting for locks?
Date: 2005-01-29 14:23:11
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-hackers
We have a frequently updated (peak > 5/sec) table with about 1000 rows.

We run VACCUM FULL on this table every 5 minutes.

The regular updates are not long in duration, and the vacuum is fast, so they
do not produce noticeable delays.

When we run a pg_dump on the database:

- the dump takes a long standing AccessShareLock lock on this table
(the database is large, and the table is locked for the duration).

- the regular updates run quite happily

- the VACUUM FULL comes along and asks for a AccessExclusiveLock
   (which is not granted due to PG_DUMP).

- the regular updates hang until the dump completes

Is it possible to set up a vacuum to fail if a lock is not granted in
a limited period of time (eg. 1 minute)?

We could use lock files to synchronize our dumps with our vacuums, but
were hoping for a way of managing this within the DB so that ad-hoc dumps
will not cause a problem.

Philip Warner                    |     __---_____
Albatross Consulting Pty. Ltd.   |----/       -  \
(A.B.N. 75 008 659 498)          |          /(@)   ______---_
Tel: (+61) 0500 83 82 81         |                 _________  \
Fax: (+61) 03 5330 3172          |                 ___________ |
Http://          |                /           \|
                                  |    --________--
PGP key available upon request,  |  /
and from       |/ 


pgsql-hackers by date

Next:From: Robert TreatDate: 2005-01-29 14:54:50
Subject: Re: [pgsql-hackers] Patent issues and 8.1
Previous:From: Stephen FrostDate: 2005-01-29 14:14:38
Subject: Re: [pgsql-hackers] Allow GRANT/REVOKE permissions to be applied to all schema

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group