On Wed, May 31, 2017 at 10:57 AM, Robert Haas <robertmh...@gmail.com> wrote: >> Simplehash provides an option to provide your own allocator function >> to it. So in the allocator function, you can allocate memory from DSA. >> After it reaches some threshold it expands the size (double) and it >> will again call the allocator function to allocate the bigger memory. >> You can refer pagetable_allocate in tidbitmap.c. > > That only allows the pagetable to be shared, not the hash table itself.
I agree with you. But, if I understand the use case correctly we need to store the TupleDesc for the RECORD in shared hash so that it can be shared across multiple processes. I think this can be achieved with the simplehash as well. For getting this done, we need some fixed shared memory for holding static members of SH_TYPE and the process which creates the simplehash will be responsible for copying these static members to the shared location so that other processes can access the SH_TYPE. And, the dynamic part (the actual hash entries) can be allocated using DSA by registering SH_ALLOCATE function. -- Regards, Dilip Kumar EnterpriseDB: http://www.enterprisedb.com -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers