On Mon, Dec 13, 2021 at 08:53:37AM -0500, Robert Haas wrote: > On Fri, Dec 10, 2021 at 2:03 PM Bossart, Nathan <bossa...@amazon.com> wrote: > > Well, I haven't had a chance to look at your patch, and my patch set > > still only has handling for CheckPointSnapBuild() and > > RemovePgTempFiles(), but I thought I'd share what I have anyway. I > > split it into 5 patches: > > > > 0001 - Adds a new "custodian" auxiliary process that does nothing. ... > > I don't know whether this kind of idea is good or not. ... > > Another issue is that we don't want to increase the number of > processes without bound. Processes use memory and CPU resources and if > we run too many of them it becomes a burden on the system. Low-end > systems may not have too many resources in total, and high-end systems > can struggle to fit demanding workloads within the resources that they > have. Maybe it would be cheaper to do more things at once if we were > using threads rather than processes, but that day still seems fairly > far off.
Maybe that's an argument that this should be a dynamic background worker instead of an auxilliary process. Then maybe it would be controlled by max_parallel_maintenance_workers (or something similar). The checkpointer would need to do these tasks itself if parallel workers were disabled or couldn't be launched. -- Justin