autovacuum maintenance_work_mem - Mailing list pgsql-hackers

From Alvaro Herrera
Subject autovacuum maintenance_work_mem
Date
Msg-id 1289923546-sup-4272@alvh.no-ip.org
Whole thread Raw
Responses Re: autovacuum maintenance_work_mem
Re: autovacuum maintenance_work_mem
Re: autovacuum maintenance_work_mem
List pgsql-hackers
Magnus was just talking to me about having a better way of controlling
memory usage on autovacuum.  Instead of each worker using up to
maintenance_work_mem, which ends up as a disaster when DBA A sets to a
large value and DBA B raises autovacuum_max_workers, we could simply
have an "autovacuum_maintenance_memory" setting (name TBD), that defines
the maximum amount of memory that autovacuum is going to use regardless
of the number of workers.

So for the initial implementation, we could just have each worker set
its local maintenance_work_mem to autovacuum_maintenance_memory / max_workers.
That way there's never excessive memory usage.

This implementation is not ideal, because most of the time they wouldn't
use that much memory, and so vacuums could be slower.  But I think it's
better than what we currently have.

Thoughts?

(A future implementation could improve things by using something like
the balancing code we have for cost_delay.  But I don't want to go there
now.)

-- 
Álvaro Herrera <alvherre@alvh.no-ip.org>


pgsql-hackers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: B-tree parent pointer and checkpoints
Next
From: Peter Eisentraut
Date:
Subject: Re: GCC vs clang