Skip to content
Snippets Groups Projects
  • Tom Lane's avatar
    295e6398
    Implement lazy XID allocation: transactions that do not modify any database · 295e6398
    Tom Lane authored
    rows will normally never obtain an XID at all.  We already did things this way
    for subtransactions, but this patch extends the concept to top-level
    transactions.  In applications where there are lots of short read-only
    transactions, this should improve performance noticeably; not so much from
    removal of the actual XID-assignments, as from reduction of overhead that's
    driven by the rate of XID consumption.  We add a concept of a "virtual
    transaction ID" so that active transactions can be uniquely identified even
    if they don't have a regular XID.  This is a much lighter-weight concept:
    uniqueness of VXIDs is only guaranteed over the short term, and no on-disk
    record is made about them.
    
    Florian Pflug, with some editorialization by Tom.
    295e6398
    History
    Implement lazy XID allocation: transactions that do not modify any database
    Tom Lane authored
    rows will normally never obtain an XID at all.  We already did things this way
    for subtransactions, but this patch extends the concept to top-level
    transactions.  In applications where there are lots of short read-only
    transactions, this should improve performance noticeably; not so much from
    removal of the actual XID-assignments, as from reduction of overhead that's
    driven by the rate of XID consumption.  We add a concept of a "virtual
    transaction ID" so that active transactions can be uniquely identified even
    if they don't have a regular XID.  This is a much lighter-weight concept:
    uniqueness of VXIDs is only guaranteed over the short term, and no on-disk
    record is made about them.
    
    Florian Pflug, with some editorialization by Tom.