• Marko Mäkelä's avatar
    MDEV-15914: Remove trx_t::undo_mutex · 83bd4dd1
    Marko Mäkelä authored
    The trx_t::undo_mutex covered both some main-memory data structures
    (trx_undo_t) and access to undo pages. The trx_undo_t is only
    accessed by the thread that is associated with a running transaction.
    Likewise, each transaction has its private set of undo pages.
    The thread that is associated with an active transaction may
    lock multiple undo pages concurrently, but no other thread may
    lock multiple pages of a foreign transaction.
    
    Concurrent access to the undo logs of an active transaction is possible,
    but trx_undo_get_undo_rec_low() only locks one undo page at a time,
    without ever holding any undo_mutex.
    
    It seems that the trx_t::undo_mutex would have been necessary if
    multi-threaded execution or rollback of a single transaction
    had been implemented in InnoDB.
    83bd4dd1
que0que.cc 29.2 KB