mariadb/storage/innobase
Sunny Bains 7f7e934f23 Fix Bug #59683 :InnoDB latch deadlock detector/violation debug code is very slow
There are two main pain points, one is lookup by thread id for sync_thread_t
and the other is to do a lookup  by latch or level in sync_thread_t::levels.
Changed the sync_thread_t::levels lookup and reserve operation from O(N)
to O(1).

Pure lookups are still O(N), the main change for pure lookup is that we no
longer need to search up to SYNC_THREAD_N_LEVELS but only up to the number
of slots actually ever used ie. it is possible some were used in the past
but are now on the free list. If the in_use count drops to 0 we reset the
free list too.

Overload the sync_level_t::level field to track the free list. If
sync_thread_t::latch == NULL then sync_thread_t::level contains the ordinal
value of the previous free entry.

rb://580 Approved by Jimmy Yang.
2011-01-25 18:25:36 +11:00
..
btr Merge from mysql-5.1-innodb to mysql-5.5-innodb 2011-01-14 23:24:47 -08:00
buf Merge mysql-5.1-innodb -> mysql-5.5-innodb 2011-01-06 09:19:02 +02:00
data Bug#52199 utf32: mbminlen=4, mbmaxlen=4, type->mbminlen=0, type->mbmaxlen=4 2010-06-29 14:32:48 +03:00
dict Merge from mysql-5.1-innodb to mysql-5.5-innodb 2011-01-14 23:24:47 -08:00
dyn Renamed storage/innodb_plugin to storage/innobase, so that 1) it's the same 2009-08-07 12:16:00 +02:00
eval Remove redundant variable 2010-09-20 18:48:38 +03:00
fil Bug#58226 Some InnoDB debug checks consume too much CPU time 2010-12-01 10:43:33 +02:00
fsp Merge mysql-5.1-innodb -> mysql-5.5-innodb 2011-01-06 09:19:02 +02:00
fut Renamed storage/innodb_plugin to storage/innobase, so that 1) it's the same 2009-08-07 12:16:00 +02:00
ha Currently we do a full validation of AHI whenever check tables is 2010-08-05 11:09:05 -04:00
handler Merge from mysql-5.1-innodb to mysql-5.5-innodb 2011-01-14 23:24:47 -08:00
ibuf Bug#58212 Possible deadlock in change buffer in debug builds 2010-12-01 15:09:02 +02:00
include Merge mysql-5.1-innodb to mysql-5.5-innodb. 2011-01-18 12:30:33 +02:00
lock lock_rec_validate_page(): Disable the debug printout. 2010-10-21 10:32:41 +03:00
log Merge mysql-5.1-innodb -> mysql-5.5-innodb 2011-01-06 09:19:02 +02:00
mach mach_ull_parse_compressed(): Move to .ic file to silence a GCC warning 2010-06-24 09:08:42 +03:00
mem Fix bug #52546, crash on shutdown of plugin with innodb_use_sys_malloc=0. 2010-05-17 01:57:42 -07:00
mtr Remove code that was added during the flush list mutex refactoring. We cannot 2010-07-22 14:46:12 +10:00
os Bug#58226 Some InnoDB debug checks consume too much CPU time 2010-12-01 10:43:33 +02:00
page Bug#54728: Replace the dulint struct with a 64-bit integer. 2010-06-23 14:06:59 +03:00
pars Bug#54728: Replace the dulint struct with a 64-bit integer. 2010-06-23 14:06:59 +03:00
que (que0que.c:1286) Bug#55227 Fix compiler warnings in innodb with gcc 4.6 2010-09-20 19:01:14 +03:00
read Bug#54728: Replace the dulint struct with a 64-bit integer. 2010-06-23 14:06:59 +03:00
rem Merge from mysql-5.1-innodb to mysql-5.5-innodb 2011-01-14 23:24:47 -08:00
row Merge mysql-5.1-innodb -> mysql-5.5-innodb 2011-01-06 09:19:02 +02:00
srv Merge from mysql-5.1-innodb to mysql-5.5-innodb 2011-01-14 23:24:47 -08:00
sync Fix Bug #59683 :InnoDB latch deadlock detector/violation debug code is very slow 2011-01-25 18:25:36 +11:00
thr Merge mysql-5.1-innodb to mysql-5.5-innodb. 2010-11-11 15:13:52 +02:00
trx merge from mysql-5.1-innodb to mysql-5.5-innodb 2011-01-06 19:50:49 -08:00
usr Merge Innodb Plugin 1.0.6 from mysql-5.1-bugteam storage/innodb_plugin to mysql-trunk-merge. 2009-12-02 19:30:50 +05:30
ut Merge mysql-5.1-innodb -> mysql-5.5-innodb 2011-01-06 09:19:02 +02:00
CMakeLists.txt Define MYSQL_(MAJOR|MINOR)_VERSION the way things are defined in CMake 2010-12-02 12:04:10 +02:00
compile-innodb Invoke make with -j$(nproc) for better parallelism. 2010-09-09 13:50:06 +03:00
COPYING.Google Renamed storage/innodb_plugin to storage/innobase, so that 1) it's the same 2009-08-07 12:16:00 +02:00
COPYING.Percona Renamed storage/innodb_plugin to storage/innobase, so that 1) it's the same 2009-08-07 12:16:00 +02:00
Doxyfile Remove ut0auxconf.h. 2010-09-09 14:27:52 +03:00
ha_innodb.def Renamed storage/innodb_plugin to storage/innobase, so that 1) it's the same 2009-08-07 12:16:00 +02:00