~laurynas-biveinis/percona-server/bug1064326-5.1

Viewing all changes in revision 486.

  • Committer: Laurynas Biveinis
  • Date: 2012-10-11 13:58:54 UTC
  • Revision ID: laurynas.biveinis@percona.com-20121011135854-k7g6pti1g2gq0c25
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_locking_fake_changes, which, when
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_fake_changes_locks to
avoid making innodb_fake_changes a prefix of it.

Adjust percona_innodb_fake_changes_locks testcase to test
innodb_locking_fake_changes=0 operation and that fake changes do not
cause any real data changes to the tables.

Re-record percona_server_variables_debug and
percona_server_variables_release tests.

expand all expand all

Show diffs side-by-side

added added

removed removed

Lines of Context: