V3_0002-Implements-logging-for-parallel-worker-usage-in-inde.patch

text/x-patch

Filename: V3_0002-Implements-logging-for-parallel-worker-usage-in-inde.patch
Type: text/x-patch
Part: 3
Message: Re: Logging parallel worker draught

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: format-patch
Series: patch 0002
Subject: Implements logging for parallel worker usage in index builds
File+
src/backend/access/brin/brin.c 8 0
src/backend/access/nbtree/nbtsort.c 8 0
From 367b163e135011290125fc4db7586f6603e09270 Mon Sep 17 00:00:00 2001
From: benoit <benoit.lobreau@dalibo.com>
Date: Tue, 8 Oct 2024 12:45:03 +0200
Subject: [PATCH 2/5] Implements logging for parallel worker usage in index
 builds

Two types of index are concerned: brin and btree.
---
 src/backend/access/brin/brin.c      | 8 ++++++++
 src/backend/access/nbtree/nbtsort.c | 8 ++++++++
 2 files changed, 16 insertions(+)

diff --git a/src/backend/access/brin/brin.c b/src/backend/access/brin/brin.c
index c0b978119a..fdfbbc7dc4 100644
--- a/src/backend/access/brin/brin.c
+++ b/src/backend/access/brin/brin.c
@@ -2544,6 +2544,14 @@ _brin_end_parallel(BrinLeader *brinleader, BrinBuildState *state)
 	/* Shutdown worker processes */
 	WaitForParallelWorkersToFinish(brinleader->pcxt);
 
+	if ((log_parallel_workers == LOG_PARALLEL_WORKERS_ALL &&
+		 brinleader->pcxt->nworkers_to_launch > 0) ||
+		(log_parallel_workers == LOG_PARALLEL_WORKERS_FAILURE &&
+		 brinleader->pcxt->nworkers_to_launch > brinleader->pcxt->nworkers_launched))
+		elog(LOG, "%i workers planned (%i workers launched)",
+			brinleader->pcxt->nworkers_to_launch,
+			brinleader->pcxt->nworkers_launched);
+
 	/*
 	 * Next, accumulate WAL usage.  (This must wait for the workers to finish,
 	 * or we might get incomplete data.)
diff --git a/src/backend/access/nbtree/nbtsort.c b/src/backend/access/nbtree/nbtsort.c
index 5cca0d4f52..e31bd8e223 100644
--- a/src/backend/access/nbtree/nbtsort.c
+++ b/src/backend/access/nbtree/nbtsort.c
@@ -1615,6 +1615,14 @@ _bt_end_parallel(BTLeader *btleader)
 	/* Shutdown worker processes */
 	WaitForParallelWorkersToFinish(btleader->pcxt);
 
+	if ((log_parallel_workers == LOG_PARALLEL_WORKERS_ALL &&
+		 btleader->pcxt->nworkers_to_launch > 0) ||
+		(log_parallel_workers == LOG_PARALLEL_WORKERS_FAILURE &&
+		 btleader->pcxt->nworkers_to_launch > btleader->pcxt->nworkers_launched))
+		elog(LOG, "%i workers planned (%i workers launched)",
+			btleader->pcxt->nworkers_to_launch,
+			btleader->pcxt->nworkers_launched);
+
 	/*
 	 * Next, accumulate WAL usage.  (This must wait for the workers to finish,
 	 * or we might get incomplete data.)
-- 
2.46.2