Re: MVCC and all that... - Mailing list pgsql-general

From Ellen Allhatatlan
Subject Re: MVCC and all that...
Date
Msg-id CAMLfE0PkJYEWS0Hu_+M18rAJx9tzHEUisC3+vruEq_xCbNgTYQ@mail.gmail.com
Whole thread Raw
In response to Re: MVCC and all that...  (Justin <zzzzz.graf@gmail.com>)
Responses Re: MVCC and all that...
List pgsql-general
>> AIUI, Michael Stonebraker suggested that the process model
>> would/should be "upgraded" to a threaded one at some point in the
>> system's developement?


> I am going to need a source on this.  Process vs Threads: pro and cons are very well documented and proven today.

Ask, and it will be given to you;
seek, and you will find;
knock, and it will be opened to you!
Matthew 7:7

From here: https://dsf.berkeley.edu/papers/ERL-M85-95.pdf (bottom of page 13) -

5.1. Process Structure - Stonebraker expresses regret that the project
doesn't have the resources to use the "server model" - i.e. threading:

"The server model has many performance benefits (e.g., sharing of open
file descriptors and buffers and optimized task switching and message
sending overhead) in a large machine environment in which high
performance is critical. However, this approach requires that a fairly
complete special-purpose operating system be built. In constrast, the
process-per-user model is simpler to implement but will not perform as
well on most conventional operating systems. We decided after much
soul searching to implement POSTGRES using a process-per-user model
architecture because of our limited programming esources. POSTGRES is
an ambitious undertaking and we believe the additional complexity
introduced by the server architecture was not worth the additional
risk of not getting the system running. Our current plan then is to
implement POSTGRES as a process-per-user model on Unix 4.3 BSD"

No date, but the latest date in the references was 1986.

and from here https://dsf.berkeley.edu/papers/ERL-M90-34.pdf (middle
of page 29):

"A last aspect of our design concerns the operating system process
structure. Currently, POSTGRES runs as one process for each active
user. This was done as an expedient to get a system operational as
quickly as possible. We plan on converting POSTGRES to use lightweight
processes available in the operating systems we are using. These
include PRESTO for the Sequent Symmetry and threads in Version 4 of
Sun/OS."

Again, no date, but this time the latest reference was from 1989 -
(threading advancing?).

The use of "because of our limited programming esources" (1st ref.)
and "expedient" (2nd) clearly indicates to me that Stonebraker was
eyeing up the threading model and saw the per-process one as an
albatross around the neck of the project!


I hope my sources are sufficient?

--

El!



pgsql-general by date:

Previous
From: Ron Johnson
Date:
Subject: Re: MVCC and all that...
Next
From: Lorusso Domenico
Date:
Subject: [Announcement] ​A Bitemporal Solution for PostgreSQL (Beta)