Re: reindex concurrently and two toast indexes
Julien Rouhaud <rjuju123@gmail.com>
From: Julien Rouhaud <rjuju123@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
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-04T08:21:45Z
Lists: pgsql-hackers
On Wed, Mar 4, 2020 at 6:15 AM Michael Paquier <michael@paquier.xyz> wrote: > > 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. Thanks for the patch! I started to look at it during the weekend, but I got interrupted and unfortunately didn't had time to look at it since. The fix looks good to me. I also tried multiple failure scenario and it's unsurprisingly working just fine. Should we add some regression tests for that? I guess most of it could be borrowed from the patch to fix the toast index issue I sent last week.
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