pgsql: During online checkpoints, insert XLOG_CHECKPOINT_REDO at redo p

Поиск
Список
Период
Сортировка
От Robert Haas
Тема pgsql: During online checkpoints, insert XLOG_CHECKPOINT_REDO at redo p
Дата
Msg-id E1qtY46-001N8i-FR@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
During online checkpoints, insert XLOG_CHECKPOINT_REDO at redo point.

This allows tools that read the WAL sequentially to identify (possible)
redo points when they're reached, rather than only being able to
detect them in retrospect when XLOG_CHECKPOINT_ONLINE is found, possibly
much later in the WAL stream. There are other possible applications as
well; see the discussion links below.

Any redo location that precedes the checkpoint location should now point
to an XLOG_CHECKPOINT_REDO record, so add a cross-check to verify this.

While adjusting the code in CreateCheckPoint() for this patch, I made it
call WALInsertLockAcquireExclusive a bit later than before, since there
appears to be no need for it to be held while checking whether the system
is idle, whether this is an end-of-recovery checkpoint, or what the current
timeline is.

Bump XLOG_PAGE_MAGIC.

Patch by me, based in part on earlier work from Dilip Kumar. Review by
Dilip Kumar, Amit Kapila, Andres Freund, and Michael Paquier.

Discussion: http://postgr.es/m/CA+TgmoYy-Vc6G9QKcAKNksCa29cv__czr+N9X_QCxEfQVpp_8w@mail.gmail.com
Discussion: http://postgr.es/m/20230614194717.jyuw3okxup4cvtbt%40awork3.anarazel.de
Discussion: http://postgr.es/m/CA+hUKG+b2ego8=YNW2Ohe9QmSiReh1-ogrv8V_WZpJTqP3O+2w@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/afd12774ae8957159cf77ba4b3d092691f87af53

Modified Files
--------------
contrib/pg_walinspect/expected/pg_walinspect.out |  13 +-
contrib/pg_walinspect/sql/pg_walinspect.sql      |  10 +-
src/backend/access/rmgrdesc/xlogdesc.c           |   7 +
src/backend/access/transam/xlog.c                | 193 ++++++++++++++++-------
src/backend/access/transam/xlogrecovery.c        |  11 ++
src/backend/replication/logical/decode.c         |   1 +
src/include/access/xlog_internal.h               |   2 +-
src/include/catalog/pg_control.h                 |   1 +
src/tools/pgindent/typedefs.list                 |   1 +
9 files changed, 178 insertions(+), 61 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Doc: modernize comment for boolin().
Следующее
От: Michael Paquier
Дата:
Сообщение: pgsql: Remove unnecessary dependencies to wal_level=logical in TAP test