Re: pgstat_report_activity() and parallel CREATE INDEX (was: Parallel index creation & pg_stat_activity)
Peter Geoghegan <pg@bowt.ie>
From: Peter Geoghegan <pg@bowt.ie>
To: Andres Freund <andres@anarazel.de>
Cc: Phil Florent <philflorent@hotmail.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2018-03-08T01:53:18Z
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 →
-
Set debug_query_string in worker_spi.
- d2246cde825e 14.0 landed
-
Reproduce debug_query_string==NULL on parallel workers.
- 045466675820 11.10 landed
- 741b84e9f747 12.5 landed
- ab2e2ce46668 13.1 landed
- f90e80b91383 14.0 landed
-
Logical replication support for TRUNCATE
- 039eb6e92f20 11.0 cited
-
Call pgstat_report_activity() in parallel CREATE INDEX workers.
- 7de4a1bcc56f 11.0 landed
Attachments
- 0001-Report-query-text-in-parallel-CREATE-INDEX-workers.patch (text/x-patch) patch 0001
On Thu, Mar 1, 2018 at 2:47 PM, Peter Geoghegan <pg@bowt.ie> wrote: > No. Just an oversight. Looks like _bt_parallel_build_main() should > call pgstat_report_activity(), just like ParallelQueryMain(). > > I'll come up with a patch soon. Attached patch has parallel CREATE INDEX propagate debug_query_string to workers. Workers go on to use this string as their own debug_query_string, as well as registering it using pgstat_report_activity(). Parallel CREATE INDEX pg_stat_activity entries will have a query text, too, which addresses Phil's complaint. I wasn't 100% sure if I should actually show the leader's debug_query_string within worker pg_stat_activity entries, since that isn't what parallel query uses (the QueryDesc/Estate query string in shared memory is *restored* as the debug_query_string for a parallel query worker, though). I eventually decided that this debug_query_string approach was okay. There is nothing remotely like a QueryDesc or EState passed to btbuild(). I can imagine specific issues with what I've done, such as a CREATE EXTENSION command that contains a CREATE INDEX, and yet shows a CREATE EXTENSION in pg_stat_activity for parallel workers. However, that's no different to what you'd see with a serial index build. Existing tcop/postgres.c pgstat_report_activity() calls are aligned with setting debug_query_string. -- Peter Geoghegan