Re: A design for amcheck heapam verification
Peter Geoghegan <pg@bowt.ie>
From: Peter Geoghegan <pg@bowt.ie>
To: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: Thomas Munro <thomas.munro@enterprisedb.com>,
Tom Lane <tgl@sss.pgh.pa.us>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2017-09-07T02:26:36Z
Lists: pgsql-hackers
Attachments
- 0001-Add-Bloom-filter-data-structure-implementation.patch (text/x-patch) patch 0001
- 0002-Add-amcheck-verification-of-indexes-against-heap.patch (text/x-patch) patch 0002
On Wed, Aug 30, 2017 at 9:29 AM, Peter Geoghegan <pg@bowt.ie> wrote: > On Wed, Aug 30, 2017 at 5:02 AM, Alvaro Herrera > <alvherre@2ndquadrant.com> wrote: >> Eh, if you want to optimize it for the case where debug output is not >> enabled, make sure to use ereport() not elog(). ereport() >> short-circuits evaluation of arguments, whereas elog() does not. > > I should do that, but it's still not really noticeable. Since this patch has now bit-rotted, I attach a new revision, V2. Apart from fixing some Makefile bitrot, this revision also makes some small tweaks as suggested by Thomas and Alvaro. The documentation is also revised and expanded, and now discusses practical aspects of the set membership being tested using a Bloom filter, how that relates to maintenance_work_mem, and so on. Note that this revision does not let the Bloom filter caller use their own dynamic shared memory, which is something that Thomas asked about. While that could easily be added, I think it should happen later. I really just wanted to make sure that my Bloom filter was not in some way fundamentally incompatible with Thomas' planned enhancements to (parallel) hash join. -- Peter Geoghegan
Commits
-
Fix non-portable use of round().
- 686d399f2be6 11.0 landed
-
Add amcheck verification of heap relations belonging to btree indexes.
- 7f563c09f890 11.0 landed
-
Add Bloom filter implementation.
- 51bc271790eb 11.0 landed
-
Use ereport not elog for some corrupt-HOT-chain reports.
- 8ecdc2ffe3da 11.0 cited
-
Introduce 64-bit hash functions with a 64-bit seed.
- 81c5e46c490e 11.0 cited
-
Upgrade src/port/rint.c to be POSIX-compliant.
- 06bf0dd6e354 9.5.0 cited
-
Use type "int64" for memory accounting in tuplesort.c/tuplestore.c.
- 79e0f87a1564 9.4.0 cited