Re: Comment simplehash/dynahash trade-offs - Mailing list pgsql-hackers

From Thomas Munro
Subject Re: Comment simplehash/dynahash trade-offs
Date
Msg-id CA+hUKG+ViWBP4v8xUPCnNaVwCJPqi+2V+=9fuFNZjbz8Gj7Miw@mail.gmail.com
Whole thread Raw
In response to Comment simplehash/dynahash trade-offs  (James Coleman <jtc331@gmail.com>)
Responses Re: Comment simplehash/dynahash trade-offs
List pgsql-hackers
On Fri, May 1, 2020 at 1:53 PM James Coleman <jtc331@gmail.com> wrote:
> In another thread [1] I'd mused that "there might be some value in a
> README or comments
> addition that would be a guide to what the various hash
> implementations are useful for...so that we have something to make the
> code base a bit more discoverable."

+1

> I'd solicited feedback from Andres (as the author of the simplehash
> implementation) and gotten further explanation from Tomas (both cc'd
> here) and have tried to condense that into the comment changes in this
> patch series.
>
> v1-0001-Summarize-trade-offs-between-simplehash-and-dynah.patch
> Contains the summaries mentioned above.

+ * - It supports partitioning, which is useful for shared memory access using

I wonder if we should say a bit more about the shared memory mode.
Shared memory dynahash tables are allocated in a fixed size area at
startup, and are discoverable by name in other other processes that
need to get access to them, while simplehash assumes that it can get
memory from a MemoryContext or an allocator with a malloc/free-style
interface, which isn't very well suited for use in shared memory.
(I'm sure you can convince it to work in shared memory with some
work.)

> v1-0002-Improve-simplehash-usage-notes.patch

+ *    For convenience the hash table create functions accept a void pointer
+ *    will be stored in the hash table type's member private_data.

*that* will be stored?

> v1-0003-Show-sample-simplehash-method-signatures.patch
> I find it hard to read the macro code "templating" particularly for
> seeing what the available API is and so added sample method signatures
> in comments to the macro generated method signature defines.

I didn't double-check all the expansions of the macros but +1 for this
idea, it's very useful.



pgsql-hackers by date:

Previous
From: torikoshia
Date:
Subject: Re: Is it useful to record whether plans are generic or custom?
Next
From: "movead.li@highgo.ca"
Date:
Subject: Re: pg_resetwal --next-transaction-id may cause database failed to restart.