Re: Pre-forking backend
Bruce Momjian <pgman@candle.pha.pa.us>
From: Bruce Momjian <pgman@candle.pha.pa.us>
To: Ken Hirsch <kenhirsch@myself.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2001-09-29T20:29:44Z
Lists: pgsql-hackers
> Bruce Momjian wrote: > > Tom Lane wrote: > > > Bruce Momjian <pgman@candle.pha.pa.us> writes: > > > > How hard would it be to pre-fork an extra backend > > > > > > How are you going to pass the connection socket to an already-forked > > > child process? AFAIK there's no remotely portable way ... > > > > No idea but it seemed like a nice optimization if we could do it. > > What can be done is to have the parent process open and listen() on the > socket, then have each child do an accept() on the socket. That way you > don't have to pass the socket. The function of the parent process would then > be only to decide when to start new children. > > On some operating systems, only one child at a time can accept() on the > socket. On these, you have to lock around the call to accept(). But how do you know the client wants the database you have forked? They could want a different one. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026