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.96) (envelope-from ) id 1vOHms-000sRr-14 for pgsql-hackers@arkaria.postgresql.org; Wed, 26 Nov 2025 15:50:34 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vOHmp-0000Fj-1W for pgsql-hackers@arkaria.postgresql.org; Wed, 26 Nov 2025 15:50:31 +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.96) (envelope-from ) id 1vOHmp-0000FO-0C for pgsql-hackers@lists.postgresql.org; Wed, 26 Nov 2025 15:50:31 +0000 Received: from meesny.iki.fi ([2001:67c:2b0:1c1::201]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vOHmn-001dFf-1Z for pgsql-hackers@lists.postgresql.org; Wed, 26 Nov 2025 15:50:31 +0000 Received: from [10.0.2.15] (unknown [130.41.208.2]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: hlinnaka) by meesny.iki.fi (Postfix) with ESMTPSA id 4dGkXy3jh0zyNR; Wed, 26 Nov 2025 17:50:26 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=meesny; t=1764172227; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=rX035rVtyowtOOxTUKTXwOMtSho3QwwKHFnvxBrxc+g=; b=AQkqHvD0QjzxhquZVVaYcjofObrEqRWRDV7ZLwWU5njk0GUXXtyDiminO4Hdskow9kUaLS PgPJqHfPPrVnOzIoGTCRK3X8O/8buu6DvTQq65+6IeQeB09iPPHnRQg+F1oSJjq5d09l+x y7vHMFWVHM5qz7fP1oBnWxg0mgJk9yg= ARC-Seal: i=1; a=rsa-sha256; d=iki.fi; s=meesny; cv=none; t=1764172227; b=HighGnnigAtYqDyxui69UO053tBZWusz/Xgfj7LSE9YekDlm9N0F8UITRsiyzZNcBhqFLJ S+tbMlZmWok08BXoksfWAjHOBbFmU6ew5CY9mSpV4N21xf57xWoMUBxyz144JCFt9BVSrd ebZUop83MC7YLriwLmPQjtBSsMoo2Z4= ARC-Authentication-Results: i=1; ORIGINATING; auth=pass smtp.auth=hlinnaka smtp.mailfrom=hlinnaka@iki.fi ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=meesny; t=1764172227; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=rX035rVtyowtOOxTUKTXwOMtSho3QwwKHFnvxBrxc+g=; b=B19V/r1mqZ8FSEfk+V0BUXBG91K974cyzlXmTxns6wX69d4hQNddRJRHUb72HNN7xbsiWv nZrf4+hoqkd90GPSmjoyrC9aOt3sw7RQgnlVDfEP67Po6DEZBoQxyI80lQgs8jwYEOocXS oKpTB2MDQlqJun0umflkilyHiSiHLXM= Message-ID: <2df82550-d2e0-47bc-804e-d7cf363f0db0@iki.fi> Date: Wed, 26 Nov 2025 17:50:25 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: POC: make mxidoff 64 bits To: Maxim Orlov Cc: Alvaro Herrera , Alexander Korotkov , wenhui qiu , Postgres hackers , Ashutosh Bapat References: <2bc58592-9d74-4af0-bdd1-1a88e8683f7c@iki.fi> <36531c0e-292c-409d-bbc7-a252cf6e910a@iki.fi> <54aa8f65-f0e4-4464-b543-e0399c1cab1e@iki.fi> <4a9dda70-0af7-41a4-9636-b168f2fc48ef@iki.fi> <46cc45e9-fddd-44bc-bcb3-96889aafd921@iki.fi> <6c298bc4-7029-4c1d-bf16-3e094842ce32@iki.fi> <9ee6324a-44fc-42fb-bf8e-7c3b53395588@iki.fi> Content-Language: en-US From: Heikki Linnakangas In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On 26/11/2025 17:23, Maxim Orlov wrote: > On Tue, 25 Nov 2025 at 13:07, Heikki Linnakangas > wrote: >> GetOldMultiXactIdSingleMember() currently asserts that the offset is >> never zero, but it should try to do something sensible in that case >> instead of just failing. > > Correct me if I'm wrong, but we added the assertion that offsets are > never 0, based on the idea that case #2 will never take place during an > update. If this isn't the case, this assertion could be removed. > The rest of the function appears to work correctly. > > I even think that, as an experiment, we could randomly reset some of the > offsets to zero and nothing would happen, except that some data would > be lost. +1 > The most sensible thing we can do is give the user a warning, right? > Something like, "During the update, we encountered some weird offset > that shouldn't have been there, but there's nothing we can do about it, > just take note." Yep, makes sense. - Heikki