diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2017-02-23 23:05:12 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2017-03-03 16:55:50 +0200 |
commit | 27b9989d316163d00177bfee8fceb10995c2ba9b (patch) | |
tree | b30f3170e4ab4b70019bb89e8172d1c46b2b2210 /mysql-test/include | |
parent | 545f49dac361aa80aea26625233f9856ef4e16f5 (diff) | |
download | mariadb-git-27b9989d316163d00177bfee8fceb10995c2ba9b.tar.gz |
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.
Diffstat (limited to 'mysql-test/include')
-rw-r--r-- | mysql-test/include/have_innodb_ahi.inc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/mysql-test/include/have_innodb_ahi.inc b/mysql-test/include/have_innodb_ahi.inc new file mode 100644 index 00000000000..145061e58e6 --- /dev/null +++ b/mysql-test/include/have_innodb_ahi.inc @@ -0,0 +1,4 @@ +if (`select count(*)!=1 from information_schema.GLOBAL_VARIABLES + where variable_name='innodb_adaptive_hash_index'`){ + skip Test requires cmake -DWITH_INNODB_AHI=ON; +} |