• T
    Implement lazy XID allocation: transactions that do not modify any database · 295e6398
    Tom Lane 提交于
    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
procarray.c 33.3 KB