Re: pgsql: Document XLOG_INCLUDE_XID a little better
Amit Kapila <amit.kapila16@gmail.com>
From: Amit Kapila <amit.kapila16@gmail.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Alvaro Herrera <alvherre@alvh.no-ip.org>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-10-01T04:51:16Z
Lists: pgsql-hackers
On Fri, Oct 1, 2021 at 12:32 AM Robert Haas <robertmhaas@gmail.com> wrote: > > On Thu, Sep 30, 2021 at 6:08 AM Amit Kapila <amit.kapila16@gmail.com> wrote: > > I think we can do better than using XLOG_INCLUDE_XID flag in the > > record being inserted. We need this flag so that we can mark > > SubTransaction assigned after XLogInsertRecord() is successful. We > > can instead output a flag (say sub_xact_assigned) from > > XLogRecordAssemble() and pass it to XLogInsertRecord(). Then in > > XLogInsertRecord(), we can mark SubTransactionAssigned once the record > > is inserted (after or before calling > > MarkCurrentTransactionIdLoggedIfAny()). > > Isn't there other communication between these routines that just uses > global variables? > AFAICS, there are two possibilities w.r.t global variables: (a) use curinsert_flags which we are doing now, (b) another is to introduce a new global variable, set it after we make the association, and then reset it after we mark SubTransaction assigned and on error. I have also thought of passing it via XLogCtlInsert but as that is shared by different processes, it can be set by one process and be read by another process which we don't want here. I am not sure if any of these is better than doing this communication via local variable. Do you have something specific in mind? -- With Regards, Amit Kapila.
Commits
-
Move MarkCurrentTransactionIdLoggedIfAny() out of the critical section.
- 335397456b7e 15.0 landed
-
Replace XLOG_INCLUDE_XID flag with a more localized flag.
- 71db6459e6e4 15.0 landed
-
Document XLOG_INCLUDE_XID a little better
- c1d1ae1db237 14.0 cited
- ade24dab97a2 15.0 cited
-
Immediately WAL-log subtransaction and top-level XID association.
- 0bead9af484c 14.0 cited