Re: A design for amcheck heapam verification
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Thomas Munro <thomas.munro@enterprisedb.com>
Cc: Michael Paquier <michael.paquier@gmail.com>, Peter Geoghegan <pg@bowt.ie>, Alvaro Herrera <alvherre@2ndquadrant.com>, Tom Lane <tgl@sss.pgh.pa.us>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2017-09-29T17:29:04Z
Lists: pgsql-hackers
On Thu, Sep 28, 2017 at 11:34 PM, Thomas Munro <thomas.munro@enterprisedb.com> wrote: > FWIW I think if I were attacking that problem the first thing I'd > probably try would be getting rid of that internal pointer > filter->bitset in favour of a FLEXIBLE_ARRAY_MEMBER and then making > the interface look something like this: > > extern size_t bloom_estimate(int64 total elems, int work_mem); > extern void bloom_init(bloom_filter *filter, int64 total_elems, int work_mem); Yes, that seems quite convenient and is by now an established coding pattern. I am also wondering whether this patch should consider 81c5e46c490e2426db243eada186995da5bb0ba7 as a way of obtaining multiple hash values. I suppose that's probably inferior to what is already being done on performance grounds, but I'll just throw out a mention of it here all the same in case it was overlooked or the relevance not spotted... -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
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