On Wed, 12 Nov 2025 at 09:13, Nathan Bossart <[email protected]> wrote: > > On Wed, Nov 12, 2025 at 09:03:54AM +1300, David Rowley wrote: > > /* when enough time has passed, refresh the list to ensure the > > scores aren't too out-of-date */ > > if (time is > lastcheck + autovacuum_naptime * <something>) > > { > > list_free_deep(tables_to_process); > > goto the_top; > > } > > } // end of foreach(cell, tables_to_process) > > My concern is that this might add already-processed tables back to the > list, so a worker might never be able to clear it. Maybe that's not a real > problem in practice for some reason, but it does feel like a step too far > for stage 1, as you said above.
Oh, that's a good point. That's a very valid concern. I guess that could be fixed with a hashtable of vacuumed tables and skipping tables that exist in there, but the problem with that is that the table might genuinely need to be vacuumed again. It's a bit tricky to know when a 2nd vacuum is a legit requirement and when it's not. Figuring that out might me more logic that this code wants to know about. David
