Re: IPC/MultixactCreation on the Standby server
Álvaro Herrera <alvherre@kurilemu.de>
From: Álvaro Herrera <alvherre@kurilemu.de>
To: Andrey Borodin <x4mmm@yandex-team.ru>
Cc: Heikki Linnakangas <hlinnaka@iki.fi>, Dmitry Yurichev <dsy.075@yandex.ru>, pgsql-hackers@lists.postgresql.org, Ivan Bykov <i.bykov@modernsys.ru>, Kirill Reshke <reshkekirill@gmail.com>
Date: 2025-12-06T10:53:50Z
Lists: pgsql-hackers
On 2025-Dec-05, Andrey Borodin wrote: > I'm on-call for the rest of this week, but a bit later I can produce > fast tests for all kinds of wraparounds :) I suspect that would be valuable. > But as you said, hopefully soon there won't be wraparounds, and, > what's more important, offsets\members space exhaustion. Hmm. We can easily enlarge the offset size to 64 bits, which eliminates the problem of member wraparound and space exhaustion. However, enlarging multixact size itself would require enlarging the size of the t_xmax field in heap tuples, and as far as I know, that's not in the works. I mean, even with the patches to increase xid to 64 bits[1], I understand that t_xmax continues to be 32 bits. This means that multixact offset wraparound is still an issue that we need to pay attention to. [1] https://postgr.es/m/CACG=ezYeSygeb68tJVej9Qgji6k78V2reSqzh1_Y4P5GxCAGsw@mail.gmail.com As far as I understand from that patch, XIDs as stored in t_xmax are still 32 bits, and are made 64 bits by addition of the pd_xid_base value. This technique can be used for standard XIDs; but multixacts, having their own cycle from XIDs, cannot be offset by the same counter. It would require a separate pd_multixact_base value to be maintained for each page. -- Álvaro Herrera 48°01'N 7°57'E — https://www.EnterpriseDB.com/ "Escucha y olvidarás; ve y recordarás; haz y entenderás" (Confucio)
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix test to work with non-8kB block sizes
- 7c2061bdfba7 19 (unreleased) landed
-
Fix setting next multixid's offset at offset wraparound
- 48969555447f 14.21 landed
- b9a02b9780bc 15.16 landed
- 4d689a17693e 16.12 landed
- cad40cec24f3 17.8 landed
- 02ba5e3be4f3 18.2 landed
- 4d936c3fff1a 19 (unreleased) landed
-
Add test for multixid wraparound
- 7b81be9b4267 19 (unreleased) landed
-
Set next multixid's offset when creating a new multixid
- 81416e1016dd 14.21 landed
- 8cfb174a61eb 15.16 landed
- 635166913078 16.12 landed
- 8ba61bc06386 17.8 landed
- e46041fd973c 18.2 landed
- 789d65364cde 19 (unreleased) landed
-
psql: Improve tab completion for large objects.
- 14ee8e640300 19 (unreleased) cited
-
Refactor some repetitive SLRU code
- c61678551699 19 (unreleased) cited
-
Transaction IDs wrap around, per my proposal of 13-Aug-01. More
- bc7d37a525c0 7.2.1 cited