Re: Add 64-bit XIDs into PostgreSQL 15
Yura Sokolov <y.sokolov@postgrespro.ru>
From: Yura Sokolov <y.sokolov@postgrespro.ru>
To: Maxim Orlov <orlovmg@gmail.com>, Robert Haas <robertmhaas@gmail.com>
Cc: Heikki Linnakangas <hlinnaka@iki.fi>, Andres Freund <andres@anarazel.de>,
Evgeny Voropaev <evgeny.voropaev@tantorlabs.com>,
PostgreSQL Hackers <pgsql-hackers@postgresql.org>,
Andrey Borodin <x4mmm@yandex-team.ru>
Date: 2026-02-12T08:27:42Z
Lists: pgsql-hackers
12.02.2026 09:17, Maxim Orlov пишет: > According, Michael Stonebraker, I guess he is a professor two, in [0] that: > Every tuple has an immutable unique identifier (IID) that is assigned at > tuple creation time and never changes. This is a 64 bit quantity assigned > internally by POSTGRES. You've stopped the cite too early. The next sentence is: "Moreover, each transaction has a unique 64 bit transaction identifier (XACTID) assigned by POSTGRES." > It appears that this was lost at a later time, and we are now dealing > with 32-bit XIDs. I believe it was due to architecture limitations of that time: - too few generic processor had native 64bit integer types, - moreover, too few compilers of that time had native 64 bit integer types, - and atomic int64/uint64 were even more rare. Today I don't believe there is such environment that need newest PostgreSQL versions and doesn't have native atomic 64bit types. Small systems are happily occupied by SQLite3, which does its job relatively well. And PostgreSQL is used on larger installations with more powerful processor. I believe, it is time to declare next PostgreSQL version will demand presence of native 64bit atomics without any simulations, and keep current (18?) version as LTS for ten years for those, who have to use PostgreSQL on incapable systems. Certainly, it is just my humble opinion, and I'm just pure dumb old boy. So f%ck me up. -- regards Yura Sokolov aka funny-falcon
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Add SLRU tests for 64-bit page case
- a60b8a58f435 17.0 landed
-
Make use FullTransactionId in 2PC filenames
- 5a1dfde8334b 17.0 landed
-
Use larger segment file names for pg_notify
- 2cdf131c46e6 17.0 landed
-
Index SLRUs by 64-bit integers rather than by 32-bit integers
- 4ed8f0913bfd 17.0 landed