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 1sTRnS-00GMQY-7c for pgsql-general@arkaria.postgresql.org; Mon, 15 Jul 2024 19:55:42 +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 1sTRnQ-00CuCj-Ks for pgsql-general@arkaria.postgresql.org; Mon, 15 Jul 2024 19:55:40 +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 1sTRnQ-00CuCb-Aw for pgsql-general@lists.postgresql.org; Mon, 15 Jul 2024 19:55:40 +0000 Received: from mail-ot1-x336.google.com ([2607:f8b0:4864:20::336]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sTRnJ-002I1E-V5 for pgsql-general@lists.postgresql.org; Mon, 15 Jul 2024 19:55:39 +0000 Received: by mail-ot1-x336.google.com with SMTP id 46e09a7af769-703ba2477bdso2333441a34.2 for ; Mon, 15 Jul 2024 12:55:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721073331; x=1721678131; darn=lists.postgresql.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=dwYWzkCkR8XEUUx26sefnha6hTF6gYFV5fAuFpdXVSI=; b=dNpNq201IsdVy9a+otiZr/J/4KibAt28DfkzYswjA08WQd7uuN+4J7Guh4JNcdACys JHdx4vFb1MiJviAWU6K7avQpVKieeLHzov4lq+tWq9AO8JocsuDk3JMAztqamBB/2Wvr V5hUVle8udSAS5uEM/yCGqpa5qcVnJu4K8ZZd8uTGCFbHus4nFASsD/u4SJjr7HPOBDn 5Oq8rca/1sALqhgKuJ+BTRXL9l2bgfJpYHR9UxIMM6rQ+2xomuR/z21JR6O/48zR85kc GU8FC73Cf0a2bB0bC/DbbheIz26PPF6O39aNIZl9ZWthv12W1RxnAAAqEuOKP+v3eNMG dplQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721073331; x=1721678131; h=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=dwYWzkCkR8XEUUx26sefnha6hTF6gYFV5fAuFpdXVSI=; b=kgEPpdSwnD6y8KjxgMIDnjkD27ACUk8MNUE9BJzR9vgsIRElMiMqtKIhJ7SCxqCayc nTEVCE6XenYcxscQcQh5ktB2ShzNURGHoSUvRhqcISkVIXmbc5PoetqJmVEGxlWn6bKh JUPNP3WbKWCioUenI7XjKA+okYBbfo+W02TV/+m3FAbsPaTEkKmtt2ELvyVvhLpdZ5GA Tcrvt0n7p9FWy5vrdmlyZEYBZ3KJEMWAEdr+GO8yxhyxrwnhUiUFxZ5Mwvdp01bebixj dBQXDN3Z9v7wMXd9EsSvSRZK6Bc3TaJbNdHpkCyD0gIVW9sDxx3oY/V/SGJoqxWCBYOT O1eA== X-Gm-Message-State: AOJu0Yy3xnbY97kCg1XRKZwJK6OEmfKwk7JpltXRFPujhXcGBY1htxMK wUpX38h0aWfAXi1Rx8+7nS/KrR44+h4IFCDbUrv2NslNx+mhMcRjUiQWSjM18q5s6pR/JrD8Tf2 zXNQr9ZNaAk0XoCUsJF88uHn/LYsdag== X-Google-Smtp-Source: AGHT+IFHUUi73l7B44KWInTuR2aN7kfOC8Z9tBUaHK34IAjij3TNN06un0WIryshh9QNUPD5GaGhAqX4jvIh9/MN7Rw= X-Received: by 2002:a05:6870:d69e:b0:254:cbaf:1216 with SMTP id 586e51a60fabf-25eae9ded17mr19364269fac.27.1721073331704; Mon, 15 Jul 2024 12:55:31 -0700 (PDT) MIME-Version: 1.0 References: <0BD5E273-8E2C-4EDD-AB13-37CC3309E30E@thebuild.com> In-Reply-To: <0BD5E273-8E2C-4EDD-AB13-37CC3309E30E@thebuild.com> From: Ron Johnson Date: Mon, 15 Jul 2024 15:55:19 -0400 Message-ID: Subject: Re: PostgreSQL Active-Active Clustering To: "pgsql-general@lists.postgresql.org" Content-Type: multipart/alternative; boundary="00000000000091a55e061d4e9c77" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000091a55e061d4e9c77 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Jul 15, 2024 at 3:28=E2=80=AFPM Christophe Pettus wrote: > > > On Jul 15, 2024, at 12:06, Sarkar, Subhadeep > wrote: > > > [snip] > > =E2=80=A2 In the Community edition of PostgreSQL is it possible to se= tup a > cluster where all the nodes are able to concurrently read-write the > underlying database image using NATIVE features (i.e. without using any > extensions or external components or usage of Kubernetes/Dockers). > [snip] > No product, either commercial or open-source, provides the last one > (read-write shared storage), although there are commercial products that > provide for a shared-storage model single-writer, multiple-reader model > (for example, Amazon Aurora). > This "lack of products" puzzles me, because DEC was doing this with VAX (then Alpha and Itanium) clusters 40 years ago via a Distributed Lock Manager integrated deep into VMS. Their Rdb and (CODASYL) DBMS products used those functions extensively. (In the late 1990s, they sold the DLM code to Oracle, which is where RAC comes from.) It was shared-disk, multiple-writer, because the DLM allowed for locking at the row level. Thus, a half dozen cluster nodes could hold write locks on different rows on the same data page. --00000000000091a55e061d4e9c77 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Mon, Jul 15, 2024 at 3:28=E2=80=AFPM C= hristophe Pettus <xof@thebuild.com> wrote:

> On Jul 15, 2024, at 12:06, Sarkar, Subhad= eep <
subha= deepsarkar@kpmg.com> wrote:
>
[snip]=C2=A0
>=C2=A0 =C2=A0=E2=80=A2 In the Community edition of PostgreSQL is it pos= sible to setup=C2=A0 a cluster where all the nodes are able to concurrently= read-write the underlying database image using NATIVE features (i.e. witho= ut using any extensions or external components or usage of Kubernetes/Docke= rs).
[snip]=C2=A0
No product, either commercial or open-source, provides the last one (read-w= rite shared storage), although there are commercial products that provide f= or a shared-storage model single-writer, multiple-reader model (for example= , Amazon Aurora).

This "lack of pr= oducts" puzzles me, because DEC was doing this with VAX (then Alpha an= d Itanium) clusters 40 years ago via a Distributed Lock Manager integrated = deep into VMS.=C2=A0 Their Rdb and (CODASYL) DBMS products used those funct= ions extensively.

(In the late 1990s, they sold th= e DLM code to Oracle, which is where RAC comes from.)

<= div>It was shared-disk, multiple-writer, because the DLM allowed for lockin= g at the row level.=C2=A0 Thus, a half dozen cluster nodes could hold write= locks on different rows on the same data page.

<= /div> --00000000000091a55e061d4e9c77--