On Sat, 2021-04-03 at 15:22 +0200, Luca Ferrari wrote: > why having a TransactionId that is 32 bits > in depth while it is exposed (thru txid_current()) as a 64 bits value? > I mean, having 64 bits would reduce the need for anti-wrap arpund > vacuum. I suspect the usage of 32 bits is both for compatibility and > tuple header size, but I'm just guessing. Because there are two of these transaction IDs stored on each tuple (xmin and xmax) to determine its visibility. The overhead of 8 bytes per tuples for visibility is already pretty high. Another downside is that changing this would prevent the use of pg_upgrade for upgrading, as the on-disk format changes. Yours, Laurenz Albe -- Cybertec | https://www.cybertec-postgresql.com