Merge lp://qastaging/~laurynas-biveinis/percona-server/bug1279671 into lp://qastaging/percona-server/5.6

Proposed by Laurynas Biveinis
Status: Merged
Approved by: Alexey Kopytov
Approved revision: no longer in the source branch.
Merged at revision: 549
Proposed branch: lp://qastaging/~laurynas-biveinis/percona-server/bug1279671
Merge into: lp://qastaging/percona-server/5.6
Prerequisite: lp://qastaging/~laurynas-biveinis/percona-server/merge-5.6.16
Diff against target: 308 lines (+66/-33)
12 files modified
storage/innobase/dict/dict0boot.cc (+8/-4)
storage/innobase/dict/dict0dict.cc (+3/-2)
storage/innobase/dict/dict0load.cc (+2/-1)
storage/innobase/dict/dict0mem.cc (+32/-12)
storage/innobase/fts/fts0fts.cc (+1/-1)
storage/innobase/handler/ha_innodb.cc (+3/-3)
storage/innobase/handler/handler0alter.cc (+1/-1)
storage/innobase/ibuf/ibuf0ibuf.cc (+3/-2)
storage/innobase/include/dict0mem.h (+10/-4)
storage/innobase/mtr/mtr0log.cc (+1/-1)
storage/innobase/page/page0zip.cc (+1/-1)
storage/innobase/pars/pars0pars.cc (+1/-1)
To merge this branch: bzr merge lp://qastaging/~laurynas-biveinis/percona-server/bug1279671
Reviewer Review Type Date Requested Status
Alexey Kopytov (community) Approve
Review via email: mp+206734@code.qastaging.launchpad.net

Description of the change

Fix bug 1279671: upstream fix for
http://bugs.mysql.com/bug.php?id=70768 causes RW lock creations and
destructions at a high rate during ibuf merge.

The fix for upstream 70768 removed the static array of 64 shared
latches that were used for dict_table_t stat field protection and
replaced it with a new field dict_table_t::stats_latch that is
dynamically initialized in dict_mem_table_create and destroyed in
dict_mem_table_free.

This was unconditional for dummy dict_table_t objects too, that are
created by the ibuf merge, compressed page decompression, crash
recovery, and the dummy indexes for redundant and compact row record
format supremum and infimum records. Some of these might such as ibuf
merge may get created and destroyed at a high enough rate so that the
additional rwlock creation and destroy becomes a bottleneck.

Since the dummy dict_table_t objects do not participate in query
optimizer stat calculations, do not construct and destroy stats_latch
for them. At the same time, since such objects do not participate in
user transactions nor have auto increment fields, do not construct
autoinc_lock nor autoinc_mutex fields neither.

http://jenkins.percona.com/job/percona-server-5.6-param/521/

To post a comment you must log in.
Revision history for this message
Alexey Kopytov (akopytov) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches