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.
Sent via pgsql-hackers mailing list (firstname.lastname@example.org)
To make changes to your subscription: