Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1q7mNy-0002nj-FE for pgsql-hackers@arkaria.postgresql.org; Sat, 10 Jun 2023 00:23:18 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1q7mNw-00070g-7I for pgsql-hackers@arkaria.postgresql.org; Sat, 10 Jun 2023 00:23:16 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1q7mNv-00070P-Tx for pgsql-hackers@lists.postgresql.org; Sat, 10 Jun 2023 00:23:15 +0000 Received: from momjian.us ([72.94.173.45]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1q7mNt-001AMw-Cw for pgsql-hackers@lists.postgresql.org; Sat, 10 Jun 2023 00:23:14 +0000 Received: from bruce by momjian.us with local (Exim 4.94.2) (envelope-from ) id 1q7mNo-0012cX-HX; Fri, 09 Jun 2023 20:23:08 -0400 Date: Fri, 9 Jun 2023 20:23:08 -0400 From: Bruce Momjian To: Thomas Munro Cc: Jeremy Schneider , pgsql-hackers@lists.postgresql.org, Thomas Kellerer , Tomas Vondra , Heikki Linnakangas , Tom Lane Subject: Re: Let's make PostgreSQL multi-threaded Message-ID: References: <31cc6df9-53fe-3cd9-af5b-ac0d801163f4@iki.fi> <4178104.1685978307@sss.pgh.pa.us> <4ce6c0f8-e8a4-1672-93fd-49d3fa975ee5@iki.fi> <29fe5f48-a6ed-d896-45ed-16b5904353a9@enterprisedb.com> <41c1e20d-f179-f87e-5929-80ca9ee0c105@gmx.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Thu, Jun 8, 2023 at 11:37:00AM +1200, Thomas Munro wrote: > It's old, but this describes the 4 main models and which well known > RDBMSes use them in section 2.3: > > https://dsf.berkeley.edu/papers/fntdb07-architecture.pdf > > TL;DR DB2 is the winner, it can do process-per-connection, > thread-per-connection, process-pool or thread-pool. > > I understand this thread to be about thread-per-connection (= backend, > session, socket) for now. I am quite confused that few people seem to care about which model, processes or threads, is better for Oracle, and how having both methods available can be a reasonable solution to maintain. Someone suggested they abstracted the differences so the maintenance burden was minor, but that seems very hard to me. Did these vendors start with processes, add threads, and then find that threads had downsides so they had to keep both? -- Bruce Momjian https://momjian.us EDB https://enterprisedb.com Only you can decide what is important to you.