Re: Why do we let autovacuum give up? - Mailing list pgsql-hackers

From Jeff Janes
Subject Re: Why do we let autovacuum give up?
Date
Msg-id CAMkU=1xCO_FU=qPWZXQPpWtuN+XH3E912zcoGNwTxZpB9+Xkiw@mail.gmail.com
Whole thread Raw
In response to Re: Why do we let autovacuum give up?  (Mark Kirkwood <mark.kirkwood@catalyst.net.nz>)
Responses Re: Why do we let autovacuum give up?
List pgsql-hackers
On Thu, Jan 23, 2014 at 1:41 PM, Mark Kirkwood <mark.kirkwood@catalyst.net.nz> wrote:
On 24/01/14 10:16, Mark Kirkwood wrote:
On 24/01/14 10:09, Robert Haas wrote:
On Thu, Jan 23, 2014 at 4:03 PM, Mark Kirkwood
<mark.kirkwood@catalyst.net.nz> wrote:
On 24/01/14 09:49, Tom Lane wrote:
2. What have you got that is requesting exclusive lock on pg_attribute?
That seems like a pretty unfriendly behavior in itself. regards, tom lane
I've seen this sort of problem where every db session was busily creating
temporary tables. I never got to the find *why* they needed to make so many,
but it seemed like a bad idea.
But... how does that result on a vacuum-incompatible lock request
against pg_attribute?

I see that it'll insert lots of rows into pg_attribute, and maybe
later delete them, but none of that blocks vacuum.


That was my thought too - if I see it happening again here (was a year or so ago that I saw some serious pg_attribute bloat) I'll dig deeper.



Actually not much digging required. Running the attached script via pgbench (8 sessions) against a default configured postgres 8.4 sees pg_attribute get to 1G after about 15 minutes.

At that rate, with default throttling, it will be a close race whether autovac can vacuum pages as fast as they are being added.  Even if it never gets cancelled, it might not ever finish.

Cheers,

Jeff 

pgsql-hackers by date:

Previous
From: Josh Berkus
Date:
Subject: Re: Why do we let autovacuum give up?
Next
From: Mark Kirkwood
Date:
Subject: Re: Why do we let autovacuum give up?