Re: more signals (was: Function to kill backend)

Поиск
Список
Период
Сортировка
От Magnus Hagander
Тема Re: more signals (was: Function to kill backend)
Дата
Msg-id 6BCB9D8A16AC4241919521715F4D8BCE34BF72@algol.sollentuna.se
обсуждение исходный текст
Ответы Re: more signals (was: Function to kill backend)
Список pgsql-hackers
> > We invent something we could call "extended signals" that are valid
> > only in pgsql.
>
> This would be handy, but I dislike your proposal of
> implementing it using SysV message queues.
>
> 1. Yes, the message facility should theoretically be there if
> shmem and semaphores are there, but in the real world it
> might not be (Mac OS X is an example of a platform that I
> don't think has all three SysV IPC parts).

Ok. Yikes. Any suggestions for alternative methods=


> 2. It's even more likely that it would be there but have
> unpleasantly small implementation limits.  AFAICT your
> proposal requires a separate message queue per backend, which
> is probably going to stress any conventionally-configured
> SysV facility.

Not at all. One message queue with the backend pid as the message id.
Eh. One message queue per cluster, that is.


> 3. This doesn't seem to really address my objection of not
> being able to trigger the signal manually.  Certainly kill(1)
> is not smart enough, and even if we invent a pg_kill program,
> how will it know which message queue to stick the extended
> signal in?

We have already invented pg_kill. It's "pg_ctl kill".


> The IDs of the message queues would not be
> readily available to anyone without access to the cluster's
> shared memory, much less the mapping between message queue ID
> and process PID.

ftok() on pg_control or something in the clusters data directory was my
intention. (Again, just one message queue)


//Magnus



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

Предыдущее
От: Thomas Hallgren
Дата:
Сообщение: Re: Sketch of extending error handling for subtransactions in functions
Следующее
От: Greg Stark
Дата:
Сообщение: Re: Why we really need timelines *now* in PITR