Alvaro Herrera <alvhe...@alvh.no-ip.org> writes: > On 2020-Oct-29, Stephen Frost wrote: >> I do think it'd be good to find a way to check every once in a while >> even when we aren't going to delay though. Not sure what the best >> answer there is.
> Maybe instead of thinking specifically in terms of vacuum, we could > count buffer accesses (read from kernel) and check the latch once every > 1000th such, or something like that. Then a very long query doesn't > have to wait until it's run to completion. The cost is one integer > addition per syscall, which should be bearable. I'm kind of unwilling to add any syscalls at all to normal execution code paths for this purpose. People shouldn't be sig-kill'ing the postmaster, or if they do, cleaning up the mess is their responsibility. I'd also suggest that adding nearly-untestable code paths for this purpose is a fine way to add bugs we'll never catch. The if-we're-going-to-delay-anyway path in vacuum_delay_point seems OK to add a touch more overhead to, though. regards, tom lane