mirror of
https://github.com/MariaDB/server.git
synced 2025-11-27 05:41:41 +03:00
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.
39 lines
1.9 KiB
Plaintext
39 lines
1.9 KiB
Plaintext
--source include/not_embedded.inc
|
|
|
|
select count(*) from information_schema.innodb_trx;
|
|
select * from information_schema.innodb_locks;
|
|
select * from information_schema.innodb_lock_waits;
|
|
select * from information_schema.innodb_cmp;
|
|
select * from information_schema.innodb_cmp_reset;
|
|
select * from information_schema.innodb_cmp_per_index;
|
|
select * from information_schema.innodb_cmp_per_index_reset;
|
|
select * from information_schema.innodb_cmpmem;
|
|
select * from information_schema.innodb_cmpmem_reset;
|
|
select * from information_schema.innodb_metrics
|
|
WHERE name NOT LIKE 'adaptive_hash_%';
|
|
select * from information_schema.innodb_ft_default_stopword;
|
|
select * from information_schema.innodb_ft_deleted;
|
|
select * from information_schema.innodb_ft_being_deleted;
|
|
select * from information_schema.innodb_ft_index_cache;
|
|
select * from information_schema.innodb_ft_index_table;
|
|
select * from information_schema.innodb_ft_config;
|
|
select count(*) from information_schema.innodb_buffer_page;
|
|
select count(*) from information_schema.innodb_buffer_page_lru;
|
|
--error 0,1109
|
|
select * from information_schema.innodb_buffer_stats;
|
|
select * from information_schema.innodb_sys_tables;
|
|
select * from information_schema.innodb_sys_tablestats;
|
|
select * from information_schema.innodb_sys_indexes;
|
|
select * from information_schema.innodb_sys_columns;
|
|
select * from information_schema.innodb_sys_fields;
|
|
select * from information_schema.innodb_sys_foreign;
|
|
select * from information_schema.innodb_sys_foreign_cols;
|
|
select * from information_schema.innodb_sys_tablespaces;
|
|
select * from information_schema.innodb_sys_datafiles;
|
|
--error 0,1109
|
|
select * from information_schema.innodb_changed_pages;
|
|
select * from information_schema.innodb_tablespaces_encryption;
|
|
select * from information_schema.innodb_tablespaces_scrubbing;
|
|
select * from information_schema.innodb_mutexes;
|
|
select * from information_schema.innodb_sys_semaphore_waits;
|