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 1rzCb0-002Snq-FD for pgsql-hackers@arkaria.postgresql.org; Tue, 23 Apr 2024 09:37:51 +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 1rzCay-007Uqj-6K for pgsql-hackers@arkaria.postgresql.org; Tue, 23 Apr 2024 09:37:48 +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 1rzCax-007Uqb-Pf for pgsql-hackers@lists.postgresql.org; Tue, 23 Apr 2024 09:37:47 +0000 Received: from lahtoruutu.iki.fi ([185.185.170.37]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rzCas-002V1S-NQ for pgsql-hackers@lists.postgresql.org; Tue, 23 Apr 2024 09:37:47 +0000 Received: from [192.168.1.115] (dsl-hkibng22-54f8db-125.dhcp.inet.fi [84.248.219.125]) (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 lahtoruutu.iki.fi (Postfix) with ESMTPSA id 4VNxqT0JjVz49Pys; Tue, 23 Apr 2024 12:37:40 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=lahtoruutu; t=1713865061; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=P6X/3w1Vv4G/taoCnEdS2OvWuF7DXZMgRDfm/JMYBuw=; b=pwumxF1l3wx4r+xyoo1FGyUsA7PyXGmEJwpbU5qYJyRBM5jOKXTzeiFJS1hg5YZgCqA7mZ HX5FaepwsSbbwG10N7y19Nkdwb3k4qe0/LGjjxhHBiKmCPW7yt/tnQKnJitO95r0e5yKob OIXO72v3msOsP5LMaShRAVb31WDOvojQamP/5ZO0MTXt1eMVNxz5sG7KN610s8JHBsi5s6 3wLJZ0sD9KbZkzgy/6wKlctAsf7kDLSup5CQ2Zn+jCbs4q32yqbNFqONmtQJ4ywLi0/CJH fasXkDy+OVGjm1KmJAoiKTL34AVHBaEMGr1LVP79PMh69hEQ40ggMRtWfn8STw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=lahtoruutu; t=1713865061; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=P6X/3w1Vv4G/taoCnEdS2OvWuF7DXZMgRDfm/JMYBuw=; b=Hqf+bX8Fzj1jj1pFn9Ctx/jSznXoiYSfRE3Sy/pBM2hKPvJ1xCa+/uhTiWgQ0ca5tRKsHa 43dLt81wai2e/5fFoQrljQKdkgkbP7c4hU+zN2j734m4WW003XDLe9GuGh5zjg+bnOw1mR j07PMTTqlDtVn2A9ZaT9AdGn9DeQi8LoKqrJ1jg0+7XY7naH08PMa44K8p1/kxP1se+Lxp 5rOv+iovff8gRr3EZMhEjVttkRX+OvJExvmLfbuqbE6+wTPHUB4KyInRrZVxXJXUtgniMH 1d4FLeVE+b0oL+L4Mk7XKyCsGDBGraQXGmCHYhmrsg/RTjOMbWV8HtPBfxp62w== ARC-Authentication-Results: i=1; ORIGINATING; auth=pass smtp.auth=hlinnaka smtp.mailfrom=hlinnaka@iki.fi ARC-Seal: i=1; s=lahtoruutu; d=iki.fi; t=1713865061; a=rsa-sha256; cv=none; b=cq/xoh5fcOS8egfqS3tSg9HmuqDDTUmqoVSLVQMywoy2yUqWJy3PKk2vn5aXlgI+i1rO7J 8IJ0UdU5itF4jpxDIaRonqM2DoXDjLi6vSj+P8sdAdlTWiKIsPizyAYVOfSv+owAhqeOzx P0dSrh7cThknFVjoo1PUz+soVCaiQoXud0IZUD5yhs/dC8qYlTtod88iVyY5e+LA18u9Vb VwbNiqgonUX6b0kDtbuiAE8rzuKzE30XlaNsbd4OuOVgQWhwT+ydzt4dZRj4ab+WPOgkN8 EOyVTAm9+9tqMhg6Zd6ocqPc7JzTRKX6N3gH1UMfb/fF7omEOgaQgcKaCEuUPQ== Message-ID: Date: Tue, 23 Apr 2024 12:37:40 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: POC: make mxidoff 64 bits To: Maxim Orlov , Postgres hackers References: 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 23/04/2024 11:23, Maxim Orlov wrote: > PROPOSAL > Make multixact offsets 64 bit. +1, this is a good next step and useful regardless of 64-bit XIDs. > @@ -156,7 +148,7 @@ > ((uint32) ((0xFFFFFFFF % MULTIXACT_MEMBERS_PER_PAGE) + 1)) > > /* page in which a member is to be found */ > -#define MXOffsetToMemberPage(xid) ((xid) / (TransactionId) MULTIXACT_MEMBERS_PER_PAGE) > +#define MXOffsetToMemberPage(xid) ((xid) / (MultiXactOffset) MULTIXACT_MEMBERS_PER_PAGE) > #define MXOffsetToMemberSegment(xid) (MXOffsetToMemberPage(xid) / SLRU_PAGES_PER_SEGMENT) > > /* Location (byte offset within page) of flag word for a given member */ This is really a bug fix. It didn't matter when TransactionId and MultiXactOffset were both typedefs of uint32, but it was always wrong. The argument name 'xid' is also misleading. I think there are some more like that, MXOffsetToFlagsBitShift for example. -- Heikki Linnakangas Neon (https://neon.tech)