Re: Hung Vacuum in 8.3 - Mailing list pgsql-bugs

From Mark Kirkwood
Subject Re: Hung Vacuum in 8.3
Date
Msg-id 4D64288D.4080402@catalyst.net.nz
Whole thread Raw
In response to Re: Hung Vacuum in 8.3  (Robert Haas <robertmhaas@gmail.com>)
List pgsql-bugs
On 23/02/11 03:27, Robert Haas wrote:
> On Tue, Feb 22, 2011 at 6:26 AM, Greg Stark<gsstark@mit.edu>  wrote:
>> Actually it's not waiting for the LockBuffer LWLock. it's waiting
>> until your query unpins the buffer it wants. Vacuum tries to get an
>> exclusive lock on the buffer, if it gets it then it checks if anyone
>> is using that buffer. If someone is then it unlocks the buffer and
>> waits until nobody has it pinned.
> How bad it would be if we made LockBufferForCleanup() not wait?  If we
> can't obtain the buffer cleanup lock immediately, we just skip that
> page and continue on.  That would prevent us from updating
> relfrozenxid, I guess, but we already can't do that if there are any
> bits set in the visibility map.   It could also leave some bloat in
> the table, but probably not much (he says hopefully).
>

Seems like a good suggestion, and may leave less bloat than having the
vacuum hung for potentially quite some time.

Mark

pgsql-bugs by date:

Previous
From: Mark Kirkwood
Date:
Subject: Re: Hung Vacuum in 8.3
Next
From: Eric Schwarzenbach
Date:
Subject: Re: BUG #5898: Nested "in" clauses hide bad column names