Re: Suggestions on message transfer among backends
От | Andy Fan |
---|---|
Тема | Re: Suggestions on message transfer among backends |
Дата | |
Msg-id | CAKU4AWrrbtyK-_jXsq+1+WcDzAgHPU6SSnHcCzcSfC_ktC7_vg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Suggestions on message transfer among backends (Andy Fan <zhihui.fan1213@gmail.com>) |
Список | pgsql-hackers |
On Tue, Mar 12, 2019 at 2:36 PM Andy Fan <zhihui.fan1213@gmail.com> wrote:
On Tue, Mar 12, 2019 at 1:59 PM Andrey Lepikhov <a.lepikhov@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 CompanyThanks 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.
В списке pgsql-hackers по дате отправления: