RE: Parallel Bitmap Heap Scan reports per-worker stats in EXPLAIN ANALYZE
masahiro.ikeda@nttdata.com
From: <Masahiro.Ikeda@nttdata.com>
To: <lena.ribackina@yandex.ru>, <donghanglin@gmail.com>
Cc: <geidav.pg@gmail.com>, <melanieplageman@gmail.com>,
<tomas.vondra@enterprisedb.com>, <dilipbalaut@gmail.com>,
<pgsql-hackers@lists.postgresql.org>, <hlinnaka@iki.fi>,
<Masao.Fujii@nttdata.com>
Date: 2024-06-26T10:27:09Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Show Parallel Bitmap Heap Scan worker stats in EXPLAIN ANALYZE
- 5a1e6df3b84c 18.0 landed
-
Widen lossy and exact page counters for Bitmap Heap Scan
- 7340d9362a79 18.0 landed
-
Remove redundant snapshot copying from parallel leader to workers
- 84c18acaf690 17.0 cited
Hi, Thanks for working it! I'm interested in this feature, so I'd like to participate in the patch review. Though I've just started looking at the patch, I have two comments about the v6 patch. (And I want to confirm the thread active.) 1) Unify the print format of leader and worker In show_tidbitmap_info(), the number of exact/loosy blocks of the leader and workers are printed. I think the printed format should be same. Currently, the leader does not print the blocks of exact/lossy with a value of 0, but the workers could even if it is 0. IMHO, it's better to print both exact/lossy blocks if at least one of the numbers of exact/lossy blocks is greater than 0. After all, the print logic is redundant for leader and workers, but I thought it would be better to make it a common function. 2) Move es->workers_state check In show_tidbitmap_info(), ExplainOpenWorker() and ExplainCloseWorker() are called after checking es->worker_state is not NULL. However, es->workers_state seem to be able to be NULL only for the Gather node (I see ExplainPrintPlan()). Also, reading the comments, there is a description that each worker information needs to be hidden when printing the plan. Even if es->workers_state becomes NULL in BitmapHeapScan node in the future, I think that workers' information(Heap Blocks) should not be printed. Therefore, I think es->workers_state check should be move to the place of "if (planstate->pstate != NULL)" like ExplainNode(), doesn't it? IIUC, we need to correct show_sort_info() and so on too… Regards, -- Masahiro Ikeda NTT DATA CORPORATION