On Sat, May 20, 2023 at 10:37:58AM +0200, Drouvot, Bertrand wrote:
> It's the snapshot of running transactions (aka the xl_running_xacts WAL record) that is used during the
> logical slot creation to determine if the logical decoding find a consistent state to start with.
>
> On a primary this WAL record is being emitted during the logical slot creation, but on a standby
> we can't write WAL records (so we are waiting for the primary to emit it).
>
> Outside of logical slot creation, this WAL record is also emitted during checkpoint or periodically
> by the bgwriter.
>
> What about?
>
> This adds the function pg_log_standby_snapshot() to emit the WAL record that contains the list
> of running transactions.
>
> If the primary is idle, the logical slot creation on a standby can take a while (waiting for this WAL record
> to be replayed to determine if the logical decoding find a consistent state to start with).
>
> In that case, this new function can be used on the primary to speed up the logical slot
> creation on the standby.
Okay, this helps. I split the entry into two with this text:
<!--
Author: Andres Freund <andres@anarazel.de>
2023-04-08 [0fdab27ad] Allow logical decoding on standbys
-->
<listitem>
<para>
Allow logical decoding on standbys (Bertrand Drouvot, Andres Freund, Amit Khandekar)
</para>
</listitem>
<!--
Author: Andres Freund <andres@anarazel.de>
2023-04-08 [0fdab27ad] Allow logical decoding on standbys
-->
<listitem>
<para>
Add function pg_log_standby_snapshot() to force creation of a WAL snapshot (Bertrand Drouvot)
</para>
<para>
WAL snapshots are required for logical slot creation so this function speeds their creation on standbys.
</para>
</listitem>
--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com
Only you can decide what is important to you.