RE: Perform streaming logical transactions by background workers and parallel apply
Wei Wang (Fujitsu) <wangw.fnst@fujitsu.com>
On Tues, Sep 13, 2022 at 17:49 PM Amit Kapila <amit.kapila16@gmail.com> wrote: > Thanks for your comments. > On Fri, Sep 9, 2022 at 2:31 PM houzj.fnst@fujitsu.com > <houzj.fnst@fujitsu.com> wrote: > > > > On Friday, September 9, 2022 3:02 PM Peter Smith <smithpb2250@gmail.com> > wrote: > > > > > > > > 3. > > > > > > max_logical_replication_workers (integer) > > > Specifies maximum number of logical replication workers. This > > > includes apply leader workers, parallel apply workers, and table > > > synchronization workers. > > > Logical replication workers are taken from the pool defined by > > > max_worker_processes. > > > The default value is 4. This parameter can only be set at server start. > > > > > > ~ > > > > > > I did not really understand why the default is 4. Because the default > > > tablesync workers is 2, and the default parallel workers is 2, but > > > what about accounting for the apply worker? Therefore, shouldn't > > > max_logical_replication_workers default be 5 instead of 4? > > > > The parallel apply is disabled by default, so it's not a must to increase this > > global default value as discussed[1] > > > > [1] https://www.postgresql.org/message- > id/CAD21AoCwaU8SqjmC7UkKWNjDg3Uz4FDGurMpis3zw5SEC%2B27jQ%40mail > .gmail.com > > > > Okay, but can we document to increase this value when the parallel > apply is enabled? Add the following sentence in the chapter [31.10. Configuration Settings]: ``` In addition, if the subscription parameter <literal>streaming</literal> is set to <literal>parallel</literal>, please increase <literal>max_logical_replication_workers</literal> according to the desired number of parallel apply workers. ``` The new patches were attached in [1]. [1] - https://www.postgresql.org/message-id/OS3PR01MB6275F145878B4A44586C46CE9E499%40OS3PR01MB6275.jpnprd01.prod.outlook.com Regards, Wang wei
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix invalid memory access during the shutdown of the parallel apply worker.
- 3d144c6c8602 16.0 landed
-
Fix assertion failure in apply worker.
- de63f8dadee4 16.0 landed
-
Use elog to report unexpected action in handle_streamed_transaction().
- 781ac42d43ab 16.0 landed
-
Use appropriate wait event when sending data in the apply worker.
- d9d7fe68d35e 16.0 landed
-
Allow the logical_replication_mode to be used on the subscriber.
- 9f2213a7c575 16.0 landed
-
Rename GUC logical_decoding_mode to logical_replication_mode.
- 1e8b61735cfb 16.0 landed
-
Display the leader apply worker's PID for parallel apply workers.
- d540a02a724b 16.0 landed
-
Improve the code to decide and process the apply action.
- c981d9145dea 16.0 landed
-
Document the newly added wait events added by commit 216a784829.
- cd06ccd78fcf 16.0 landed
-
Perform apply of large transactions by parallel workers.
- 216a784829c2 16.0 landed
-
Wake up a subscription's replication worker processes after DDL.
- c6e1f62e2cee 16.0 cited
-
Add copyright notices to meson files
- 8284cf5f746f 16.0 cited
-
Better document logical replication parameters
- a8500750ca0a 16.0 cited
-
Add a common function to generate the origin name.
- 776e1c8a5d14 16.0 cited
-
Harmonize parameter names in storage and AM code.
- bfcf1b34805f 16.0 cited
-
Avoid using list_length() to test for empty list.
- efd0c16becbf 16.0 cited
-
Improve two comments related to a boolean DefElem's value
- 8445f5a21d40 16.0 cited
-
Fix partition table's REPLICA IDENTITY checking on the subscriber.
- 26b3455afaa9 15.0 cited
-
Fix data inconsistency between publisher and subscriber.
- b7658c24c7c1 15.0 cited
-
Fix cache look-up failures while applying changes in logical replication.
- 5a97b1325453 15.0 cited