changed_comments_amit_v29.patch
application/octet-stream
Filename: changed_comments_amit_v29.patch
Type: application/octet-stream
Part: 0
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: unified
Series: patch v29
| File | + | − |
|---|---|---|
| src/backend/replication/logical/launcher.c | 3 | 5 |
| src/backend/replication/logical/worker.c | 7 | 9 |
diff --git a/src/backend/replication/logical/launcher.c b/src/backend/replication/logical/launcher.c
index 8344e4509b..c154eed34c 100644
--- a/src/backend/replication/logical/launcher.c
+++ b/src/backend/replication/logical/launcher.c
@@ -664,15 +664,13 @@ logicalrep_worker_attach(int slot)
}
/*
- * Detach the worker (cleans up the worker info).
+ * Stop the parallel apply workers if any, and detach the leader apply
+ * worker (cleans up the worker info).
*/
static void
logicalrep_worker_detach(void)
{
- /*
- * If this is the leader apply worker then stop all the parallel apply
- * workers previously started from here.
- */
+ /* Stop the parallel apply workers. */
if (!am_parallel_apply_worker() && !am_tablesync_worker())
{
List *workers;
diff --git a/src/backend/replication/logical/worker.c b/src/backend/replication/logical/worker.c
index 2bff1dbc74..e8aa661971 100644
--- a/src/backend/replication/logical/worker.c
+++ b/src/backend/replication/logical/worker.c
@@ -58,20 +58,18 @@
* parallel apply workers (max_parallel_apply_workers_per_subscription), but this
* may waste some memory if no process is actually started.
*
- * The dynamic shared memory segment will contain (1) a shm_mq that can be
+ * The dynamic shared memory segment will contain (a) a shm_mq that can be
* used to send changes in the transaction from leader apply worker to parallel
- * apply worker (2) another shm_mq that can be used to send errors (and other
+ * apply worker (b) another shm_mq that can be used to send errors (and other
* messages reported via elog/ereport) from the parallel apply worker to leader
- * apply worker (3) necessary information to be shared among parallel apply
- * workers and leader apply worker(i.e. in_parallel_apply_xact flag and the
+ * apply worker (c) necessary information to be shared among parallel apply
+ * workers and leader apply worker (i.e. in_parallel_apply_xact flag and the
* corresponding LogicalRepWorker slot information).
*
- * 2) Write to temporary files and apply when the final commit arrives
+ * In case, no worker is available to handle the streamed transaction, we
+ * follow approach 2.
*
- * If streaming = true, or if streaming = parallel but there are not parallel
- * apply workers available to handle the streamed transaction, the data is
- * written to temporary files and then applied at once when the final commit
- * arrives.
+ * 2) Write to temporary files and apply when the final commit arrives
*
* Unlike the regular (non-streamed) case, handling streamed transactions has
* to handle aborts of both the toplevel transaction and subtransactions. This