Remove trx_list scan from read_view_open_now()
Bug #1131189 reported by
Alexey Kopytov
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MySQL Server |
Unknown
|
Unknown
|
|||
Percona Server moved to https://jira.percona.com/projects/PS |
Fix Released
|
High
|
Alexey Kopytov | ||
5.1 |
Won't Fix
|
Undecided
|
Unassigned | ||
5.5 |
Fix Released
|
High
|
Alexey Kopytov | ||
5.6 |
Fix Released
|
High
|
Alexey Kopytov |
Bug Description
read_view_
of the list of all open transactions (trx_sys->trx_list) with the
kernel_mutex locked. On high-concurrency workloads (i.e. sysbench
read-only with number of threads >= 512) the cost of this scan is
huge.
Related branches
lp:~akopytov/percona-server/bug1131189
- Laurynas Biveinis (community): Approve
- Alexey Kopytov (community): Needs Resubmitting
-
Diff: 1371 lines (+446/-230)16 files modifiedPercona-Server/storage/innobase/handler/ha_innodb.cc (+3/-3)
Percona-Server/storage/innobase/include/read0read.h (+13/-8)
Percona-Server/storage/innobase/include/read0read.ic (+18/-25)
Percona-Server/storage/innobase/include/trx0sys.h (+38/-0)
Percona-Server/storage/innobase/include/trx0sys.ic (+26/-20)
Percona-Server/storage/innobase/include/trx0trx.h (+35/-4)
Percona-Server/storage/innobase/include/trx0trx.ic (+4/-4)
Percona-Server/storage/innobase/lock/lock0lock.c (+11/-11)
Percona-Server/storage/innobase/read/read0read.c (+72/-101)
Percona-Server/storage/innobase/row/row0sel.c (+7/-5)
Percona-Server/storage/innobase/row/row0vers.c (+3/-3)
Percona-Server/storage/innobase/srv/srv0srv.c (+1/-1)
Percona-Server/storage/innobase/trx/trx0purge.c (+6/-1)
Percona-Server/storage/innobase/trx/trx0roll.c (+4/-4)
Percona-Server/storage/innobase/trx/trx0sys.c (+10/-1)
Percona-Server/storage/innobase/trx/trx0trx.c (+195/-39)
lp:~akopytov/percona-server/bug1131189-5.6
- Laurynas Biveinis (community): Approve
-
Diff: 1545 lines (+617/-233)21 files modifiedPercona-Server/sql/handler.cc (+7/-17)
Percona-Server/sql/sql_base.cc (+9/-3)
Percona-Server/sql/sql_class.cc (+1/-3)
Percona-Server/sql/sql_connect.cc (+9/-6)
Percona-Server/sql/sql_parse.cc (+6/-2)
Percona-Server/sql/sql_prepare.cc (+26/-10)
Percona-Server/storage/innobase/include/read0read.h (+7/-4)
Percona-Server/storage/innobase/include/read0read.ic (+11/-28)
Percona-Server/storage/innobase/include/trx0sys.h (+58/-10)
Percona-Server/storage/innobase/include/trx0sys.ic (+66/-13)
Percona-Server/storage/innobase/include/trx0trx.h (+24/-0)
Percona-Server/storage/innobase/lock/lock0lock.cc (+13/-3)
Percona-Server/storage/innobase/read/read0read.cc (+82/-114)
Percona-Server/storage/innobase/row/row0sel.cc (+2/-2)
Percona-Server/storage/innobase/row/row0vers.cc (+5/-8)
Percona-Server/storage/innobase/trx/trx0sys.cc (+10/-0)
Percona-Server/storage/innobase/trx/trx0trx.cc (+177/-10)
policy/apparmor/usr.sbin.mysqld (+61/-0)
policy/apparmor/usr.sbin.mysqld.local (+2/-0)
policy/selinux/percona-server.fc (+6/-0)
policy/selinux/percona-server.te (+35/-0)
no longer affects: | percona-xtradb-cluster |
To post a comment you must log in.
Upstream bug has been closed as fixed in 5.6, presumably in 5.6.11. It makes sense to postpone any 5.6 work on this bug until then.