Details
-
Task
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
None
Description
This will allow us to reduce critical section protected by trx_sys.mutex:
1. no need to maintain global m_free list
2. eliminate if (trx->read_view == NULL) condition
On x86_64 sizeof(Readview) is 144 mostly due to padding, sizeof(trx_t) with ReadView is 1200.
Attachments
Issue Links
- causes
-
MDEV-22680 InnoDB trx_sys improvements
-
- Open
-
Pushed
commit 8e1adff95993effaa22129ff34b4570b755434ac
Author: Sergey Vojtovich <svoj@mariadb.org>
Date: Sun Jan 21 14:10:06 2018 +0400
Simplified away ReadView::complete()
It was supposed to be called out of mutex, but nevertheless was called
under trx_sys.mutex for normal threads adding one extra condtion in
critical section.
commit 4dc30f3c170b9deab1ff0b472930baba5c65b01c
Author: Sergey Vojtovich <svoj@mariadb.org>
Date: Sat Jan 20 17:45:42 2018 +0400
MDEV-15019 - InnoDB: store ReadView on trx
This will allow us to reduce critical section protected by
trx_sys.mutex:
- no need to maintain global m_free list
- eliminate if (trx->read_view == NULL) condition.
On x86_64 sizeof(Readview) is 144 mostly due to padding, sizeof(trx_t)
with ReadView is 1200.
Also don't close ReadView for read-write transactions, just mark it
closed similarly to read-only.
Clean-up: removed n_prepared_recovered_trx and n_prepared_trx, which
accidentally re-appeared after some rebase.