Re: Pre-forking backend

From: "Ken Hirsch" <kenhirsch(at)myself(dot)com>
To: "Bruce Momjian" <pgman(at)candle(dot)pha(dot)pa(dot)us>, "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: "PostgreSQL-development" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Pre-forking backend
Date: 2001-09-29 20:28:00
Message-ID: 008001c14925$3eeb2520$87863dd0@hppav
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Bruce Momjian wrote:
> Tom Lane wrote:
> > Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)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().

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2001-09-29 20:29:44 Re: Pre-forking backend
Previous Message Tom Lane 2001-09-29 20:15:01 Re: Problem with setlocale (found in libecpg) [accessing a memory location after freeing it]