Re: May be BUG. Periodic burst growth of the checkpoint_req counter on replica.

Fujii Masao <masao.fujii@oss.nttdata.com>

From: Fujii Masao <masao.fujii@oss.nttdata.com>
To: "Anton A. Melnikov" <a.melnikov@postgrespro.ru>, Alexander Korotkov <aekorotkov@gmail.com>
Cc: Magnus Hagander <magnus@hagander.net>, "Anton A. Melnikov" <aamelnikov@inbox.ru>, Andres Freund <andres@anarazel.de>, Kyotaro Horiguchi <horikyota.ntt@gmail.com>, pgsql-hackers@lists.postgresql.org
Date: 2024-09-20T16:19:32Z
Lists: pgsql-hackers

Attachments


On 2024/09/19 19:16, Anton A. Melnikov wrote:
> 
> On 18.09.2024 21:04, Fujii Masao wrote:
>>
>> -                CreateCheckPoint(flags);
>> -                ckpt_performed = true;
>> +                ckpt_performed = CreateCheckPoint(flags);
>>
>> This change could result in the next scheduled checkpoint being
>> triggered in 15 seconds if a checkpoint is skipped, which isn’t
>> the intended behavior.
> 
> Thanks for pointing this out! This is really bug.
> Rearranged the logic a bit to save the previous behavior
> in the v3 attached.

Thanks for updating the patch!

I've attached the updated version (0001.patch). I made some cosmetic changes,
including reverting the switch in the entries for pg_stat_get_checkpointer_write_time
and pg_stat_get_checkpointer_sync_time in pg_proc.dat, as I didn’t think
that change was necessary. Could you please review the latest version?

After we commit 0001.patch, how about applying 0002.patch, which updates
the documentation for the pg_stat_checkpointer view to clarify what types
of checkpoints and restartpoints each counter tracks?

In 0002.patch, I also modified the description of num_requested from
"Number of backend requested checkpoints" to remove "backend," as it can
be confusing since num_requested includes requests from sources other than
the backend. Thought?

Regards,

-- 
Fujii Masao
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION

Commits

  1. Improve descriptions of some pg_stat_checkpoints functions in pg_proc.dat.

  2. docs: Enhance the pg_stat_checkpointer view documentation.

  3. Add num_done counter to the pg_stat_checkpointer view.

  4. docs: Improve the description of num_timed column in pg_stat_checkpointer.

  5. Improve documentation for pg_stat_checkpointer fields

  6. Enhance checkpointer restartpoint statistics

  7. Introduce pg_stat_checkpointer