Browse Source
Remove trx_sys_t::pending_purge_rseg_array.
Remove trx_sys_t::pending_purge_rseg_array.
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.pull/339/head
11 changed files with 26 additions and 213 deletions
-
11storage/innobase/include/trx0rec.h
-
25storage/innobase/include/trx0rseg.h
-
27storage/innobase/include/trx0rseg.ic
-
18storage/innobase/include/trx0sys.h
-
25storage/innobase/include/trx0sys.ic
-
8storage/innobase/row/row0purge.cc
-
9storage/innobase/trx/trx0purge.cc
-
21storage/innobase/trx/trx0rec.cc
-
71storage/innobase/trx/trx0rseg.cc
-
22storage/innobase/trx/trx0sys.cc
-
2storage/innobase/trx/trx0trx.cc
Write
Preview
Loading…
Cancel
Save
Reference in new issue