I understand checkpoint code doing something like this:
Get RedoRecPtr;
Flush all dirty buffers no matter what's its LSN;
Write down checkpoint xlog record;
So I wonder is it possible flush only dirty buffers with LSN < RedoRecPtr
to improve checkpoint caused delay? Because even we flush every dirty
buffers, we still have to replay from the RedoRecPtr. Of course, this only
applies to non-critical checkpoints (critical ones like startup and
shutdown).
Regards,
Qingqing