Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.5, 10.6, 10.7(EOL)
Description
MDEV-22871 could have made the parameter guess that is being passed in a few calls to buf_page_get_gen() considerably less useful. The reason is that we will have to perform a hash table lookup anyway in order to compute the address of page_hash_latch, which will protect our attempt to validate guess.
Maintaining and passing the guess could cause some overhead. However, an attempt to remove that parameter caused prominent performance regressions, possibly due to trx_undo_t::guess_block. So, we’d better keep that parameter.
What we can and should do instead is to refactor the buf_pool.page_hash code so that the address in buf_pool.page_hash.array will be computed while not holding any mutexes. This became possible after the fix of MDEV-26033.
Attachments
Issue Links
- blocks
-
MDEV-26769 InnoDB internal latches do not support hardware lock elision
- Closed
- is blocked by
-
MDEV-26033 Race condition between buf_pool.page_hash and buffer pool resizing
- Closed
- relates to
-
MDEV-22871 Contention on the buf_pool.page_hash
- Closed