Re: [HACKERS] removing the exec() from doexec()

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: [HACKERS] removing the exec() from doexec()
Дата
Msg-id 199804300144.VAA00356@candle.pha.pa.us
обсуждение исходный текст
Ответ на removing the exec() from doexec()  (Brett McCormickS <brett@abraxas.scene.com>)
Ответы Re: [HACKERS] removing the exec() from doexec()  (The Hermit Hacker <scrappy@hub.org>)
Re: [HACKERS] removing the exec() from doexec()  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
>
>
> I'm planning on removing the exec from DoExec() and instead just
> dispatch to the appropriate function.
>
> I don't plan on any changes to the usage of "arguments" to this new
> process, basically I'll just store them somewhere and then the forked
> backend can process them.
>
> Is there anything I should keep in mind?  I'd like this to eventually
> be integrated into the source tree -- any particular reason why we use
> exec() when we're just re-invoking the same binary?
>
> p.s. this is so my ssl patch doesn't have to negotiate twice -- very expensive

No reason for the exec().  I believe the only advantage is that it gives
us a separate process name in the 'ps' listing.  I have looked into
simulating this.

This exec() takes 15% of our startup time.  I have wanted it removed for
many releases now.  The only problem is to rip out the code that
re-attached to shared memory and stuff like that, because you will no
longer loose the shared memory in the exec().  The IPC code is
complicated, so good luck.  I or others can help if you get stuck.

--
Bruce Momjian                          |  830 Blythe Avenue
maillist@candle.pha.pa.us              |  Drexel Hill, Pennsylvania 19026
  +  If your life is a hard drive,     |  (610) 353-9879(w)
  +  Christ can be your backup.        |  (610) 853-3000(h)

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

Предыдущее
От: Brett McCormickS
Дата:
Сообщение: removing the exec() from doexec()
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: [HACKERS] removing the exec() from doexec()