• Amit Kapila's avatar
    Immediately WAL-log subtransaction and top-level XID association. · 0bead9af
    Amit Kapila authored
    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
    0bead9af
xact.h 15.6 KB