Re: XID formatting and SLRU refactorings (was: Add 64-bit XIDs into PostgreSQL 15)

Pavel Borisov <pashkin.elfe@gmail.com>

From: Pavel Borisov <pashkin.elfe@gmail.com>
To: Andres Freund <andres@anarazel.de>
Cc: Максим Орлов <orlovmg@gmail.com>, Aleksander Alekseev <aleksander@timescale.com>, Postgres hackers <pgsql-hackers@lists.postgresql.org>, Japin Li <japinli@hotmail.com>, Alexander Korotkov <aekorotkov@gmail.com>, Peter Eisentraut <peter.eisentraut@enterprisedb.com>, Kyotaro Horiguchi <horikyota.ntt@gmail.com>, Ilya Anfimov <ilan@tzirechnoy.com>
Date: 2022-03-19T09:52:35Z
Lists: pgsql-hackers
> On 2022-03-18 18:14:52 +0300, Maxim Orlov wrote:
> > Subject: [PATCH v22 3/6] Use 64-bit pages in SLRU
> >
> > This is one step toward 64-bit XIDs.
>
> I think this should explain in more detail why this move is done. Neither
> the
> commit message nor the rest of the thread does so afaics. It's not too
> hard to
> infer, but the central reason behind a patch shouldn't need to be inferred.
>
>
> > -static bool CLOGPagePrecedes(int page1, int page2);
> > +static bool CLOGPagePrecedes(int64 page1, int64 page2);
>
> I think all of these are actually unsigned integers. If all of this stuff
> gets
> touched, perhaps worth moving to uint64 instead?
>
>
> https://www.postgresql.org/message-id/20220318231430.m5g56yk4ztlz2man%40alap3.anarazel.de


We'll try to add these and many similar changes in Slru code, thanks!

Commits

  1. Fix more holes with SLRU code in need of int64 for segment numbers

  2. Use more consistently int64 for page numbers in SLRU-related code

  3. Improve comments in slru.{c,h} about segment name format

  4. Reorder actions in ProcArrayApplyRecoveryInfo()

  5. Fix typo in 5a1dfde8334b

  6. Fix warning due non-standard inline declaration in 4ed8f0913bfdb5f355

  7. Add SLRU tests for 64-bit page case

  8. Make use FullTransactionId in 2PC filenames

  9. Use larger segment file names for pg_notify

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

  11. Keep track of transaction commit timestamps

  12. Handle 5-char filenames in SlruScanDirectory