Thread: smartvacuum() instead of autovacuum

smartvacuum() instead of autovacuum

From
"Hitoshi Harada"
Date:
Hi,

I am trying to implement smartvacuum(), which do vacuum only tables having
many dead rows, instead of autovacuum.
I read sources of autovacuum and pgstat, and found it could be if
smartvacuum() gets information from pgstat like autovacuum does.

concerns:
1. autovacuum makes vacuum nodes itself, while smartvacuum() will do it by
SPI for simplicity.
2. autovacuum allocate its own MemoryContext. Does smartvacuum() need it as
well?
3. autovacuum takes new transaction. Why?

questions:
1. Why isn't there some function like pg_stat_get_dead_rows(). if there is,
smartvacuum() can be implemented by even pl/pgsql
2. autovacuum can actually conflict with VACUUM ANALYZE on another session?

Any answers and opinions are appreciated.
Regards,


Hitoshi Harada