Re: get rid of RM_HEAP2_ID

From: John Naylor <johncnaylorls(at)gmail(dot)com>
To: Michael Paquier <michael(at)paquier(dot)xyz>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: get rid of RM_HEAP2_ID
Date: 2025-10-09 08:15:11
Message-ID: CANWCAZZR3daO-mZrWjHfbKzqAJqqMJcH==ARM_FPjBrFTVsX2w@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Oct 9, 2025 at 1:43 PM Michael Paquier <michael(at)paquier(dot)xyz> wrote:
> > 0001: Split xl_info into xl_info for rmgr-specific info and xl_geninfo
> > for generic flags. I used the XLogInsertExtended() idea from one of
> > Matthias's patches in [3], but wrote the rest a different way to keep
> > churn small.
>
> Removing XLR_RMGR_INFO_MASK becomes natural here, causing
> XLR_INFO_MASK to also become unnecessary. One benefit of this
> proposal is that we would not need a heap3 once the opcodes are
> completely full for the two existing ones, which should be fine enough
> for many years to come. I have noticed after writing this sentence
> that it is what Matthias has done in his patch to separate these
> fields. More code churn, but I'd be in favor of fully biting the
> bullet and do as Matthias is proposing, getting rid of XLR_INFO_MASK
> entirely if we let the full byte at disposal of the RMGRs.

Okay.

> > 0002 and 0003: To simplify the rmgrs that have an opmask and separate
> > flag (I saw two obvious ones but I didn't make sure they were the only
> > ones), reserve the high 4 bits of xl_info for the "record type" (I see
> > xlogstats.c calls it a "recid", so that might be a better name) and
> > the lower 4 bits for the flag. Using the same scheme everywhere
> > simplifies things.
>
> XLR_REC_TYPE_MASK and XLR_REC_FLAGS_MASK seem a bit confusing to me.
> This is an attempt to generalize a rule that two RMGRs have been using
> locally. In short I am not sure what we are gaining here, coming back
> to the previous point that we should get rid of XLR_INFO_MASK, IMO.
> That's the kind of rules I'd leave up to the RMGRs, so this does not
> like a necessary abstraction, at least IMO.

Leaving that up to the rmgr makes sense. One consideration I didn't
mention was for xlogstats.c -- "record_stats[rmid][recid]" would get
16x larger if recid could take up the full byte. Maybe that's
harmless, but I didn't want to assume. Any thoughts on that?

--
John Naylor
Amazon Web Services

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Kapila 2025-10-09 08:16:28 Re: Logical Replication of sequences
Previous Message Chao Li 2025-10-09 08:14:09 Re: speedup COPY TO for partitioned table.