Re: get rid of RM_HEAP2_ID

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: John Naylor <johncnaylorls(at)gmail(dot)com>
Cc: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: get rid of RM_HEAP2_ID
Date: 2025-10-15 05:31:31
Message-ID: aO8xs2B6tOvCzAsO@paquier.xyz
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Oct 15, 2025 at 12:01:44PM +0700, John Naylor wrote:
> On Wed, Oct 15, 2025 at 6:55 AM Michael Paquier <michael(at)paquier(dot)xyz> wrote:
>> We could move out xl_xid, which should not be required for all
>> records, shaving 4 bytes from the base XLogRecord. I'm afraid of the
>> duplication this would create if we push this data to each RMGR, which
>> would, I guess, require a new RMGR callback to retrieve this field on
>> a per-record basis. But perhaps it would not be that bad.
>
> I've wondered if it would be possible to make xl_tot_len a varint that
> starts in the last byte of the header, with the next bytes being like
> XLogRecordDataHeader[Short|Long], but likewise using a varint.

This suggestion gives me some shivers, TBH. We've had a couple of
issues with the read of records that spawn across multiple pages,
relying now very strongly on xl_tot_len being the first field in
XLogRecord. Making this field variable may be really tricky while the
code we have now in xlogreader.h is pretty stable.
--
Michael

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Shinya Kato 2025-10-15 05:43:33 Re: remove unnecessary include in src/backend/commands/policy.c
Previous Message Maxim Orlov 2025-10-15 05:12:32 Re: Patch for migration of the pg_commit_ts directory