Re: Change GUC hashtable to use simplehash?
John Naylor <johncnaylorls@gmail.com>
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Silence warning in older versions of Valgrind
- fde7c0164ea2 17.5 landed
- 0600d276d485 18.0 landed
-
Revert "Speed up tail processing when hashing aligned C strings, take two"
- 6555fe197914 17.3 landed
- 235328ee4ae4 18.0 landed
-
Speed up tail processing when hashing aligned C strings, take two
- a365d9e2e8c1 17.0 landed
-
Teach fasthash_accum to use platform endianness for bytewise loads
- 0c25fee35903 17.0 landed
-
Add macro to disable address safety instrumentation
- db17594ad73a 17.0 landed
-
Convert uses of hash_string_pointer to fasthash equivalent
- f956ecd0353b 17.0 landed
-
Speed up tail processing when hashing aligned C strings
- 07f0f6abfc7f 17.0 landed
-
Add helper functions for dshash tables with string keys.
- 42a1de3013ea 17.0 cited
-
Fix warnings in cpluspluscheck
- 257998508672 17.0 landed
-
Further cosmetic review of hashfn_unstable.h
- b83033c3cff5 17.0 landed
-
Simplify initialization of incremental hash state
- 9ed3ee5001b6 17.0 landed
-
Add optimized C string hashing
- 0aba2554409e 17.0 landed
-
Add inline incremental hash functions for in-memory use
- e97b672c88f6 17.0 landed
-
Make all Perl warnings fatal
- c5385929593d 17.0 cited
Attachments
- v18-0001-Use-fasthash-for-dynahash-s-default-string-hash.patch (text/x-patch) patch v18-0001
- v18-0002-Use-fasthash-for-guc_name_hash.patch (text/x-patch) patch v18-0002
- v18-0003-Speed-up-tail-processing-when-hashing-aligned-C-.patch (text/x-patch) patch v18-0003
I wrote: > > It occurred to me that it's strange to have two places that length can > be passed. That was a side effect of the original, which used length > to both know how many bytes to read, and to modify the internal seed. > With the incremental API, it doesn't make sense to pass the length (or > a dummy macro) up front -- with a compile-time fixed length, it can't > possibly break a tie, so it's just noise. This was a wart, so pushed removing initial length from the incremental API. On Mon, Jan 22, 2024 at 11:16 AM Jeff Davis <pgsql@j-davis.com> wrote: > > On Mon, 2024-01-22 at 09:03 +0700, John Naylor wrote: > > v15-0004 is a stab at that. As an idea, it also renames zero_bytes_le > > to zero_byte_low to reflect the effect better. There might be some > > other comment edits needed to explain usage, so I plan to hold on to > > this for later. Let me know what you think. > > 0004 looks good to me. No urgency so feel free to hold it until a > convenient time. Thanks for looking, I pushed this along with an expanded explanation of usage. > 0002 and 0003 use fasthash for dynahash and GUC hash, respectively. > These cannot use the existing cstring hashing directly because of > truncation and case-folding, respectively. (Some simplehash uses can, > but that can come later) I've re-attached these as well as a cleaned-up version of the tail optimization. For the CF entry, the GUC hash function in this form might only be necessary if we went ahead with simple hash. We don't yet have a new benchmark to show if that's still worthwhile after 867dd2dc87 improved the one upthread. For dynahash, one tricky part seems to be the comment about the default and when it was an assertion error. I've tried to reword this, but maybe needs work. When that's in shape, I'll incorporate removing other strlen calls.