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 1vHOvx-006Gym-8Y for pgsql-hackers@arkaria.postgresql.org; Fri, 07 Nov 2025 16:03:29 +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 1vHOvv-00FPIA-PJ for pgsql-hackers@arkaria.postgresql.org; Fri, 07 Nov 2025 16:03:27 +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 1vHOvv-00FPI2-C5 for pgsql-hackers@lists.postgresql.org; Fri, 07 Nov 2025 16:03:27 +0000 Received: from mail-qt1-x831.google.com ([2607:f8b0:4864:20::831]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vHOvs-006W9Z-28 for pgsql-hackers@lists.postgresql.org; Fri, 07 Nov 2025 16:03:27 +0000 Received: by mail-qt1-x831.google.com with SMTP id d75a77b69052e-4ea0d71f607so958151cf.0 for ; Fri, 07 Nov 2025 08:03:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1762531403; x=1763136203; darn=lists.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=dCmc7inttbjPpBC7vdQgGIqM/lS63ftdtQ0dS+sBmLg=; b=UHWmy3vA2Xem0CYGUBlnTAQv5MkkRCbM5P3Ln/dPlxogF29gI0rjJRSzmPXEaZ1U+d DBhKZ1igl6oHthpfD+XDzM5khyLvUtOcZs0GsrDf+RZ4ofHrNC1YidVr7d2hpN8Zy8sf bufs050MxduaGUHpuQESf6XxB+kyXS3j/OI2jo6OdHeLw0NSNtCBaQmzeNZ51u/Ud7d4 gc9v9IMdJzIDO3hsS4h4SnALZ9lEcnd7IvqtHhMENxOAWovmAm9KjxM0ec8Z01atbMxu mOy66Kyy2ARMmDgJbWEv6u3AcnihjNaeWBvSsLvogh92m6HwjdXZ+KuT3tElmJTrxygp sCrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762531403; x=1763136203; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=dCmc7inttbjPpBC7vdQgGIqM/lS63ftdtQ0dS+sBmLg=; b=TaUVnJ/7cC0bSosHojfaSDfcYI88YJeVx9KIISzxkphETQ0cqw7c4FdfxcRV6FHGok AWPy3EiDstSuCtjUWF2ZYj66rK6BuxSHcRloSIS2/Km9odFm9sJVUQcAFZ1neFqdUzCe sDQqNeq6Nofa13N/UuEfm9vdy/fRu/rAm1l6r0nCq/yy+TRRJApUEBj1fIjVCWUeuTE2 w11NL6TPo7ER6bSoJcSToeisU3HQB33vIbFhA7pflaapnh6IFoiL50m7QwxU73flNWxT 4EcHEbG+M7HlGC6ItbddS6XzjZcSIZkOLhu9t7PX3zzhO3cR6pGUgK3UEoSSZ15CIxLZ MjJw== X-Forwarded-Encrypted: i=1; AJvYcCUtDOSDiNINvFztcWI08v6zeRkR8RThQ5dRllfzKMwbpyWMLtsY5lcZ1MVu7l336SjypGFH3WthGXwLmkbi@lists.postgresql.org X-Gm-Message-State: AOJu0YyvqP1vRLFhnSy4cWNOisH1xhnYp4fnJXkxsAwbOQPSkGZXNj5P sPO05rc9jvl3MZVV+MvcmNxiUBly2F4kGNI1FuqXmPv9/SRsPWIO/uu7tj455hJzaKARY6aJDfn b5gtJushs1cywZbFh6S3Tpkrb03nH4iw= X-Gm-Gg: ASbGncu5VK0t0ihsVTRDQQp/QJw5H3bRrGwRpYTAxQPbovtDrnaPQDI5nY8UyesDz8d kYv7S31E1uJpp3F2Q3oUxHq4PzhMABTcIOebUYOd9xAuM0FYPqDI1zuNOQSYKuFqEqUM/kzqlEW +uOneAzrekmGEJKWPRREC61c9zqm8G2S7L3PLd5qQCXFSYGuvtEWqgH/pLU/yTFK/LnuhRzPiS8 zxCbxeB0Nsz96jfYaxI1Kbj9PgWPU1fnwTibvtnlHahn4XLVGFe5vfsfK72 X-Google-Smtp-Source: AGHT+IHaeTWPq9wO1KpIEA7gSG4PiPd1n1zeKcca62UdDh8TdMhjCVr3gYiLGS4K5jKMRd9MB3heQ7+NsXkTdloc2Tw= X-Received: by 2002:a05:622a:50f:b0:4ed:67c4:b7b9 with SMTP id d75a77b69052e-4ed9497ba00mr26912581cf.1.1762531403046; Fri, 07 Nov 2025 08:03:23 -0800 (PST) MIME-Version: 1.0 References: <0794857c-aaaf-4cd3-bd99-84c6155bb2f6@iki.fi> In-Reply-To: From: Maxim Orlov Date: Fri, 7 Nov 2025 19:03:11 +0300 X-Gm-Features: AWmQ_bnR4-jIeJc0hMjibYgDo0PCYj3Rq3MHZ6MP-KFX_2iXkfqNp-xszAf3-A0 Message-ID: Subject: Re: POC: make mxidoff 64 bits To: Heikki Linnakangas Cc: wenhui qiu , Alexander Korotkov , Ashutosh Bapat , Postgres hackers Content-Type: multipart/alternative; boundary="0000000000002f23160643035212" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000002f23160643035212 Content-Type: text/plain; charset="UTF-8" I noticed one minor issue after I had already sent the previous letter. --- a/src/backend/access/transam/multixact.c +++ b/src/backend/access/transam/multixact.c @@ -1034,7 +1034,7 @@ GetNewMultiXactId(int nmembers, MultiXactOffset *offset) if (nextOffset + nmembers < nextOffset) ereport(ERROR, (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), - "MultiXact members would wrap around")); + errmsg("MultiXact members would wrap around"))); *offset = nextOffset; $ $PGBINOLD/pg_controldata -D pgdata pg_control version number: 1800 Catalog version number: 202510221 ... Latest checkpoint's NextMultiXactId: 10000000 Latest checkpoint's NextMultiOffset: 999995050 Latest checkpoint's oldestXID: 748 ... I tried finding out how long it would take to convert a big number of segments. Unfortunately, I only have access to a very old machine right now. It took me 7 hours to generate this much data on my old Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz with 16 Gb of RAM. Here are my rough measurements: HDD $ sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches $ time pg_upgrade ... real 4m59.459s user 0m19.974s sys 0m13.640s SSD $ sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches $ time pg_upgrade ... real 4m52.958s user 0m19.826s sys 0m13.624s I aim to get access to more modern stuff and check it all out there. -- Best regards, Maxim Orlov. --0000000000002f23160643035212 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I noticed one minor issue after I had already sent th= e
previous letter.

--- a/src/backend/acc= ess/transam/multixact.c
+++ b/src/backend/access/transam/multixact.c
= @@ -1034,7 +1034,7 @@ GetNewMultiXactId(int nmembers, MultiXactOffset *offs= et)
=C2=A0 =C2=A0 if (nextOffset + nmembers < nextOffset)
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 ereport(ERROR,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
- =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"MultiXact members wou= ld wrap around"));
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0errmsg("MultiXact members would wrap around")));
=C2= =A0 =C2=A0 *offset =3D nextOffset;


= $ $PGBINOLD/pg_controldata -D pgdata
pg_control version number: =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A01800
Catalog version number: =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 202510221
...
Latest checkp= oint's NextMultiXactId: =C2=A010000000
Latest checkpoint's NextM= ultiOffset: =C2=A0999995050
Latest checkpoint's oldestXID: =C2=A0 = =C2=A0 =C2=A0 =C2=A0748
...

I tried finding out= how long it would take to convert a big number of
segments. Unfortunate= ly, I only have access to a very old machine right
now. It took me 7 hou= rs to generate this much data on my old
Intel(R) Core(TM) i5-6500 CPU @ = 3.20GHz with 16 Gb of RAM.

Here are my rough measurements:

HDD
$ sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_= caches
$ time pg_upgrade
...
real =C2=A0 =C2=A04m59.459s
user = =C2=A0 =C2=A00m19.974s
sys =C2=A0 =C2=A0 0m13.640s

SSD
$ sudo = sync && echo 3 | sudo tee /proc/sys/vm/drop_caches
$ time pg_upg= rade
...
real =C2=A0 =C2=A04m52.958s
user =C2=A0 =C2=A00m19.826ssys =C2=A0 =C2=A0 0m13.624s

I aim to get access = to more modern stuff and check it all out there.

--
Best regards,
Maxim Orlo= v.
--0000000000002f23160643035212--