Merge lp:~laurynas-biveinis/percona-server/bug1064326-5.1 into lp:percona-server/5.1
Status: | Merged |
---|---|
Approved by: | Stewart Smith |
Approved revision: | no longer in the source branch. |
Merged at revision: | 501 |
Proposed branch: | lp:~laurynas-biveinis/percona-server/bug1064326-5.1 |
Merge into: | lp:percona-server/5.1 |
Prerequisite: | lp:~laurynas-biveinis/percona-server/bug890404-5.1 |
Diff against target: |
333 lines (+203/-14) 8 files modified
Percona-Server/mysql-test/r/percona_innodb_fake_changes_locks.result (+68/-4) Percona-Server/mysql-test/r/percona_server_variables_debug.result (+1/-0) Percona-Server/mysql-test/r/percona_server_variables_release.result (+1/-0) Percona-Server/mysql-test/t/percona_innodb_fake_changes_locks.test (+103/-6) Percona-Server/storage/innodb_plugin/handler/ha_innodb.cc (+8/-0) Percona-Server/storage/innodb_plugin/include/srv0srv.h (+4/-0) Percona-Server/storage/innodb_plugin/lock/lock0lock.c (+14/-4) Percona-Server/storage/innodb_plugin/srv/srv0srv.c (+4/-0) |
To merge this branch: | bzr merge lp:~laurynas-biveinis/percona-server/bug1064326-5.1 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Stewart Smith (community) | Approve | ||
Review via email: mp+129423@code.launchpad.net |
Description of the change
Fix bug 1064326 (Fake changes blocking real changes due to locking).
The issue is that, although fake change transactions downgrade the
requested X row locks to S locks, these S locks prevent X locks from
being taken.
Fixed by porting lp:mysqlatfacebook/51 revisions 3771 and 3775. This
fix introduces a new option innodb_
set to FALSE, makes fake transactions not to take any row locks.
However, this option is not safe to set to FALSE by default, because
the fake changes implementation is not ready for lock-less operation
for all workloads. Namely, if a real transacation will remove a row
that a fake transaction is doing a secondary index maintenance for,
the latter will fail. The new option is considered experimental and
might be removed in the future if lockless operation mode fixes are
implemented.
The name of variable is different from FB innodb_
avoid making innodb_fake_changes a prefix of it.
Adjust percona_
innodb_
cause any real data changes to the tables.
Re-record percona_
percona_
http://
26611