Merge lp:~laurynas-biveinis/percona-server/bug1279671 into lp:percona-server/5.6
Status: | Merged |
---|---|
Approved by: | Alexey Kopytov |
Approved revision: | no longer in the source branch. |
Merged at revision: | 549 |
Proposed branch: | lp:~laurynas-biveinis/percona-server/bug1279671 |
Merge into: | lp:percona-server/5.6 |
Prerequisite: | lp:~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:~laurynas-biveinis/percona-server/bug1279671 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Alexey Kopytov (community) | Approve | ||
Review via email: mp+206734@code.launchpad.net |
Description of the change
Fix bug 1279671: upstream fix for
http://
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_
dynamically initialized in dict_mem_
dict_mem_
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://