Re: Autovacuum worker doesn't immediately exit on postmaster death
Alvaro Herrera <alvherre@alvh.no-ip.org>
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Stephen Frost <sfrost@snowman.net>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Victor Yegorov <vyegorov@gmail.com>, Alexander Kukushkin <cyberdemn@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2020-10-29T16:32:27Z
Lists: pgsql-hackers
On 2020-Oct-29, Stephen Frost wrote: > > It's hard to do better than that, because on most platforms there's > > no way to get a signal on parent-process death, so the only way to > > notice would be to poll the postmaster-death pipe constantly; which > > would be hugely expensive in comparison to the value. > > I agree that 'constantly' wouldn't be great, but with some periodicity > that's more frequent than 'not until a few hours later when we finally > finish vacuuming this relation' would be nice. At least with autovauum > we may be periodically sleeping anyway so it doesn't seem like polling > at that point would really be terrible, though it'd be nice to check > every once in a while even if we aren't sleeping. vacuum_delay_point seems an obvious candidate, as soon as we've determined that the sleep interval is > 0; since we're going to sleep, the cost of a syscall seems negligible. I'm not sure what to suggest for vacuums that don't have vacuum costing active, though.
Commits
-
Use a WaitLatch for vacuum/autovacuum sleeping
- 4753ef37e0ed 14.0 landed