Re: [PATCH] Unremovable tuple monitoring
Royce Ausburn <royce.ml@inomial.com>
From: Royce Ausburn <royce.ml@inomial.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Robert Haas <robertmhaas@gmail.com>, Alvaro Herrera <alvherre@commandprompt.com>, Yeb Havinga <yebhavinga@gmail.com>, Pg Hackers <pgsql-hackers@postgresql.org>, Kevin Grittner <kevin.grittner@wicourts.gov>
Date: 2011-11-16T00:59:20Z
Lists: pgsql-hackers
> > > Personally I think some log output, done better, would have been more useful for me at the time. At the time I was trying to diagnose an ineffective vacuum and postgres' logs weren't giving me any hints about what was wrong. I turned to the mailing list and got immediate help, but I felt that ideally postgres would be logging something to tell me that some 1 day old transactions were preventing auto vacuum from doing its job. Something, anything that I could google. Other novices in my situation probably wouldn't know to look in the pg_stats* tables, so in retrospect my patch isn't really achieving my original goal. > > Should we consider taking a logging approach instead? Dopey suggestion: Instead of logging around vacuum and auto_vacuum, perhaps log transactions that are open for longer than some (perhaps configurable) time? The default might be pretty large, say 6 hours. Are there common use cases for txs that run for longer than 6 hours? Seeing a message such as: WARNING: Transaction <X> has been open more than Y. This tx may be holding locks preventing other txs from operating and may prevent vacuum from cleaning up deleted rows. Would give a pretty clear indication of a problem :)