Re: new heapcheck contrib module
Robert Haas <robertmhaas@gmail.com>
On Wed, Apr 29, 2020 at 12:30 PM Mark Dilger <mark.dilger@enterprisedb.com> wrote: > Version 4 of this patch now includes boolean options skip_all_frozen and skip_all_visible. I'm not sure sure, but maybe there should just be one argument with three possible values, because skip_all_frozen = true and skip_all_visible = false seems nonsensical. On the other hand, if we used a text argument with three possible values, I'm not sure what we'd call the argument or what strings we'd use as the values. Also, what do people -- either those who have already responded, or others -- think about the idea of putting a command-line tool around this? I know that there were some rumblings about this in respect to pg_verifybackup, but I think a pg_amcheck binary would be well-received. It could do some interesting things, too. For instance, it could query pg_class for a list of relations that amcheck would know how to check, and then issue a separate query for each relation, which would avoid holding a snapshot or heavyweight locks across the whole operation. It could do parallelism across relations by opening multiple connections, or even within a single relation if -- as I think would be a good idea -- we extended heapcheck to take a range of block numbers after the style of pg_prewarm. Apart from allowing for client-driven parallelism, accepting block number ranges would have the advantage -- IMHO pretty significant -- of making it far easier to use this on a relation where some blocks are entirely unreadable. You could specify ranges to check out the remaining blocks. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Commits
-
Add pg_amcheck, a CLI for contrib/amcheck.
- 9706092839db 14.0 landed
-
Refactor and generalize the ParallelSlot machinery.
- f71519e545a3 14.0 landed
-
Generalize parallel slot result handling.
- 418611c84d00 14.0 landed
-
Move some code from src/bin/scripts to src/fe_utils to permit reuse.
- e955bd4b6c2b 14.0 landed
-
Factor pattern-construction logic out of processSQLNamePattern.
- 2c8726c4b0a4 14.0 landed
-
Doc: clean up verify_heapam() documentation.
- 4c49d8fc15ee 14.0 landed
-
Fix more portability issues in new amcheck code.
- 321633e17b07 14.0 landed
-
Fix portability issues in new amcheck test.
- 860593ec3bd1 14.0 landed
-
Try to avoid a compiler warning about using fxid uninitialized.
- 8bb0c9770e80 14.0 landed
-
Extend amcheck to check heap pages.
- 866e24d47db1 14.0 landed
-
Adjust walsender usage of xlogreader, simplify APIs
- 850196b610d2 13.0 cited
-
Improve checking of child pages in contrib/amcheck.
- d114cc538715 13.0 cited
-
Sanitize line pointers within contrib/amcheck.
- a9ce839a3137 12.0 cited
-
Fix possible sorting error when aborting use of abbreviated keys.
- 008c4135ccf6 10.0 cited