-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MDEV-15059 - Misc small InnoDB scalability fixes
When cloning oldest view, don't copy ReadView::m_creator_trx_id. It means that the owner thread is now allowed to access this member without trx_sys.mutex protection. To achieve this we have to keep ReadView::m_creator_trx_id in ReadView::m_ids. This is required to not let purge thread process records owned by transaction associated with oldest view. It is only required if trsanction entered read-write mode before it's view was created. If transaction entered read-write mode after it's view was created (trx_set_rw_mode()), purge thread won't be allowed to touch it because m_low_limit_id >= m_creator_trx_id holds. Thus we don't have to add this transaction id to ReadView::m_ids. Cleanups: ReadView::ids_t: don't seem to make any sense, just complicate matters. ReadView::copy_trx_ids(): doesn't make sense anymore, integrated into caller. ReadView::copy_complete(): not needed anymore. ReadView copy constructores: don't seem to make any sense. trx_purge_truncate_history(): removed view argument, access purge_sys->view directly instead.
- Loading branch information
Showing
4 changed files
with
62 additions
and
408 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.