[MDEV-14638] Replace trx_sys_t::rw_trx_set with LF_HASH Created: 2017-12-13 Updated: 2021-03-18 Resolved: 2018-01-11 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - InnoDB |
| Fix Version/s: | 10.3.4 |
| Type: | Task | Priority: | Major |
| Reporter: | Sergey Vojtovich | Assignee: | Sergey Vojtovich |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||||||||||||||||||||||
| Epic Link: | arm64 optimization | ||||||||||||||||||||||||||||
| Sprint: | 5.5.59 | ||||||||||||||||||||||||||||
| Description |
|
trx_sys_t::rw_trx_set implemented as std::set, which does a few quite expensive operations under trx_sys_t::mutex protection. E.g. malloc/free when adding/removing elements. Aim of this task is to reduce trx_sys_t::mutex contention by replacing rw_trx_set with LF_HASH. |
| Comments |
| Comment by Sergey Vojtovich [ 2017-12-20 ] | ||||
|
marko, please review top 3 patches here: https://github.com/MariaDB/server/commits/bb-10.3-MDEV14638 | ||||
| Comment by Sergey Vojtovich [ 2017-12-20 ] | ||||
|
4 patches now: optimised one of find() calls. Remaining find() calls worth optimising:
| ||||
| Comment by Sergey Vojtovich [ 2017-12-20 ] | ||||
|
danblack, you might be interested in this cool thing as well. | ||||
| Comment by Daniel Black [ 2017-12-20 ] | ||||
|
Ooh, shiny, thanks svoj, I'll take a look. | ||||
| Comment by Sergey Vojtovich [ 2017-12-23 ] | ||||
|
I saved tree with Marko's commits to https://github.com/MariaDB/server/commits/bb-10.3-MDEV14638-1 | ||||
| Comment by Marko Mäkelä [ 2018-01-09 ] | ||||
|
Very good. Please address my review comments 1, 2 and submit revised commits for final approval. | ||||
| Comment by Marko Mäkelä [ 2018-01-10 ] | ||||
|
OK to push with the fix-up, after addressing my remaining minor comments. |