pg_autovacuum misinterpreting reltuples?

Started by Jeff Boesover 21 years ago2 messages
#1Jeff Boes
jboes@nexcerpt.com

We noticed that one of our high-volume insert tables was being vacuumed
every time pg_autovacuum woke up. (I"m running it with the default
threshold values, and a 900-second sleep cycle.) The table has a few
million rows in it. With "debug = 2" on, here's what the pg_autovacuum
log reports for this table:

[2004-04-30 09:32:11 AM] table name: nexcerpt."public"."links"
[2004-04-30 09:32:11 AM] relid: 1014188; relisshared: 0
[2004-04-30 09:32:11 AM] reltuples: 3; relpages: 118888

Note that "reltuples" is being reported as "3", which seems a bit low. Aha!

# select reltuples from pg_class where relname = 'links';
reltuples
-------------
3.32127e+06
(1 row)

Is it possible that pg_autovacuum sees this value as "3"? Or is it just
mis-formatting the value in the log?

--
Jeff Boes vox 269.226.9550 ext 24
Database Engineer fax 269.349.9076
Nexcerpt, Inc. http://www.nexcerpt.com
...Nexcerpt... Extend your Expertise

#2Matthew T. O'Connor
matthew@zeut.net
In reply to: Jeff Boes (#1)
Re: pg_autovacuum misinterpreting reltuples?

Jeff Boes wrote:

We noticed that one of our high-volume insert tables was being vacuumed
every time pg_autovacuum woke up. (I"m running it with the default
threshold values, and a 900-second sleep cycle.) The table has a few
million rows in it. With "debug = 2" on, here's what the pg_autovacuum
log reports for this table:

[2004-04-30 09:32:11 AM] table name: nexcerpt."public"."links"
[2004-04-30 09:32:11 AM] relid: 1014188; relisshared: 0
[2004-04-30 09:32:11 AM] reltuples: 3; relpages: 118888

Note that "reltuples" is being reported as "3", which seems a bit low. Aha!

# select reltuples from pg_class where relname = 'links';
reltuples
-------------
3.32127e+06
(1 row)

Is it possible that pg_autovacuum sees this value as "3"? Or is it just
mis-formatting the value in the log?

Yes. This is a known bug inside of pg_autovacuum, it is fixed inside of
CVS, and will be released with 7.4.3 (whenever that happens, hopefully
soon since I'm getting lots of reports for this bug). Please downlooad
pg_autovacuum from CVS and compile by hand for the time being.

Matthew O'Connor