Re: [HACKERS] fork/exec for backend - Mailing list pgsql-hackers

From Goran Thyni
Subject Re: [HACKERS] fork/exec for backend
Date
Msg-id 19980124221653.8668.qmail@guevara.bildbasen.se
Whole thread Raw
In response to Re: [HACKERS] fork/exec for backend  (Tom <tom@sdf.com>)
Responses Re: [HACKERS] fork/exec for backend  (Tom <tom@sdf.com>)
Re: [HACKERS] fork/exec for backend  (Bruce Momjian <maillist@candle.pha.pa.us>)
List pgsql-hackers
   On 24 Jan 1998, Goran Thyni wrote:

   > Fork on modern unices (linux and (a think) *BSD) cost
   > almost nothing (in time and memory) thanks to COW (copy-on-write).
   > Exec in expensive as it breaks COW.

     Not so.  Modern Unixs will share executable address space between
   processes.  So if you fork and exec 10 identical programs, they will share
   most address space.

1. Code is probably not shared between postmaster and postgres
   processes.

2. Some inits may be done once (by postmaster) and not repeated
   by every child.

3. (and most important)
   With no exec COW is in action, meaning:
   data pages in shared until changed.

COW is the key to how Linux can fork faster than most unices
starts a new thread. :-)

     Again, this only applies to "modern" systems, but FreeBSD definitely has
   this behaviour.

I don't know if *BSD has COW, but if should think so.

  best regards,
--
---------------------------------------------
G�ran Thyni, sysadm, JMS Bildbasen, Kiruna


pgsql-hackers by date:

Previous
From: Tom
Date:
Subject: Re: [HACKERS] fork/exec for backend
Next
From: Brett McCormick
Date:
Subject: Re: [QUESTIONS] Re: [HACKERS] Show stopper ? (was: Re: "cruising" or "browsing" through tables using an index / ordering)