~maria-captains/maria/10.0

Viewing all changes in revision 4455.

  • Committer: Jan Lindström
  • Date: 2014-10-24 14:56:04 UTC
  • Revision ID: jplindst@mariadb.org-20141024145604-4qq3uadwgycksz5c
MDEV-6933: Spurious lock_wait_timeout_thread wakeup in lock_wait_suspend_thread()

Merged Facebooks commit 6e06bbfa315ffb97d713dd6e672d6054036ddc21
authored by Inaam Rana from https://github.com/facebook/mysql-5.6.

Fixes MySQL bug http://bugs.mysql.com/bug.php?id=72123

lock_timeout thread works in a tight loop waking up every second
and checking for lock_wait_timeout. In addition, when a mysql
thread is forced to wait on a lock, it signals the lock_timeout thread
as well. This call is not required. In a heavily contended workload
each thread going to wait will signal the lock_timeout thread making
it work all the time. As lock_timeout thread scans the array of
waiting threads under lock_sys::wait_mutex which is already very
hot in contneded loads, these extra scans can cause significanct
performance regression.

Also, in various codepaths lock_timeout thread is signalled where
actual intention was to signal the innodb monitor thread.

expand all expand all

Show diffs side-by-side

added added

removed removed

Lines of Context: