Re: Why is XLOG_FPI_FOR_HINT always need backups?

Japin Li <japinli@hotmail.com>

From: Japin Li <japinli@hotmail.com>
To: zwj <757634191@qq.com>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2021-07-06T11:04:25Z
Lists: pgsql-hackers
On Tue, 06 Jul 2021 at 17:58, zwj <757634191@qq.com> wrote:
> Hi all,
>
> When I read the source code file src/backend/access/transam/xloginsert.c, I get something confused me.
> In the function XLogSaveBufferForHint, the flags are always REGBUF_FORCE_IMAGE which means it is always need backups.
> Is it right? Why do not check the full_page_writes?

The documentation [1] says:

------------------------------------------------------------------------------
wal_log_hints (boolean)
When this parameter is on, the PostgreSQL server writes the entire content of
each disk page to WAL during the first modification of that page after a
checkpoint, even for non-critical modifications of so-called hint bits.
------------------------------------------------------------------------------

Does that mean whether the full_page_writes enable or not, if the wal_log_hints
enabled, we always write the entire content of each disk page to WAL? If I'm
right, should we mention this in wal_log_hints?

[1] https://www.postgresql.org/docs/current/runtime-config-wal.html

-- 
Regrads,
Japin Li.
ChengDu WenWu Information Technology Co.,Ltd.



Commits

  1. Make XLOG_FPI_FOR_HINT records honor full_page_writes setting.