Details
-
Task
-
Status: Open (View Workflow)
-
Minor
-
Resolution: Unresolved
Description
AHI usage counters, btr_cur_n_sea and btr_cur_n_non_sea, incremented in btr_cur_t::search_leaf(), are global instances of ib_counter_t<ulint, ib_counter_element_t>, which is a sharded (size 128) non-atomic (fuzzy) counter.
The usage of such a peculiar data type might suggest earlier attempts at overhead reduction for incrementing those two counters.
A better solution indicated by marko would be to replicate what was done in MDEV-37152: move the counters to some non-atomic members of trx_t and apply those changes back to the global counters (they can be possibly atomic then) only once per transaction (check trx_t::pages_accessed).
Attachments
Issue Links
- relates to
-
MDEV-21212 buf_page_get_gen -> buf_pool->stat.n_page_gets++ is a cpu waste (0.5-1%)
-
- Closed
-
-
MDEV-37070 Implement table options to enable/disable features
-
- Stalled
-
-
MDEV-37152 buf_page_get_gen -> buf_pool->stat.n_page_gets++ high cpu utilisation
-
- Closed
-
-
MDEV-38305 Expose adaptive hash index statistics in ANALYZE FORMAT=JSON
-
- Open
-