The Hermit Hacker <scrappy@hub.org> writes:
>> Why not use threads instead? Is that just for a
>> historical reason, or some performance/implementation concern?
> Several reasons, 'historical' probably being the strongest right now
> ... since PostgreSQL was never designed for threading, its about as
> 'un-thread-safe' as they come, and cleaning that up will/would be a
> complete nightmare (should eventually be done, mind you) ...
> The other is stability ... right now, if one backend drops away, for
> whatever reason, it doesn't take down the whole system ... if you ran
> things as one process, and that one process died, you just lost your whole
> system ...
Portability is another big reason --- using threads would create lots
of portability headaches for platforms that had no threads or an
incompatible threads library. (Not to mention buggy threads libraries,
not-quite-thread-safe libc routines, yadda yadda.)
The amount of work required looks far out of proportion to the payoff...
regards, tom lane