Run end-of-recovery checkpoint in non-wait mode or skip it entirely for faster server availability? - Mailing list pgsql-hackers

From Bharath Rupireddy
Subject Run end-of-recovery checkpoint in non-wait mode or skip it entirely for faster server availability?
Date
Msg-id CALj2ACUbSQJ2T6KiuWyChSiYiwQy17mn-kOqNT5oSYito3HiaQ@mail.gmail.com
Whole thread Raw
Responses Re: Run end-of-recovery checkpoint in non-wait mode or skip it entirely for faster server availability?
List pgsql-hackers
Hi,

Currently postgres runs end-of-recovery(EOR) checkpoint in wait mode
meaning the server can take longer before it opens up for connections.
The EOR checkpoint, at times, can take a while if there was a lot of
work the server has done during crash recovery, say it replayed many
WAL records or created many snapshot or mapping files or dirtied so
many buffers and so on.

Since the server spins up checkpointer process [1] while the startup
process performs recovery, isn't it a good idea to make
end-of-recovery completely optional for the users or at least run it
in non-wait mode so that the server will be available faster. The next
checkpointer cycle will take care of performing the EOR checkpoint
work, if user chooses to skip the EOR or the checkpointer will run EOR
checkpoint  in background, if user chooses to run it in the non-wait
mode (without CHECKPOINT_WAIT flag). Of course by choosing this
option, users must be aware of the fact that the extra amount of
recovery work that needs to be done if a crash happens from the point
EOR gets skipped or runs in non-wait mode until the next checkpoint.
But the advantage that users get is the faster server availability.

Thanks a lot Thomas for the internal discussion.

Thoughts?

[1]
commit 7ff23c6d277d1d90478a51f0dd81414d343f3850
Author: Thomas Munro <tmunro@postgresql.org>
Date:   Mon Aug 2 17:32:20 2021 +1200

    Run checkpointer and bgwriter in crash recovery.

Regards,
Bharath Rupireddy.



pgsql-hackers by date:

Previous
From: "houzj.fnst@fujitsu.com"
Date:
Subject: RE: logical replication empty transactions
Next
From: Kyotaro Horiguchi
Date:
Subject: Re: shared-memory based stats collector - v66