• Marko Mäkelä's avatar
    Remove trx_sys_t::pending_purge_rseg_array. · 15bdfeeb
    Marko Mäkelä authored
    In MySQL 5.7, there is some redundant code for supposedly handling
    an upgrade from an earlier version of InnoDB.
    
    An upgrade of InnoDB between major versions should include a
    slow shutdown (innodb_fast_shutdown=0) of the previous version.
    
    A comment in trx_lists_init_at_db_start() confused clean shutdown
    and slow shutdown. A clean shutdown does not necessarily guarantee
    that there are no active transactions. A slow shutdown guarantees
    that.
    
    Because there was no code to handle rollback of recovered transactions
    that happened to use the rollback segment slots that MySQL 5.7.2
    repurposed for temporary undo logs, the upgrade is not working in all
    cases, and we may as well remove the code to handle purging.
    
    trx_sys_t::pending_purge_rseg_array: Remove.
    
    trx_undo_get_undo_rec_low(): Define as static. Remove the parameter
    is_redo_rseg.
    
    trx_undo_get_undo_rec(), trx_rseg_get_on_id(): Remove the parameter
    is_redo_rseg.
    
    trx_rseg_mem_free(): Remove the second parameter.
    
    trx_sys_get_nth_rseg(): Replace with trx_rseg_get_on_id().
    
    trx_rseg_schedule_pending_purge(): Remove.
    15bdfeeb
trx0rseg.h 8.09 KB