Unnecessary calls to innobase_get_trx() if slow log is enabled, but InnoDB stats are not

Bug #1124028 reported by Alexey Kopytov on 2013-02-13
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Percona Server
Status tracked in 5.7
5.1
Medium
Unassigned
5.5
Medium
Unassigned
5.6
Medium
Unassigned
5.7
Medium
Unassigned

Bug Description

We have the following code in buf_page_get_zip(), buf_page_get_gen(), buf_page_opimistic_get() and buf_page_get_known_nowait():

 if (innobase_get_slow_log()) {
  trx = innobase_get_trx();
 }

The problem is that innobase_get_trx() is expensive due to current_thd and if the slow log is enabled, but InnoDB stats are not, it will still be called for no reasons, as trx->take_stats will be FALSE and no stats will actually be collected.

tags: added: slow-extended

If I may piggyback on this bug report, as the issue is too minor for its own bug report and can be fixed at the same time. The innobase_get_trx() prototype should be removed from buf0buf.c. Instead, it should be declared in ha_prototypes.h.

tags: added: xtradb
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers