mariadb/storage/innobase/include
Marko Mäkelä 27b9989d31 MDEV-12121 Introduce build option WITH_INNODB_AHI to disable innodb_adaptive_hash_index
The InnoDB adaptive hash index is sometimes degrading the performance of
InnoDB, and it is sometimes disabled to get more consistent performance.
We should have a compile-time option to disable the adaptive hash index.

Let us introduce two options:

OPTION(WITH_INNODB_AHI "Include innodb_adaptive_hash_index" ON)
OPTION(WITH_INNODB_ROOT_GUESS "Cache index root block descriptors" ON)

where WITH_INNODB_AHI always implies WITH_INNODB_ROOT_GUESS.

As part of this change, the misleadingly named function
trx_search_latch_release_if_reserved(trx) will be replaced with the macro
trx_assert_no_search_latch(trx) that will be empty unless
BTR_CUR_HASH_ADAPT is defined (cmake -DWITH_INNODB_AHI=ON).

We will also remove the unused column
INFORMATION_SCHEMA.INNODB_TRX.TRX_ADAPTIVE_HASH_TIMEOUT.
In MariaDB Server 10.1, it used to reflect the value of
trx_t::search_latch_timeout which could be adjusted during
row_search_for_mysql(). In 10.2, there is no such field.

Other than the removal of the unused column TRX_ADAPTIVE_HASH_TIMEOUT,
this is an almost non-functional change to the server when using the
default build options.

Some tests are adjusted so that they will work with both
-DWITH_INNODB_AHI=ON and -DWITH_INNODB_AHI=OFF. The test
innodb.innodb_monitor has been renamed to innodb.monitor
in order to track MySQL 5.7, and the duplicate tests
sys_vars.innodb_monitor_* are removed.
2017-03-03 16:55:50 +02:00
..
btr0btr.h
btr0btr.ic
btr0bulk.h
btr0cur.h MDEV-12121 Introduce build option WITH_INNODB_AHI to disable innodb_adaptive_hash_index 2017-03-03 16:55:50 +02:00
btr0cur.ic
btr0defragment.h
btr0pcur.h
btr0pcur.ic
btr0scrub.h
btr0sea.h MDEV-12121 Introduce build option WITH_INNODB_AHI to disable innodb_adaptive_hash_index 2017-03-03 16:55:50 +02:00
btr0sea.ic MDEV-12121 Introduce build option WITH_INNODB_AHI to disable innodb_adaptive_hash_index 2017-03-03 16:55:50 +02:00
btr0types.h MDEV-12121 Introduce build option WITH_INNODB_AHI to disable innodb_adaptive_hash_index 2017-03-03 16:55:50 +02:00
buf0buddy.h
buf0buddy.ic
buf0buf.h MDEV-12121 Introduce build option WITH_INNODB_AHI to disable innodb_adaptive_hash_index 2017-03-03 16:55:50 +02:00
buf0buf.ic
buf0checksum.h
buf0dblwr.h MDEV-11802 innodb.innodb_bug14676111 fails 2017-02-20 12:32:43 +02:00
buf0dump.h
buf0flu.h
buf0flu.ic
buf0lru.h
buf0lru.ic
buf0mtflu.h
buf0rea.h
buf0types.h
data0data.h
data0data.ic MDEV-11849: Fix storage/innobase/* compile warnings 2017-01-26 08:05:24 +02:00
data0type.h
data0type.ic
data0types.h
db0err.h MDEV-12050 Remove unused InnoDB Memcached hooks 2017-02-13 11:24:02 +02:00
dict0boot.h
dict0boot.ic
dict0crea.h
dict0crea.ic
dict0defrag_bg.h
dict0dict.h Fix some InnoDB memory leaks. 2017-02-15 08:57:43 +02:00
dict0dict.ic MDEV-11849: Fix storage/innobase/* compile warnings 2017-01-26 08:05:24 +02:00
dict0load.h
dict0load.ic
dict0mem.h MDEV-12121 Introduce build option WITH_INNODB_AHI to disable innodb_adaptive_hash_index 2017-03-03 16:55:50 +02:00
dict0mem.ic MDEV-12121 Introduce build option WITH_INNODB_AHI to disable innodb_adaptive_hash_index 2017-03-03 16:55:50 +02:00
dict0pagecompress.h Merge 10.1 to 10.2. 2017-01-19 12:06:13 +02:00
dict0pagecompress.ic Merge 10.1 to 10.2. 2017-01-19 12:06:13 +02:00
dict0priv.h
dict0priv.ic
dict0stats.h
dict0stats.ic
dict0stats_bg.h MDEV-11802 innodb.innodb_bug14676111 fails 2017-02-20 12:32:43 +02:00
dict0stats_bg.ic
dict0types.h
dyn0buf.h
dyn0types.h
eval0eval.h
eval0eval.ic
eval0proc.h
eval0proc.ic
fil0crypt.h MDEV-11782: Redefine the innodb_encrypt_log format 2017-02-15 08:07:20 +02:00
fil0crypt.ic
fil0fil.h Remove the unused field tablespace_version. 2017-02-27 13:44:53 +02:00
fil0fil.ic
fil0pagecompress.h Merge 10.1 to 10.2. 2017-01-19 12:06:13 +02:00
fsp0file.h Merge 10.1 to 10.2. 2017-01-19 12:06:13 +02:00
fsp0fsp.h MDEV-12121 Introduce build option WITH_INNODB_AHI to disable innodb_adaptive_hash_index 2017-03-03 16:55:50 +02:00
fsp0fsp.ic Merge 10.1 to 10.2. 2017-01-19 12:06:13 +02:00
fsp0pagecompress.h Merge 10.1 to 10.2. 2017-01-19 12:06:13 +02:00
fsp0pagecompress.ic Merge 10.1 to 10.2. 2017-01-19 12:06:13 +02:00
fsp0space.h MDEV-11927 InnoDB change buffer is not being merged 2017-02-24 22:16:33 +02:00
fsp0sysspace.h
fsp0types.h Merge 10.1 to 10.2. 2017-01-19 12:06:13 +02:00
fts0ast.h
fts0blex.h
fts0fts.h
fts0opt.h
fts0pars.h
fts0plugin.h
fts0priv.h
fts0priv.ic
fts0tlex.h
fts0tokenize.h
fts0types.h MDEV-11802 innodb.innodb_bug14676111 fails 2017-02-20 12:32:43 +02:00
fts0types.ic
fts0vlc.ic
fut0fut.h
fut0fut.ic
fut0lst.h
fut0lst.ic
gis0geo.h
gis0rtree.h
gis0rtree.ic
gis0type.h
ha0ha.h MDEV-12121 Introduce build option WITH_INNODB_AHI to disable innodb_adaptive_hash_index 2017-03-03 16:55:50 +02:00
ha0ha.ic MDEV-12121 Introduce build option WITH_INNODB_AHI to disable innodb_adaptive_hash_index 2017-03-03 16:55:50 +02:00
ha0storage.h
ha0storage.ic
ha_prototypes.h MDEV-12050 Remove unused InnoDB Memcached hooks 2017-02-13 11:24:02 +02:00
handler0alter.h
hash0hash.h MDEV-12121 Introduce build option WITH_INNODB_AHI to disable innodb_adaptive_hash_index 2017-03-03 16:55:50 +02:00
hash0hash.ic
ib0mutex.h
ibuf0ibuf.h
ibuf0ibuf.ic
ibuf0types.h
lock0iter.h
lock0lock.h MDEV-11802 innodb.innodb_bug14676111 fails 2017-02-20 12:32:43 +02:00
lock0lock.ic
lock0prdt.h
lock0priv.h
lock0priv.ic
lock0types.h
log0crypt.h MDEV-11782: Redefine the innodb_encrypt_log format 2017-02-15 08:07:20 +02:00
log0log.h MDEV-12103 Reduce the time of looking for MLOG_CHECKPOINT during crash recovery 2017-03-03 09:38:59 +02:00
log0log.ic
log0recv.h MDEV-11782: Redefine the innodb_encrypt_log format 2017-02-15 08:07:20 +02:00
log0types.h
mach0data.h MDEV-12050 Remove unused InnoDB Memcached hooks 2017-02-13 11:24:02 +02:00
mach0data.ic MDEV-12050 Remove unused InnoDB Memcached hooks 2017-02-13 11:24:02 +02:00
mem0mem.h
mem0mem.ic
mtr0log.h
mtr0log.ic
mtr0mtr.h MDEV-11831 Make InnoDB mini-transaction memo checks stricter 2017-01-18 14:57:10 +02:00
mtr0mtr.ic
mtr0types.h MDEV-11831 Make InnoDB mini-transaction memo checks stricter 2017-01-18 14:57:10 +02:00
os0api.h buf_page_t is class on 10.2 not struct. 2017-01-25 12:33:39 +02:00
os0event.h
os0file.h MDEV-11802 innodb.innodb_bug14676111 fails 2017-02-20 12:32:43 +02:00
os0file.ic MDEV-11254: innodb-use-trim has no effect in 10.2 2017-01-24 14:40:58 +02:00
os0once.h
os0proc.h
os0proc.ic
os0thread.h
os0thread.ic
page0cur.h MDEV-12121 Introduce build option WITH_INNODB_AHI to disable innodb_adaptive_hash_index 2017-03-03 16:55:50 +02:00
page0cur.ic
page0page.h
page0page.ic MDEV-11831 Make InnoDB mini-transaction memo checks stricter 2017-01-18 14:57:10 +02:00
page0size.h MDEV-11254: innodb-use-trim has no effect in 10.2 2017-01-24 14:40:58 +02:00
page0types.h
page0zip.h
page0zip.ic
pars0grm.h
pars0opt.h
pars0opt.ic
pars0pars.h
pars0pars.ic
pars0sym.h
pars0sym.ic
pars0types.h
que0que.h Shut down InnoDB after aborted startup. 2017-02-01 09:30:55 +02:00
que0que.ic
que0types.h
read0read.h
read0types.h
rem0cmp.h
rem0cmp.ic
rem0rec.h
rem0rec.ic
rem0types.h
row0ext.h
row0ext.ic
row0ftsort.h
row0import.h
row0import.ic
row0ins.h
row0ins.ic
row0log.h
row0log.ic
row0merge.h MDEV-11849: Fix storage/innobase/* compile warnings 2017-01-26 08:05:24 +02:00
row0mysql.h MDEV-12050 Remove unused InnoDB Memcached hooks 2017-02-13 11:24:02 +02:00
row0mysql.ic
row0purge.h
row0purge.ic
row0quiesce.h
row0quiesce.ic
row0row.h
row0row.ic MDEV-11849: Fix storage/innobase/* compile warnings 2017-01-26 08:05:24 +02:00
row0sel.h
row0sel.ic
row0trunc.h
row0types.h
row0uins.h
row0uins.ic
row0umod.h
row0umod.ic
row0undo.h
row0undo.ic
row0upd.h
row0upd.ic
row0vers.h
row0vers.ic
srv0conc.h
srv0mon.h MDEV-12121 Introduce build option WITH_INNODB_AHI to disable innodb_adaptive_hash_index 2017-03-03 16:55:50 +02:00
srv0mon.ic
srv0srv.h MDEV-12146 Deprecate and remove innodb_instrument_semaphores 2017-02-28 12:42:45 +02:00
srv0srv.ic
srv0start.h Shut down InnoDB after aborted startup. 2017-02-01 09:30:55 +02:00
sync0arr.h
sync0arr.ic
sync0debug.h
sync0policy.h
sync0policy.ic
sync0rw.h MDEV-12146 Deprecate and remove innodb_instrument_semaphores 2017-02-28 12:42:45 +02:00
sync0rw.ic MDEV-12146 Deprecate and remove innodb_instrument_semaphores 2017-02-28 12:42:45 +02:00
sync0sync.h
sync0types.h MDEV-12121 Introduce build option WITH_INNODB_AHI to disable innodb_adaptive_hash_index 2017-03-03 16:55:50 +02:00
trx0i_s.h MDEV-12121 Introduce build option WITH_INNODB_AHI to disable innodb_adaptive_hash_index 2017-03-03 16:55:50 +02:00
trx0purge.h MDEV-11802 innodb.innodb_bug14676111 fails 2017-02-20 12:32:43 +02:00
trx0purge.ic
trx0rec.h
trx0rec.ic
trx0roll.h
trx0roll.ic
trx0rseg.h
trx0rseg.ic
trx0sys.h
trx0sys.ic
trx0trx.h MDEV-12121 Introduce build option WITH_INNODB_AHI to disable innodb_adaptive_hash_index 2017-03-03 16:55:50 +02:00
trx0trx.ic MDEV-12121 Introduce build option WITH_INNODB_AHI to disable innodb_adaptive_hash_index 2017-03-03 16:55:50 +02:00
trx0types.h
trx0undo.h
trx0undo.ic
trx0xa.h
univ.i MDEV-11254: innodb-use-trim has no effect in 10.2 2017-01-24 14:40:58 +02:00
usr0sess.h
usr0sess.ic
usr0types.h
ut0byte.h
ut0byte.ic
ut0counter.h
ut0crc32.h
ut0dbg.h
ut0list.h
ut0list.ic
ut0lst.h
ut0mem.h
ut0mem.ic
ut0mutex.h Rewrite the innodb.log_file_size test with DBUG_EXECUTE_IF. 2017-01-31 10:23:20 +02:00
ut0new.h Actually invoke free() in ut_allocator::deallocate(). 2017-02-01 09:30:55 +02:00
ut0pool.h
ut0rbt.h
ut0rnd.h
ut0rnd.ic
ut0sort.h
ut0stage.h
ut0timer.h
ut0timer.ic MDEV-11849: Fix storage/innobase/* compile warnings 2017-01-26 08:05:24 +02:00
ut0ut.h
ut0ut.ic
ut0vec.h
ut0vec.ic
ut0wqueue.h