• Vlad Lesin's avatar
    MDEV-33757 Get rid of TrxUndoRsegs code · a202371f
    Vlad Lesin authored
    Post-push fix: purge queue array can't be fixed size, because the elements
    of the array is the analogue of undo logs, which must be processed in
    the order of transaction commits, and the array can contain more
    elements, than trx_sys.rseg_array. Also it's necessary to maintain
    min-heap property by the trx_no of transaction, which produced the first
    non-purged undo log in all rsegs. That's why the element of purge queue
    aray must contain not only trx_sys.rseg_array index, but also trx_no of
    committed transacion, i.e. the pair (trx_no, trx_sys.rseg_array index),
    which is encoded as uint64_t((trx_no << 8) | (trx_sys.rseg_array index)).
    
    Reviewed by: Marko Mäkelä
    a202371f
trx0purge.h 16.4 KB