Re: Add CHECKPOINT_REQUESTED flag to the log message in LogCheckpointStart() - Mailing list pgsql-hackers

From Bharath Rupireddy
Subject Re: Add CHECKPOINT_REQUESTED flag to the log message in LogCheckpointStart()
Date
Msg-id CALj2ACV+zr=8-HJFBXazFGO+_0VXsTHXzB2EZEEiuDHs-hmDkQ@mail.gmail.com
Whole thread Raw
In response to Add CHECKPOINT_REQUESTED flag to the log message in LogCheckpointStart()  (Nitin Jadhav <nitinjadhavpostgres@gmail.com>)
Responses Re: Add CHECKPOINT_REQUESTED flag to the log message in LogCheckpointStart()  (Kyotaro Horiguchi <horikyota.ntt@gmail.com>)
List pgsql-hackers
On Wed, Mar 2, 2022 at 5:41 PM Nitin Jadhav
<nitinjadhavpostgres@gmail.com> wrote:
>
> Hi,
>
> I have noticed that the CHECKPOINT_REQUESTED flag information is not
> present in the log message of LogCheckpointStart() function. I would
> like to understand if it was missed or left intentionally. The log
> message describes all the possible checkpoint flags except
> CHECKPOINT_REQUESTED flag. I feel we should support this. Thoughts?

I don't think that's useful. Being in LogCheckpointStart
(CreateCheckPoint or CreateRestartPoint) itself means that somebody
has requested a checkpoint. Having CHECKPOINT_REQUESTED doesn't add
any value.

I would suggest removing the CHECKPOINT_REQUESTED flag as it's not
being used anywhere instead CheckpointerShmem->ckpt_flags is used as
an indication of the checkpoint requested in CheckpointerMain [1]. If
others don't agree to remove as it doesn't cause any harm, then, I
would  add something like this for more readability:

         if ((((volatile CheckpointerShmemStruct *)
CheckpointerShmem)->ckpt_flags) & CHECKPOINT_REQUESTED))
        {
            do_checkpoint = true;
            PendingCheckpointerStats.m_requested_checkpoints++;
        }

[1]
        /*
         * Detect a pending checkpoint request by checking whether the flags
         * word in shared memory is nonzero.  We shouldn't need to acquire the
         * ckpt_lck for this.
         */
        if (((volatile CheckpointerShmemStruct *)
CheckpointerShmem)->ckpt_flags)
        {
            do_checkpoint = true;
            PendingCheckpointerStats.m_requested_checkpoints++;
        }

Regards,
Bharath Rupireddy.



pgsql-hackers by date:

Previous
From: Tomas Vondra
Date:
Subject: Re: Column Filtering in Logical Replication
Next
From: Aleksander Alekseev
Date:
Subject: Re: Add 64-bit XIDs into PostgreSQL 15