Re: shared memory message queues

Поиск
Список
Период
Сортировка
От Thom Brown
Тема Re: shared memory message queues
Дата
Msg-id CAA-aLv6bwJRxKgtypSMTE+wzUtS1EeTyf8ZsRzRg3H1dk5gtfA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: shared memory message queues  (Robert Haas <robertmhaas@gmail.com>)
Ответы Re: shared memory message queues  (Robert Haas <robertmhaas@gmail.com>)
Список pgsql-hackers
On 14 January 2014 17:29, Robert Haas <robertmhaas@gmail.com> wrote:
> On Mon, Dec 23, 2013 at 12:46 PM, Robert Haas <robertmhaas@gmail.com> wrote:
>> Oh, dear.  That's rather embarrassing.
>>
>> Incremental (incremental-shm-mq.patch) and full (shm-mq-v3.patch)
>> patches attached.
>
> OK, I have pushed the patches in this stack.  I'm not sure we quite
> concluded the review back-and-forth but nobody really seems to have
> had serious objections to this line of attack, other than wanting some
> more comments which I have added.  I don't doubt that there will be
> more things to tweak and tune here, and a whole lot more stuff that
> needs to be built using this infrastructure, but I don't think the
> code that's here is going to get better for remaining outside the tree
> longer.
>
> I decided not to change the dsm_toc patch to use functions instead of
> macros as Andres suggested; the struct definition would still have
> needed to be public, so any change would still need a recompile, at
> least if the size of the struct changed.  It could be changed to work
> with a palloc'd chunk, but then you need to worry about
> context-lifespan memory leaks and it so didn't seem worth it.  I can't
> imagine this having a lot of churn, anyway.

postgres=# SELECT test_shm_mq(32768, (select
string_agg(chr(32+(random()*96)::int), '') from generate_series(1,3)),
1, 10);
ERROR:  could not register background process
HINT:  You may need to increase max_worker_processes.
STATEMENT:  SELECT test_shm_mq(32768, (select
string_agg(chr(32+(random()*96)::int), '') from generate_series(1,3)),
1, 10);
LOG:  registering background worker "test_shm_mq"
LOG:  starting background worker process "test_shm_mq"
ERROR:  could not register background process
HINT:  You may need to increase max_worker_processes.
ERROR:  unable to map dynamic shared memory segment
LOG:  worker process: test_shm_mq (PID 21939) exited with exit code 1
LOG:  unregistering background worker "test_shm_mq"


What's going on here?  This occurs when starting Postgres and run as
the first statement.

I also noticed that everything exits with exit code 1:


postgres=# SELECT test_shm_mq(32768, (select
string_agg(chr(32+(random()*96)::int), '') from
generate_series(1,400)), 10000, 1);
LOG:  registering background worker "test_shm_mq"
LOG:  starting background worker process "test_shm_mq"test_shm_mq
-------------

(1 row)

LOG:  worker process: test_shm_mq (PID 22041) exited with exit code 1
LOG:  unregistering background worker "test_shm_mq"

-- 
Thom



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: [Lsf-pc] Linux kernel impact on PostgreSQL performance
Следующее
От: Tom Lane
Дата:
Сообщение: Re: [Lsf-pc] Linux kernel impact on PostgreSQL performance