Re: Pre-forking backend
Ken Hirsch <kenhirsch@myself.com>
From: "Ken Hirsch" <kenhirsch@myself.com>
To: "Bruce Momjian" <pgman@candle.pha.pa.us>, "Tom Lane" <tgl@sss.pgh.pa.us>
Cc: "PostgreSQL-development" <pgsql-hackers@postgresql.org>
Date: 2001-09-29T21:06:13Z
Lists: pgsql-hackers
Tom Lane wrote: > > This approach would only work as far as saving the fork() call itself, > not the backend setup time. Not sure it's worth the trouble. I doubt > that the fork itself is a huge component of our start time; it's setting > up all the catalog caches and so forth that's expensive. On Unix, yeah, but on Windows, VMS, MPE/iX, possibly others, forking is expensive. Even on Unix, you're not losing anything by this architecture. The simple solution is to have wait on separate sockets and add a redirect capability to the protocol. The program would be: If the clients wants the database I have open, great, we're in business else if the client supports redirect, do redirect else if I can pass file descriptor on this OS, pass file descriptor to the right process else throw away what we've done and open the right database. Simple! It's just a small matter of programming.