On 9/18/25 01:22, Andres Freund wrote:
> Hi,
> 
> On 2025-09-17 13:25:11 +0200, Tomas Vondra wrote:
>> I believe the reason why parallelism is disabled in autovacuum is that
>> we want autovacuum to be a background process, with minimal disruption
>> to user workload. It probably wouldn't be that hard to allow autovacuum
>> to do parallel stuff, but it feels similar to adding autovacuum workers.
>> That's rarely the solution, without increasing the cost limit.
> 
> I continue to find this argument extremely unconvincing. It's very common for
> autovacuum to be continuously be busy with the one large table that has a
> bunch of indexes. Vacuuming that one table is what prevents the freeze horizon
> to move forward / prevents getting out of anti-wraparound territory in time.
> 

OK. I'm not claiming the argument is correct, I mostly asking if this
was the argument for not allowing parallelism in autovacuum.

I don't doubt an autovacuum worker can get "stuck" on a huge table,
holding back the freeze horizon. But does it happen even with an
increased cost limit? And is the bottleneck I/O or CPU?

If it's vacuum_cost_limit, then the right "fix" is increasing the limit.
Just adding workers improves nothing. If it's waiting on I/O, then
adding workers is not going to help much. With CPU bottleneck it might,
though. Does that match the cases you saw?


regards

-- 
Tomas Vondra



Reply via email to