pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Chao Li <li.evan.chao@gmail.com>
To: Yura Sokolov <y.sokolov@postgrespro.ru>
Cc: pgsql-hackers@lists.postgresql.org <pgsql-hackers@lists.postgresql.org>
Cc: Heikki Linnakangas <hlinnaka@iki.fi>
Cc: Andres Freund <andres@anarazel.de>
Cc: Sami Imseih <samimseih@gmail.com>
Subject: Re: Fix bug in multixact Oldest*MXactId initialization and access
Date: Thu, 26 Feb 2026 10:21:10 +0800
Message-ID: <C991344D-F38A-4EEC-903A-72B52FF887FA@gmail.com> (raw)
In-Reply-To: <c3eaaac1-d244-4e4d-b5d7-06c284108eac@postgrespro.ru>
References: <7acc94b0-ea82-4657-b1b0-77842cb7a60c@postgrespro.ru>
	<93F0BD0A-0B8B-4592-9D4B-53F405A86F6A@gmail.com>
	<c3eaaac1-d244-4e4d-b5d7-06c284108eac@postgrespro.ru>



> On Feb 25, 2026, at 23:16, Yura Sokolov <y.sokolov@postgrespro.ru> wrote:
> 
> Good day.
> 
> Chao Li and Sami Imseih, thank you for looking at.
> 
> After thinking a bit, I've decided to make sizes of arrays precise:
> - OldestMemberMXactId's size remains MaxBackends + max_prepared_xacts.
>  Instead of changing its size, procno is now adjusted to not include
> auxiliary procs.
> - OldestVisibleMXactId contains only MaxBackends elemenents now.
>  It is used only for real backends and not prepared transactions.
> 
> All accesses are validated with asserts certainly.
> 
> I believe, index transformation in access of OldestMemberMXactId will not
> cost much since all this operations are quite rare.
> In the loops arrays are accessed directly since limiting loop index is enough.
> 
> -- 
> regards
> Yura Sokolov aka funny-falcon<v3-0001-Fix-multixacts-OldestMemberMXactId-and-OldestVisi.patch>

Actually, while I reviewing v1, I was thinking over the same way as v3, as the NUM_AUXILIARY_PROCS portions in OldestMemberMXactId and OldestVisibleMXactId arrays are not used at all. I didn’t raise the idea because that given these code are in hot paths, I wasn't sure if the complexity was worth the shared memory optimization. It’s a classic trade-off, and I’m curious to see which direction the senior committers prefer.

However, I agree that the new helper function names in v3 are a significant improvement over v1.

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/









view thread (31+ messages)  latest in thread

Message-ID: <C991344D-F38A-4EEC-903A-72B52FF887FA@gmail.com>
Permalink:  ../C991344D-F38A-4EEC-903A-72B52FF887FA@gmail.com/
Also on:    postgresql.org/message-id/C991344D-F38A-4EEC-903A-72B52FF887FA@gmail.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: li.evan.chao@gmail.com, y.sokolov@postgrespro.ru, pgsql-hackers@lists.postgresql.org, hlinnaka@iki.fi, andres@anarazel.de, samimseih@gmail.com
  Subject: Re: Fix bug in multixact Oldest*MXactId initialization and access
  In-Reply-To: <C991344D-F38A-4EEC-903A-72B52FF887FA@gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox