Thread: Feature Request: multithreaded reindexdb --concurrently of a single table

PG 14.15

This command executes the single command "REINDEX TABLE foo;" and the reindexfb doc page says that --jobs is incompatible with --index.

$ reindexdb -d dba -v --concurrently -j4 -t foo
INFO:  index "public.foo_pkey" was reindexed
INFO:  index "public.i_foo_2" was reindexed
INFO:  index "public.i_foo_3" was reindexed
INFO:  index "public.i_foo_23" was reindexed
INFO:  table "public.foo" was reindexed
DETAIL:  CPU: user: 26.90 s, system: 7.47 s, elapsed: 59.37 s.

It would be really really handy to be able to run multiple REINDEX INDEX jobs at the same time, either by just specifying the table as above and reindexdb automagically getting the index names, or by manually enumerating each index, and then see all four REINDEX INDEX statements in pg_stat_activity.

$ reindexdb -d dba -v --concurrently -j4 -i foo_pkey -i i_foo_2 -i i_foo_3 -i i_foo_23

--
Death to <Redacted>, and butter sauce.
Don't boil me, I'm still alive.
<Redacted> lobster!
On 2025-Feb-18, Ron Johnson wrote:

> It would be really really handy to be able to run multiple REINDEX INDEX
> jobs at the same time, either by just specifying the table as above and
> reindexdb automagically getting the index names, or by manually enumerating
> each index, and then see all four REINDEX INDEX statements in
> pg_stat_activity.

I don't think multiple REINDEX commands can run concurrently on the same
table, so this is not a reindexdb issue but a server issue.  And TBH I
think the server feature to support that is not likely to be implemented
soon.

-- 
Álvaro Herrera         PostgreSQL Developer  —  https://www.EnterpriseDB.com/
"Ed is the standard text editor."
      http://groups.google.com/group/alt.religion.emacs/msg/8d94ddab6a9b0ad3



On Fri, Feb 21, 2025 at 1:46 PM Álvaro Herrera <alvherre@alvh.no-ip.org> wrote:
On 2025-Feb-18, Ron Johnson wrote:

> It would be really really handy to be able to run multiple REINDEX INDEX
> jobs at the same time, either by just specifying the table as above and
> reindexdb automagically getting the index names, or by manually enumerating
> each index, and then see all four REINDEX INDEX statements in
> pg_stat_activity.

I don't think multiple REINDEX commands can run concurrently on the same
table, so this is not a reindexdb issue but a server issue.  And TBH I
think the server feature to support that is not likely to be implemented
soon.

That's a shame.  Big server, lots of RAM, lots of CPUs, a big table, and lots of indices just begs for concurrently running REINDEX / CREATE INDEX statements on the same table.

--
Death to <Redacted>, and butter sauce.
Don't boil me, I'm still alive.
<Redacted> lobster!