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 1uw1sC-0057uw-Lt for pgsql-general@arkaria.postgresql.org; Tue, 09 Sep 2025 17:11:17 +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 1uw1sA-00DSKg-9R for pgsql-general@arkaria.postgresql.org; Tue, 09 Sep 2025 17:11:14 +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 1uw1s9-00DSKY-V4 for pgsql-general@lists.postgresql.org; Tue, 09 Sep 2025 17:11:14 +0000 Received: from mail-lf1-x136.google.com ([2a00:1450:4864:20::136]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uw1s3-001Yla-35 for pgsql-general@postgresql.org; Tue, 09 Sep 2025 17:11:13 +0000 Received: by mail-lf1-x136.google.com with SMTP id 2adb3069b0e04-560888dc903so3882802e87.2 for ; Tue, 09 Sep 2025 10:11:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1757437863; x=1758042663; 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=QZHvP4SCEPnrNk65OJZ/6qkD6Q0ARAOriRepOT/Ap2w=; b=E5CievbqfSHdwAxq6uaXPAMAURipfFNRPMtG0p0a5ZdiIiCtS/1u0nzcztku2HEzYv Caho58ByDxBfB2YBRZMN+KHYUlETGe/41uyEilPuwhZBaL/yMvIK1QVh2ZvaadAzaFLh 4epo02Nst29TRhR0o673WSOdJx/RECkB/kTbEdpH83GW/SxwWgO9W/j2Lag5S1jmrHlY wo+INplNAgkAkLMuajar6+3FInFKLvZGSnmQtEh/QmdWlm4Eb8SsC/6G6LiPvSqPjJ5H u6+I3RYhwkJX2prsoxQaOQrSXNdoBO/7LlDOeWYY5Ss96Nn+lJ4ASmbQjTQlvNWjpFrX sYnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757437863; x=1758042663; 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=QZHvP4SCEPnrNk65OJZ/6qkD6Q0ARAOriRepOT/Ap2w=; b=nHp2PeBHkjrp444cAKTnRCOW6/COfvYAzo6dIakCAL8/CcjsZW4TUkai1wHrDZHe7W ep9won5V/bJKz1gG9Rm0GO0x2cwN0QcJogXSVmXSZHp68/HGvwFN2s3NZKOMYVLgdAs1 TRI5nUhA50Pp39hLq5n1eRd9HJEgLMHbEB6dju7l38UrQcQ7BK2uqXvFAYrYCScK6SmG D90MNCQF6nFXtjJwIQKDYXnNfgGnBOHMdj8hbT1LcDDJDo/ix+ISPqqWphPFaoMwjsX5 stzDZANlGOjxrOas8veXWzS/yd9j17Jb3Q33PRXuCUdZQ9k09XzIHMZSisTqFA0FurZq Y5lw== X-Gm-Message-State: AOJu0YzclOEKop9TBWcV5QJURDwIrmXRO6UZsy76X+syxX/AuVC0Brqy Os8KL+4xUAsf85xwDMuICWfDRp2Fz+wDxRScKnThLIrE9JTaItEvKtbB6lsnm8k7IG3O4xUhcG7 bXb2/MPkf3JWRzoPNrV/5VTBOLC5BKGU= X-Gm-Gg: ASbGncvhh1+YRIq5Ii/Wjr6PXZ1dDMshCtZAeTbqgvlVmxmEcd/lxLzIQPz3+3Dczof ocw6lWLlr1lfy//4k776zvZa+aGl/BGcrsLhNKn8PqcObSuuTzKJxzbe7OnPzY/DhC7Nwqb8QEO VfOMnVbisbG6PqKgZ9mpc8w4zECQgT4bfylpmK5juojGvRckecBA9K+idHNChwOczL6MmPvSCc8 acqUwdq7Yd46A6ZUl91em26BoOJI0jjfCkg6BOmLfQbWkUTyfdWtHYjwmUTr3YeOGOoASsUGUIK vhPCoq9r X-Google-Smtp-Source: AGHT+IHant9nPUk5ruTZ3Id4R4cGSsbn4bnKLPFmki/88miV5JZ5xPp6Em7elznjkEn5SYiAmwXoQ/ZQLXmXE0xiy4c= X-Received: by 2002:a05:6512:1594:b0:55f:43ba:93f8 with SMTP id 2adb3069b0e04-56261cbe4d9mr4681001e87.17.1757437862463; Tue, 09 Sep 2025 10:11:02 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Merlin Moncure Date: Tue, 9 Sep 2025 11:10:49 -0600 X-Gm-Features: AS18NWDQx20FOl87pzcjxIj6rALrGXB_NvgGqhdKTomihAO8VaIgSM4DDAksI_o Message-ID: Subject: Re: MVCC and all that... To: Ellen Allhatatlan Cc: pgsql-general Content-Type: multipart/alternative; boundary="00000000000081ce56063e616376" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000081ce56063e616376 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Sep 9, 2025 at 10:27=E2=80=AFAM Ellen Allhatatlan < ellenallhatatlan@gmail.com> wrote: > Reading this article > > https://firebirdsql.org/migrating-from-firebird-to-postgresql-what-can-go= -wrong- > I'm a bit confused (not the first time...) > > In part 1. Differences in MVCC implementation - he's saying that "It=E2= =80=99s > not that the PostgreSQL implementation of MVCC is bad =E2=80=94 it=E2=80= =99s just > fundamentally different" > > But, I thought Firebird had SWEEP instead of VACUUM (how much closer > can the words be?) and that FB's implementation of MVCC was > essentially similar. > Is this correct? Then why is he pointing out the performance diffs > because of MVCC? I'm puzzled! Note: your link is wrong, corrected here: https://firebirdsql.org/migrating-from-firebird-to-postgresql-what-can-go-w= rong What the article is driving at is that postgres does not use rollback logs to handle updated records in the MVCC implementation. There are absolutely performance tradeoffs in that decision and, if you do a lot of development against postgresql, those tradeoffs should influence how you design databases. The author then cherry picked the 'worst case' case, large unconstrained updates. The article is a bit of a cheezy dig on postgres. Another example is the complaint about autonomous transactions with another cherry picked example to make postgres look back. In the real world, these would not matter much, and can be worked around (if you want to see my take on how to deal with it, see here: https://github.com/leaselock/pgasync). merlin --00000000000081ce56063e616376 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Tue, Sep 9, 2025 at 1= 0:27=E2=80=AFAM Ellen Allhatatlan <ellenallhatatlan@gmail.com> wrote:
<= div class=3D"gmail_quote">
Reading this article
https://firebirdsql.= org/migrating-from-firebird-to-postgresql-what-can-go-wrong-
I'm a bit confused (not the first time...)

In part 1. Differences in MVCC implementation - he's saying that "= It=E2=80=99s
not that the PostgreSQL implementation of MVCC is bad=E2=80=89=E2=80=94=E2= =80=89it=E2=80=99s just
fundamentally different"

But, I thought Firebird had SWEEP instead of VACUUM (how much closer
can the words be?) and that FB's implementation of MVCC was
essentially similar.
Is this correct? Then why is he pointing out the performance diffs
because of MVCC? I'm puzzled!

Note: you= r link is wrong, corrected here:=C2=A0


What the article is driving at is that postgres does not use rollback lo= gs to handle updated records in the MVCC implementation.=C2=A0 There are ab= solutely performance tradeoffs in that decision and, if you do a lot of dev= elopment against postgresql, those tradeoffs should influence how you desig= n databases.=C2=A0 The author then cherry picked the 'worst case' c= ase, large unconstrained updates.

The article is a= bit of a cheezy dig on postgres.=C2=A0 Another example is the complaint ab= out autonomous transactions with another cherry picked example to make post= gres look back. In the real world, these would not matter much, and can be = worked around (if you want to see my take on how to deal with it, see here:= =C2=A0https://github.com/l= easelock/pgasync).

merlin
--00000000000081ce56063e616376--