Re: Using Threads? - Mailing list pgsql-hackers

From Thomas Lockhart
Subject Re: Using Threads?
Date
Msg-id 3A2B3CF2.88C3E55D@alumni.caltech.edu
Whole thread Raw
In response to Using Threads?  ("Junfeng Zhang" <junfengz@cae.wisc.edu>)
Responses Re: Using Threads?  (Junfeng Zhang <junfengz@cae.wisc.edu>)
List pgsql-hackers
> I am new to postgreSQL. When I read the documents, I find out the Postmaster
> daemon actual spawns a new backend server process to serve a new client
> request. Why not use threads instead? Is that just for a historical reason,
> or some performance/implementation concern?

Both. Not all systems supported by PostgreSQL have a standards-compliant
threading implementation (even more true for the systems PostgreSQL has
supported over the years).

But there are performance and reliability considerations too. A
thread-only server is likely more brittle than a process-per-client
implementation, since all threads share the same address space.
Corruption in one server might more easily propagate to other servers.

The time to start a backend is quite often small compared to the time
required for a complete session, so imho the differences in absolute
speed are not generally significant.
                      - Thomas


pgsql-hackers by date:

Previous
From: Sandeep Joshi
Date:
Subject: redundancy and disk i/o
Next
From: Thomas Lockhart
Date:
Subject: Re: postgres docs (was Re: Crash during WAL recovery?)