Re: First steps with 8.3 and autovacuum launcher

Heikki Linnakangas <heikki@enterprisedb.com>

From: Heikki Linnakangas <heikki@enterprisedb.com>
To: Gregory Stark <stark@enterprisedb.com>
Cc: Alvaro Herrera <alvherre@commandprompt.com>, Guillaume Smet <guillaume.smet@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, "Matthew T. O'Connor" <matthew@zeut.net>, Simon Riggs <simon@2ndquadrant.com>, Stefan Kaltenbrunner <stefan@kaltenbrunner.cc>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2007-10-04T15:45:46Z
Lists: pgsql-hackers
Gregory Stark wrote:
> "Alvaro Herrera" <alvherre@commandprompt.com> writes:
> 
>> Hmm, it looks like the race condition Heikki mentioned is the culprit.
>> We need a way to stop future analyzes from starting.  Back to the
>> drawing board ...
> 
> A crazy idea I just had -- what if you roll this into the deadlock check? So
> after waiting on the lock for 1s it wakes up, finds that the holder it's
> waiting on is an autovacuum process and cancels it instead of finding no
> deadlock.

Another idea would be to make no changes to the relation_openrv call,
but have autovacuum periodically check if anyone's blocked waiting on
its locks, and commit suicide (or set cost delay to zero) if so.

-- 
  Heikki Linnakangas
  EnterpriseDB   http://www.enterprisedb.com