[MDEV-32176] Contention in ha_innobase::info_low (dict_table::lock_mutex_lock) Created: 2023-09-15 Updated: 2023-09-15 |
|
| Status: | Open |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - InnoDB |
| Affects Version/s: | 11.3 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | Vladislav Vaintroub | Assignee: | Unassigned |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | performance | ||
| Attachments: |
|
| Description |
|
Running sysbench with Intel's VTune, I've noticed there is large-ish contention in ha_innobase::info_low(), if flag contains HA_STATUS_VARIABLE. It is a cached workload, database is started with large enough buffer pool 10G. .\sysbench.exe oltp_point_select --table-size=10000000 --mysql-user=root --report-interval=1 --time=30 --threads=400 --point-selects=0 --mysql-db=sbtest --mysql-ssl=off --histogram=1 run I'm attaching the flamegraph screenshots (sorry for this, but it does not seem to be possible to export that in svg from VTune) The code in question is this
the callstack is
It seems like mutual exclusion is an overkill here, as no data is being changed. Perhaps a slim rwlock would be better? |