Thread

  1. Re: another autovacuum scheduling thread

    David Rowley <dgrowleyml@gmail.com> — 2025-11-11T20:26:48Z

    On Wed, 12 Nov 2025 at 09:13, Nathan Bossart <nathandbossart@gmail.com> 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