Add parallelism and glibc dependent only options to reindexdb
Julien Rouhaud <rjuju123@gmail.com>
From: Julien Rouhaud <rjuju123@gmail.com>
To: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Cc: Kevin Grittner <kgrittn@gmail.com>, Michael Paquier <michael@paquier.xyz>
Date: 2019-06-30T09:45:47Z
Lists: pgsql-hackers
Attachments
- 0003-Add-parallel-processing-to-reindexdb.patch (application/octet-stream) patch 0003
- 0001-Export-vacuumdb-s-parallel-infrastructure.patch (application/octet-stream) patch 0001
- 0004-Add-a-glibc-dependent-option.patch (application/octet-stream) patch 0004
- 0002-Add-a-SimplePtrList-implementation.patch (application/octet-stream) patch 0002
Hi, With the glibc 2.28 coming, all users will have to reindex almost every indexes after a glibc upgrade to guarantee the lack of corruption. Unfortunately, reindexdb is not ideal for that as it's processing everything using a single connexion and isn't able to discard indexes that doesn't depend on a glibc collation. PFA a patchset to add parallelism to reindexdb (reusing the infrastructure in vacuumdb with some additions) and an option to discard indexes that doesn't depend on glibc (without any specific collation filtering or glibc version detection), with updated regression tests. Note that this should be applied on top of the existing reindexdb cleanup & refactoring patch (https://commitfest.postgresql.org/23/2115/). This was sponsored by VMware, and has been discussed internally with Kevin and Michael, in Cc.
Commits
-
Add support for --jobs in reindexdb
- 5ab892c391c6 13.0 landed
-
Remove more progname references in vacuumdb.c
- 3cae75f4209b 13.0 landed
-
Refactor parallelization processing code in src/bin/scripts/
- 5f3840370b63 13.0 landed