The checkpoint time limit has just been raised to one day after a discussion started by Andres Freund:


I would have gone further up, say one week or even one month, but I think that this new limit is an improvement over the previous 1 hour maximum.

Now ISTM that there is a possible use case which arises with this new setting and is not well addressed by postgresql:

Let us say that an application has periods of high and low usage, say over a day, so that I want to avoid a checkpoint from 8 to 20, but I'm okay after that. I could raise the size and time limits so that they do not occur during these hours and plan to do a manual CHECKPOINT once a day when I see fit.

Now the problem I see is that CHECKPOINT means "do a CHECKPOINT right now as fast as possible", i.e. there is no throttling whatsoever, which leads to heavy IO and may result in a very unresponsive database.

I would suggest that a good complementary feature would be to allow a manual checkpoint to run over a period of time, say something like:

  CHECKPOINT OVER '10 hours';

That would target to complete after this period (whether it succeeds or not is another issue) instead of going as fast as possible, thus avoiding
some performance degradation.

Any thoughts?


Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:

Reply via email to