Percona Server with XtraDB

srv_pass_corrupt_table can share the cache line with row counters

Reported by Alexey Kopytov on 2013-02-14
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Percona Server
Status tracked in 5.6
5.1
Undecided
Unassigned
5.5
Medium
Alexey Kopytov
5.6
Undecided
Unassigned

Bug Description

The way srv_pass_corrupt_table (and a few other options) is declared in srv0srv.c may become an infinite source of false sharing due to their proximity to row counters.

UNIV_INTERN ulint srv_expand_import = 0; /* 0:disable 1:enable */
UNIV_INTERN ulint srv_pass_corrupt_table = 0; /* 0:disable 1:enable */

UNIV_INTERN ulint srv_dict_size_limit = 0;

UNIV_INTERN ulint srv_lazy_drop_table = 0;

...

UNIV_INTERN ulint srv_n_rows_inserted = 0;
UNIV_INTERN ulint srv_n_rows_updated = 0;
UNIV_INTERN ulint srv_n_rows_deleted = 0;
UNIV_INTERN ulint srv_n_rows_read = 0;

Whether it shares the cache line with some or all of those counters depends on their addresses in the data segment. Which explain varied regressions we have observed in sysbench across revisions that do not touch anything relevant.

Related branches

lp:~akopytov/percona-server/bug1125259
Merged into lp:percona-server/5.5 at revision 449
Stewart Smith (community): Approve on 2013-02-20
Percona Reviewers G2: Pending requested 2013-02-15

Since srv_pass_corrupt_table is already merged to 5.6, opening this bug there in order not to lose it.

Alexey Kopytov (akopytov) wrote :

Row counters are implemented in a completely different way in 5.6, so the problem does not exist there.

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

Other bug subscribers