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