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 1uw2bC-005Hql-PX for pgsql-general@arkaria.postgresql.org; Tue, 09 Sep 2025 17:57:47 +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 1uw2bB-00DivK-UG for pgsql-general@arkaria.postgresql.org; Tue, 09 Sep 2025 17:57:46 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uw2bB-00Div1-JX for pgsql-general@lists.postgresql.org; Tue, 09 Sep 2025 17:57:46 +0000 Received: from mail-ej1-x636.google.com ([2a00:1450:4864:20::636]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uw2bA-001WDm-0z for pgsql-general@postgresql.org; Tue, 09 Sep 2025 17:57:45 +0000 Received: by mail-ej1-x636.google.com with SMTP id a640c23a62f3a-b046fc9f359so1056145566b.0 for ; Tue, 09 Sep 2025 10:57:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1757440662; x=1758045462; darn=postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=qBYHpodTVkwKD9cbjrGGAYHgj/KyA4WAHv/rZ2wXLdI=; b=lbRH3+y9Y3YZy1PdKRykVf86O0N8wwbW2lnyJMvIERPYjwqhtzAgbtdxIj5BZhFPQL A1A/+eUl68OfqXKPCy9wNMiOOfYX4Bgq06o6/rN3OsS4xQQx6QQwqTlQh3xGsGtbwNok 5MUb52MLbJMXI+itsLIFyAa6MVLtEVZkh6Qd9gOUP0N5q4A+MtvYUqXaTznarR8hgtUJ RvXvH8hN2y+c2kwgxAoqfNbgu3AqRRRv1ZsDOFPVYxR7giygMy4BfLqI8MdAo/PNmyZc dE950jczO58JcK+EcnXxNhZy2g0L8gmqnh4/IJ9RhFmkOlJnhP5pfe4B54oAiMhgIZOx dUjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757440662; x=1758045462; h=content-transfer-encoding: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=qBYHpodTVkwKD9cbjrGGAYHgj/KyA4WAHv/rZ2wXLdI=; b=ivSbj2i6QxqDCww1gqzddpaDFPInpod8naPvlWt1o8gOhIanMdyjpHs7tmGhBCc1wf pl8ZNpJhtBTMR/62A/tE3HgLypsTlAzXI2ybhiBQg+7uJXUgBDa2mgGuGAhNvMmY/e0n If5OtcWCR9deouTFbMk8owIPPkiEkhBhZZHnl+0VpnF88g8Z+hyG5/Z8bqKC6YzBnZNc HyJ4mi6Zz4Qpn2PdOTw1C1HPiZm/Z66ip+FU7aagQPvsaV89bnDkzt0PFwuvfYJaWD55 go0FMahs7pR7Lmn8TAMBWolgqohQLrhr29p0xhK1GKLqeB5gL23zeyin2F5yGf13aRZR 3tCA== X-Gm-Message-State: AOJu0YwNeg/dBtigSuqho8UEnd9mNjd9PSCPynN/40FGwvH6XzUSnSYP R2sYSHciJyrOMrYWiO3nkPqTDNNAokSMTcc2gHUtuJt70w8M9Q5Tb758IapFN9PDnGGsJole+3w GlfWfLLfyqeEnFAxIpjR2sAD+oRz3q+st4vm6 X-Gm-Gg: ASbGncukmt1ZML8gQttYN66AayPVmvx8L7wnU+wwcGjSErhgpSWO0rcmLna7KBGOaGa Dj1spCElLPYwtdyNE+3lrW1hd10SwRpclbXiFUwULV6n6zCP6vPefV6jLzagzhoFf2Ouc97CQHE 5nT5RvjcZo+nspGAYBuC47BSqnHxFY2YTp34go4vuCLdu6r1NyYtDx6q6Jek0tdfgH1ewTqDbrq sll/H4= X-Google-Smtp-Source: AGHT+IEdoRfY9xa4KV5yznVtA5lvegjhT8KQcCQs+XAAvoqXCMFcTmTrN0fOgrl2qRgj6zx5h6C7K7z+UjyN2E29Lio= X-Received: by 2002:a17:906:f58d:b0:afe:bebc:1332 with SMTP id a640c23a62f3a-b04b1408175mr1275592466b.18.1757440661751; Tue, 09 Sep 2025 10:57:41 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Ellen Allhatatlan Date: Tue, 9 Sep 2025 18:57:30 +0100 X-Gm-Features: AS18NWBnAQn7Tr567hNoXWYUMHXSQ8HlnxSUWwmdrFo6iaK4au7rZExkDpL-MeQ Message-ID: Subject: Re: MVCC and all that... To: Merlin Moncure Cc: pgsql-general Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk > Note: your link is wrong, corrected here: Extra hyphen - sorry about and thanks for pointing it out! > What the article is driving at is that postgres does not use rollback log= s to handle updated records in the MVCC implementation. There are absolute= ly performance tradeoffs in that decision and, if you do a lot of developme= nt against postgresql, those tradeoffs should influence how you design data= bases. The author then cherry picked the 'worst case' case, large unconstr= ained updates. Hmm... I was wondering about that - even though he stressed that there was (paraphrasing) no right or wrong - just different design decisions! > 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). OK - so, I was wrong in my original assumption that somehow (and it wasn't simply because of the phraseology - sweep vs vacuum) I thought that PG and FB had a similar MVCC implementation vs. Oracle and MySQL (InnoDB) (and OrioleDB). I'll do a deep dive into their docco and see what they actually do! I'm actually very interested in the benchmarking side of database technology - but I do know the old adage - there are lies, damned lies, statistics and *_then_* there are database benchmarks (as seen with the link I posted!). Thanks for your input. Best regards, El! > merlin