Hello
I haven't read your respective patches yet, but both these threads
brought to memory a patch I proposed a few years ago that I never
completed:
https://www.postgresql.org/message-id/flat/20130124215715.GE4528%40alvh.no-ip.org
In that thread I posted a patch to implement a prioritisation scheme for
autovacuum, based on an equation which was still under discussion when
I abandoned it. Chris Browne proposed a crazy equation to mix in both
XID age and fraction of dead tuples; probably that idea is worth
studying further. I tried to implement that in my patch but I probably
didn't do it correctly (because, as I recall, it failed to work as
expected). Nowadays I think we would also consider the multixact freeze
age, too.
Maybe that's worth giving a quick look in case some of the ideas there
are useful for the patches now being proposed.
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services