Re: Add 64-bit XIDs into PostgreSQL 15

Maxim Orlov <orlovmg@gmail.com>

From: Maxim Orlov <orlovmg@gmail.com>
To: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Cc: Pavel Borisov <pashkin.elfe@gmail.com>, Aleksander Alekseev <aleksander@timescale.com>, Postgres hackers <pgsql-hackers@lists.postgresql.org>, Stephen Frost <sfrost@snowman.net>, Alexander Korotkov <aekorotkov@gmail.com>, Andres Freund <andres@anarazel.de>, Ilya Anfimov <ilan@tzirechnoy.com>
Date: 2022-03-15T15:48:34Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Add SLRU tests for 64-bit page case

  2. Make use FullTransactionId in 2PC filenames

  3. Use larger segment file names for pg_notify

  4. Index SLRUs by 64-bit integers rather than by 32-bit integers

Attachments

Hi Kyotaro!

0001:
>
>  The XID_FMT has quite bad impact on the translatability of error
>  messages.  3286065651 has removed INT64_FORMAT from translatable
>  texts for the reason.  This re-introduces that in several places.
>  0001 itself does not harm but 0005 replaces XID_FMT with
>  INT64_FORMAT.  Other patches have the same issue, too.
>
 I do understand your concern and I wonder how I can do this better? My
first intention was to replace XID_FMT with %llu and INT64_FORMAT with
%lld. This should solve the translatability issue, but I'm not sure about
portability of this. Should this work on Windows, etc? Can you advise me on
the best solution?

We've fixed all the other things mentioned. Thanks!

Also added two fixes:
- CF bot was unhappy with pg_upgrade test in v17 because I forgot to add a
fix for computation of relminmxid during vacuum on a fresh database.
- Replace frozen or invalid x_min with FrozenTransactionId or
InvalidTransactionId respectively during tuple conversion to 64xid.

Reviews are welcome as always! Thanks!
-- 
Best regards,
Maxim Orlov.