Re: REINDEX CONCURRENTLY 2.0
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
Cc: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Sergei Kornilov <sk@zsrv.org>, "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>
Date: 2019-04-11T13:27:04Z
Lists: pgsql-hackers
On Thu, Apr 11, 2019 at 11:21:29AM +0100, Dagfinn Ilmari Mannsåker wrote: > I noticed that the docs for how to recover from a failed CREATE INDEX > CONCURRENTLY say that «REINDEX does not support concurrent builds», > which is no longer true. Good catch. I'll apply that in a couple of hours. > I was going to just remove the caveat, but then I discovered that > REINDEX CONCURRENTLY doesn't work on INVALID indexes (why?). This is a wanted choice. The index built in parallel of the existing one during a concurrent reindex is marked invalid during most of the operation. Hence, if the reindex is interrupted or fails, you finish with potentially twice the number of original indexes, half being invalid and the other half being the ones in use. If the user decides to rinse and repeat the concurrent reindex, and if we were to also select invalid indexes for the operation, then you would finish by potentially doing twice the amount of work when working on a relation, half of it for nothing. -- Michael
Commits
-
Prevent reindex of invalid indexes on TOAST tables
- 8bca5f93547c 12.3 landed
- 61d7c7bce368 13.0 landed
-
Rework handling of invalid indexes with REINDEX CONCURRENTLY
- a6dcf9df4d91 12.0 landed
-
Split builtins.h to a new header ruleutils.h
- 7b1c2a0f2066 9.5.0 cited