Re: Amcheck verification of GiST and GIN
Peter Geoghegan <pg@bowt.ie>
On Thu, Feb 2, 2023 at 12:31 PM Nikolay Samokhvalov <samokhvalov@gmail.com> wrote: > I understand your thoughts (I think) and agree with them, but at least one > scenario where I do want to see *all* errors is corruption prevention – running > amcheck in lower environments, not in production, to predict and prevent issues. > For example, not long ago, Ubuntu 16.04 became EOL (in phases), and people > needed to upgrade, with glibc version change. It was quite good to use amcheck > on production clones (running on a new OS/glibc) to identify all indexes that > need to be rebuilt. Being able to see only one of them would be very > inconvenient. Rebuilding all indexes didn't seem a good idea in the case of > large databases. I agree that this matters at the level of whole indexes. That is, if you want to check every index in the database, it is unhelpful if the whole process stops just because one individual index has corruption. Any extra information about the index that is corrupt may not be all that valuable, but information about other indexes remains almost as valuable. I think that that problem should be solved at a higher level, in the program that runs amcheck. Note that pg_amcheck will already do this for B-Tree indexes. While verify_nbtree.c won't try to limp on with an index that is known to be corrupt, pg_amcheck will continue with other indexes. We should add a "Tip" to the amcheck documentation on 14+ about this. We should clearly advise users that they should probably just use pg_amcheck. Using the SQL interface directly should now mostly be something that only a tiny minority of experts need to do -- and even the experts won't do it that way unless they have a good reason to. -- Peter Geoghegan
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
amcheck: Fix posting tree checks in gin_index_check()
- 0cf205e122ae 18.0 landed
-
amcheck: Fix parent key check in gin_index_check()
- cdd1a431f21d 18.0 landed
-
amcheck: Fix checks of entry order for GIN indexes
- 0b54b392334b 18.0 landed
-
amcheck: Remove unused GinScanItem->parentlsn field
- 8dd41c0bff5b 18.0 landed
-
amcheck: Test gin_index_check on a multicolumn index
- c89d6b889ce9 18.0 landed
-
Remove incidental md5() function use from test
- 49b82522f13f 18.0 landed
-
amcheck: Add a GIN index to the CREATE INDEX CONCURRENTLY tests
- 68f97aeadb8e 18.0 landed
-
amcheck: Add a test with GIN index on JSONB data
- ca738bdc4c9d 18.0 landed
-
amcheck: Fix indentation in verify_gin.c
- ec4327d106be 18.0 landed
-
amcheck: Add gin_index_check() to verify GIN index
- 14ffaece0fb5 18.0 landed
-
amcheck: Move common routines into a separate module
- d70b17636ddf 18.0 landed
-
Fix grammar in GIN README
- fb9dff76635d 18.0 landed
-
Avoid amcheck inline compression false positives.
- eba775345d23 12.0 cited