Re: reindex concurrently and two toast indexes
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Julien Rouhaud <rjuju123@gmail.com>
Cc: Justin Pryzby <pryzby@telsasoft.com>, Sergei Kornilov <sk@zsrv.org>, Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Michael Paquier <michael.paquier@gmail.com>, Andreas Karlsson <andreas@proxel.se>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2020-03-04T05:15:10Z
Lists: pgsql-hackers
Attachments
- reindex-deps-v3.patch (text/x-diff) patch v3
On Tue, Mar 03, 2020 at 06:25:51PM +0900, Michael Paquier wrote: > Or actually, a more simple solution is to abuse of the two existing > routines so as the dependency switch is done the other way around, > from the new index to the old one. That would visibly work because > there is no CCI between each scan, and that's faster because the scan > of pg_depend is done only on the entries in need of an update. I'll > look at that again tomorrow, it is late here and I may be missing > something obvious. It was a good inspiration. I have been torturing this patch today and played with it by injecting elog(ERROR) calls in the middle of reindex concurrently for all the phases, and checked manually the handling of entries in pg_depend for the new and old indexes, and these correctly map. So this is taking care of your problem. Attached is an updated patch with an updated comment about the dependency of this code with CCIs. I'd like to go fix this issue first. -- Michael
Commits
-
Prevent reindex of invalid indexes on TOAST tables
- 8bca5f93547c 12.3 landed
- 61d7c7bce368 13.0 landed
-
Fix more issues with dependency handling at swap phase of REINDEX CONCURRENTLY
- 26876127be2c 12.3 landed
- fbcf0871123b 13.0 landed