On Thu, Jun 23, 2022 at 09:46:28AM -0400, Robert Haas wrote: > I do agree that a general mechanism for getting cleanup tasks done in > the background could be a useful thing to have, but I feel like it's > hard to see exactly how to make it work well. We can't just allow it > to spin up a million new processes, but at the same time, if it can't > guarantee that time-critical tasks get performed relatively quickly, > it's pretty worthless.
My intent with this new auxiliary process is to offload tasks that aren't particularly time-critical. They are only time-critical in the sense that 1) you might eventually run out of space and 2) you might encounter wraparound with the logical replication files. But AFAICT these same risks exist today in the checkpointer approach, although maybe not to the same extent. In any case, 2 seems solvable to me outside of this patch set. I'm grateful for the discussion in this thread so far, but I'm not seeing a clear path forward. I'm glad to see threads like the one to stop doing end-of-recovery checkpoints [0], but I don't know if it will be possible to solve all of these availability concerns in a piecemeal fashion. I remain open to exploring other suggested approaches beyond creating a new auxiliary process. [0] https://postgr.es/m/CA%2BTgmobrM2jvkiccCS9NgFcdjNSgAvk1qcAPx5S6F%2BoJT3D2mQ%40mail.gmail.com -- Nathan Bossart Amazon Web Services: https://aws.amazon.com