shmem startup and shutdown hooks

Поиск
Список
Период
Сортировка
От Alvaro Herrera
Тема shmem startup and shutdown hooks
Дата
Msg-id 20130524192034.GM15045@eldon.alvh.no-ip.org
обсуждение исходный текст
Ответы Re: shmem startup and shutdown hooks
Список pgsql-hackers
Hi,

While going through Andres' BDR code I noticed that it has a shmem
startup hook, which installs a on_shmem_exit() callback to write stuff
at shutdown time.  This works fine but seems somewhat of a hazard: it is
having postmaster do the actual write, which has to access shared memory
while doing it.  Moreover, since the callback is installed to be called
at shmem reset, it means that a process crash causes this code to be
called, which seems similarly broken.

It seems that the right place to do this is checkpointer shutdown, i.e.
when checkpointer is told to close shop it should also invoke various
modules' shutdown callbacks.  There's no hook point there though, so
we'd need to introduce something new for this specific purpose.

We already have pg_stat_statements doing this, viz. pgss_shmem_startup():
/* * If we're in the postmaster (or a standalone backend...), set up a shmem * exit hook to dump the statistics to
disk.*/if (!IsUnderPostmaster)    on_shmem_exit(pgss_shmem_shutdown, (Datum) 0);
 

Also, it'd be good to discuss what should happen when another process
crashes.  Should we attempt to write the data anyway, or should we reset
it just like we do for pgstats?

Thoughts?

-- 
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services



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

Предыдущее
От: Claudio Freire
Дата:
Сообщение: Re: adding import in pl/python function
Следующее
От: Szymon Guz
Дата:
Сообщение: Re: adding import in pl/python function