On Tue, Mar 12, 2019 at 2:36 PM Andy Fan <zhihui.fan1...@gmail.com> wrote:
> On Tue, Mar 12, 2019 at 1:59 PM Andrey Lepikhov <a.lepik...@postgrespro.ru> > wrote: > >> 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. > Posix/System v message queue is not a portable way for postgres since they are not widely support on all the os, like Darwin. I think that may be a reason why pg didn't use it. and I just hack for fun, so posix mq can be a solution for me. > I just don't know why shm_mq is designed to single-reader & single-writer. > Probably this will be simpler and enough for PostgreSQL. That is just the thoughts per my current knowledge.