Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uwfdb-0065Yn-0Y for pgsql-general@arkaria.postgresql.org; Thu, 11 Sep 2025 11:38:51 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uwfdY-007ALY-Pk for pgsql-general@arkaria.postgresql.org; Thu, 11 Sep 2025 11:38:49 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uwfdY-007ALP-Ec for pgsql-general@lists.postgresql.org; Thu, 11 Sep 2025 11:38:48 +0000 Received: from mail-ed1-x52c.google.com ([2a00:1450:4864:20::52c]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uwfdU-000BHV-1f for pgsql-general@postgresql.org; Thu, 11 Sep 2025 11:38:48 +0000 Received: by mail-ed1-x52c.google.com with SMTP id 4fb4d7f45d1cf-622b4b14a75so1172111a12.1 for ; Thu, 11 Sep 2025 04:38:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1757590724; x=1758195524; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=IW+8EJYCUioY2AA4sXhlALyNCS2fcHUJL/OS7dFsuEg=; b=GHoaINq2h7NRuneWORU7a2dBon/RY6c0jXzDF3Jjhgbtx7sZ1riWGI3e+7mhXfjoTf ODUsi5oL+XgxEQW1+aweafDdW5gz9rVdESDirR5YDc0Au1dCU67K5hG448EUFxVjzsH5 zfV0y2LBi0/2toTpMF0/EAdvbalUqlgR6UZomG4+Qtn3kXqFxR5MPKqnixc4QKr5QzGo wPcflSEyfnxdUH6IWjh0nYBG7b8KvM9HLBIgS430BGcgykWOF7c7ZhYUEljhafYNSKRw 9J7Jgcdf8AWYvkLTj/6uAlnxrZ6tKsh/HndNe8l0rm4qwO2xNBfCqrdvsBMMIuoOKrrW 4Wig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757590724; x=1758195524; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=IW+8EJYCUioY2AA4sXhlALyNCS2fcHUJL/OS7dFsuEg=; b=i91pfr0TBYaWeH30SN+DOXUn/143wtufzRQwtyPXkp0V/fEY/VROp/UDieFSDzG6eR hCk6/+3BTjgc2zRwzLol77enH58l+nU4SNB84LiCEiUB4FHXCCgIlvkxcw/+AqZngy8f byvtv+CjJH43qSk7BGdU9IrVVJt9ILD/1bgzH9QWUw2+uSk/twitg3gtrKO2OB9Kvkou iFnaNVB8OSYDaOY96g9EmNTcrgGc6YNLlnNatRXxv6tSg0h/Dmt9VuWbq69nR1N/PJQv DMpNdObMe4AmjdYu65h+O2V8hEDJEaoz+4xS7zBRqHqKICMcs9Rt/llJLGIidckVDrG1 SQag== X-Forwarded-Encrypted: i=1; AJvYcCXAFCg0Usgic5O5MF6v1B2AGSl1d6RX/F1yv2KJ0uY/LbMzntd5vk5rXP4mQ+5jXtEkIonBH+5H4+LXpw4j@postgresql.org X-Gm-Message-State: AOJu0YwdwwUANrJMVz5WvHDFb9xC0I+mdNZDpUAsN4Fpug8pJ41n6cwo MWxFpBmtw7J6nfzPN6jqaA/6pPRGKcfvrPLvSJJ1jt8IObTMAtYxaGMkVfb/G52BR3mVyxo+FLL BQY+eIYzlUDnH3TURuyBXdWpdF/OMwwn0vU7u X-Gm-Gg: ASbGncvVv9uQy7/8hWXMQRt5k4r4I91LttmHFgJOPZmFG/N644DgIgoE2B4FRuMWVwt R9NcTxJNXB7LWEuFJ8rD6DygyAmPd89hjExGvfG6ZC60XonDTxWm+IUgF/adbBFFsyJoglbtPer oxu55n20VYgzZRrE/G69+pM6la5Ydlv5WNfNgBoZSYl3NmiUckraErYs3iYmHKqs2eDRt2imvnf yqknxhRsBjEczAgbw== X-Google-Smtp-Source: AGHT+IF25IWIB7Q2hyNrRAjKJT62+prOMVPtd333tiLIwcozwQDVM4E+2SxzhiAgEpOqDSRzvkYMGfP/pxG6DUO8GEY= X-Received: by 2002:a05:6402:3512:b0:61d:2d2b:76ad with SMTP id 4fb4d7f45d1cf-6237c32c180mr17448563a12.14.1757590724155; Thu, 11 Sep 2025 04:38:44 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Ellen Allhatatlan Date: Thu, 11 Sep 2025 12:38:32 +0100 X-Gm-Features: AS18NWBe_ieFAb4XWAlXlK_klS2qb1-7D4oVVcrhTm24_gHphIdqPWiyAZKlUCo Message-ID: Subject: Re: MVCC and all that... To: Justin Cc: Merlin Moncure , pgsql-general Content-Type: text/plain; charset="UTF-8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk >> 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!