Re: Perform streaming logical transactions by background workers and parallel apply

From: Peter Smith <smithpb2250(at)gmail(dot)com>
To: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
Cc: "houzj(dot)fnst(at)fujitsu(dot)com" <houzj(dot)fnst(at)fujitsu(dot)com>, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, shveta malik <shveta(dot)malik(at)gmail(dot)com>, "wangw(dot)fnst(at)fujitsu(dot)com" <wangw(dot)fnst(at)fujitsu(dot)com>, "shiy(dot)fnst(at)fujitsu(dot)com" <shiy(dot)fnst(at)fujitsu(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Dilip Kumar <dilipbalaut(at)gmail(dot)com>
Subject: Re: Perform streaming logical transactions by background workers and parallel apply
Date: 2023-02-01 23:22:06
Message-ID: CAHut+PtM-uG6q3XtJxXdV7_PiYGcMs0FiR3mfSbn1BQ-3BGfuA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Some minor review comments for v91-0001

======
doc/src/sgml/config.sgml

1.
<para>
- Allows streaming or serializing changes immediately in
logical decoding.
- The allowed values of <varname>logical_replication_mode</varname> are
- <literal>buffered</literal> and <literal>immediate</literal>. When set
- to <literal>immediate</literal>, stream each change if
+ The allowed values are <literal>buffered</literal> and
+ <literal>immediate</literal>. The default is
<literal>buffered</literal>.
+ This parameter is intended to be used to test logical decoding and
+ replication of large transactions for which otherwise we need
to generate
+ the changes till <varname>logical_decoding_work_mem</varname> is
+ reached. The effect of <varname>logical_replication_mode</varname> is
+ different for the publisher and subscriber:
+ </para>

The "for which otherwise..." part is only relevant for the
publisher-side. So it seemed slightly strange to give the reason why
to use the GUC for one side but not the other side.

Maybe we can just to remove that "for which otherwise..." part, since
the logical_decoding_work_mem gets mentioned later in the "On the
publisher side,..." paragraph anyway.

~~~

2.
<para>
- This parameter is intended to be used to test logical decoding and
- replication of large transactions for which otherwise we need to
- generate the changes till <varname>logical_decoding_work_mem</varname>
- is reached.
+ On the subscriber side, if the <literal>streaming</literal>
option is set to
+ <literal>parallel</literal>,
<varname>logical_replication_mode</varname>
+ can be used to direct the leader apply worker to send changes to the
+ shared memory queue or to serialize changes to the file. When set to
+ <literal>buffered</literal>, the leader sends changes to parallel apply
+ workers via a shared memory queue. When set to
+ <literal>immediate</literal>, the leader serializes all
changes to files
+ and notifies the parallel apply workers to read and apply them at the
+ end of the transaction.
</para>

"or serialize changes to the file." --> "or serialize all changes to
files." (just to use same wording as later in this same paragraph, and
also same wording as the GUC hint text).

------
Kind Regards,
Peter Smith.
Fujitsu Australia

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message David Rowley 2023-02-02 00:15:28 Re: pg_dump versus hash partitioning
Previous Message Peter Geoghegan 2023-02-01 23:15:43 Re: pg_dump versus hash partitioning