On 11/03/2019 18:36, Andy Fan wrote: > Hi: > I need some function which requires some message exchange among > different back-ends (connections). > specially I need a shared hash map and a message queue. > > Message queue: it should be many writers, 1 reader. Looks POSIX > message queue should be OK, but postgre doesn't use it. is there any > equivalent in PG? > > shared hash map: the number of items can be fixed and the value can be > fixed as well. > > any keywords or explanation will be extremely helpful. You may use shm_mq (shared memory queue) and hash tables (dynahash.c) in shared memory (see ShmemInitHash() + shmem_startup_hook) > > Thanks
-- Andrey Lepikhov Postgres Professional https://postgrespro.com The Russian Postgres Company
Thanks Andrey and all people replied this! dynahash/ShmemInitHash is the one I'm using and it is ok for my purposes.
I planned to use posix/system v message queue, since they are able to support multi readers/multi writer.
I just don't know why shm_mq is designed to single-reader & single-writer.