diff options
author | Amit Kapila <akapila@postgresql.org> | 2020-07-20 08:48:26 +0530 |
---|---|---|
committer | Amit Kapila <akapila@postgresql.org> | 2020-07-20 08:48:26 +0530 |
commit | 0bead9af484c1d0a67e690fda47011addaa5bc9d (patch) | |
tree | 246db2163552a439ac1b7903fd36cb02e73cea3c /src/include/access/xlogrecord.h | |
parent | d05b172a760e0ccb3008a2144f96053720000b12 (diff) | |
download | postgresql-0bead9af484c1d0a67e690fda47011addaa5bc9d.tar.gz postgresql-0bead9af484c1d0a67e690fda47011addaa5bc9d.zip |
Immediately WAL-log subtransaction and top-level XID association.
The logical decoding infrastructure needs to know which top-level
transaction the subxact belongs to, in order to decode all the
changes. Until now that might be delayed until commit, due to the
caching (GPROC_MAX_CACHED_SUBXIDS), preventing features requiring
incremental decoding.
So we also write the assignment info into WAL immediately, as part
of the next WAL record (to minimize overhead) only when wal_level=logical.
We can not remove the existing XLOG_XACT_ASSIGNMENT WAL as that is
required for avoiding overflow in the hot standby snapshot.
Bump XLOG_PAGE_MAGIC, since this introduces XLR_BLOCK_ID_TOPLEVEL_XID.
Author: Tomas Vondra, Dilip Kumar, Amit Kapila
Reviewed-by: Amit Kapila
Tested-by: Neha Sharma and Mahendra Singh Thalor
Discussion: https://postgr.es/m/688b0b7f-2f6c-d827-c27b-216a8e3ea700@2ndquadrant.com
Diffstat (limited to 'src/include/access/xlogrecord.h')
-rw-r--r-- | src/include/access/xlogrecord.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/include/access/xlogrecord.h b/src/include/access/xlogrecord.h index acd9af0194d..2f0c8bf5896 100644 --- a/src/include/access/xlogrecord.h +++ b/src/include/access/xlogrecord.h @@ -223,5 +223,6 @@ typedef struct XLogRecordDataHeaderLong #define XLR_BLOCK_ID_DATA_SHORT 255 #define XLR_BLOCK_ID_DATA_LONG 254 #define XLR_BLOCK_ID_ORIGIN 253 +#define XLR_BLOCK_ID_TOPLEVEL_XID 252 #endif /* XLOGRECORD_H */ |