diff --git a/mysql-test/suite/innodb/r/innodb_monitor.result b/mysql-test/suite/innodb/r/innodb_monitor.result index 5f5fa58..68ab1bf 100644 --- a/mysql-test/suite/innodb/r/innodb_monitor.result +++ b/mysql-test/suite/innodb/r/innodb_monitor.result @@ -160,8 +160,12 @@ compress_pages_compressed disabled compress_pages_decompressed disabled compression_pad_increments disabled compression_pad_decrements disabled -index_splits disabled -index_merges disabled +index_page_splits disabled +index_page_merge_attempts disabled +index_page_merge_successful disabled +index_page_reorg_attempts disabled +index_page_reorg_successful disabled +index_page_discards disabled adaptive_hash_searches disabled adaptive_hash_searches_btree disabled adaptive_hash_pages_added disabled diff --git a/mysql-test/suite/sys_vars/r/innodb_monitor_disable_basic.result b/mysql-test/suite/sys_vars/r/innodb_monitor_disable_basic.result index ce57dbb..6f1c4c2 100644 --- a/mysql-test/suite/sys_vars/r/innodb_monitor_disable_basic.result +++ b/mysql-test/suite/sys_vars/r/innodb_monitor_disable_basic.result @@ -160,8 +160,12 @@ compress_pages_compressed disabled compress_pages_decompressed disabled compression_pad_increments disabled compression_pad_decrements disabled -index_splits disabled -index_merges disabled +index_page_splits disabled +index_page_merge_attempts disabled +index_page_merge_successful disabled +index_page_reorg_attempts disabled +index_page_reorg_successful disabled +index_page_discards disabled adaptive_hash_searches disabled adaptive_hash_searches_btree disabled adaptive_hash_pages_added disabled diff --git a/mysql-test/suite/sys_vars/r/innodb_monitor_enable_basic.result b/mysql-test/suite/sys_vars/r/innodb_monitor_enable_basic.result index ce57dbb..6f1c4c2 100644 --- a/mysql-test/suite/sys_vars/r/innodb_monitor_enable_basic.result +++ b/mysql-test/suite/sys_vars/r/innodb_monitor_enable_basic.result @@ -160,8 +160,12 @@ compress_pages_compressed disabled compress_pages_decompressed disabled compression_pad_increments disabled compression_pad_decrements disabled -index_splits disabled -index_merges disabled +index_page_splits disabled +index_page_merge_attempts disabled +index_page_merge_successful disabled +index_page_reorg_attempts disabled +index_page_reorg_successful disabled +index_page_discards disabled adaptive_hash_searches disabled adaptive_hash_searches_btree disabled adaptive_hash_pages_added disabled diff --git a/mysql-test/suite/sys_vars/r/innodb_monitor_reset_all_basic.result b/mysql-test/suite/sys_vars/r/innodb_monitor_reset_all_basic.result index ce57dbb..6f1c4c2 100644 --- a/mysql-test/suite/sys_vars/r/innodb_monitor_reset_all_basic.result +++ b/mysql-test/suite/sys_vars/r/innodb_monitor_reset_all_basic.result @@ -160,8 +160,12 @@ compress_pages_compressed disabled compress_pages_decompressed disabled compression_pad_increments disabled compression_pad_decrements disabled -index_splits disabled -index_merges disabled +index_page_splits disabled +index_page_merge_attempts disabled +index_page_merge_successful disabled +index_page_reorg_attempts disabled +index_page_reorg_successful disabled +index_page_discards disabled adaptive_hash_searches disabled adaptive_hash_searches_btree disabled adaptive_hash_pages_added disabled diff --git a/mysql-test/suite/sys_vars/r/innodb_monitor_reset_basic.result b/mysql-test/suite/sys_vars/r/innodb_monitor_reset_basic.result index ce57dbb..6f1c4c2 100644 --- a/mysql-test/suite/sys_vars/r/innodb_monitor_reset_basic.result +++ b/mysql-test/suite/sys_vars/r/innodb_monitor_reset_basic.result @@ -160,8 +160,12 @@ compress_pages_compressed disabled compress_pages_decompressed disabled compression_pad_increments disabled compression_pad_decrements disabled -index_splits disabled -index_merges disabled +index_page_splits disabled +index_page_merge_attempts disabled +index_page_merge_successful disabled +index_page_reorg_attempts disabled +index_page_reorg_successful disabled +index_page_discards disabled adaptive_hash_searches disabled adaptive_hash_searches_btree disabled adaptive_hash_pages_added disabled diff --git a/storage/innobase/btr/btr0btr.cc b/storage/innobase/btr/btr0btr.cc index 2b9b8de..053fec3 100644 --- a/storage/innobase/btr/btr0btr.cc +++ b/storage/innobase/btr/btr0btr.cc @@ -1788,6 +1788,8 @@ btr_page_reorganize_low( #endif /* !UNIV_HOTBACKUP */ temp_page = temp_block->frame; + MONITOR_INC(MONITOR_INDEX_REORG_ATTEMPTS); + /* Copy the old page to temporary space */ buf_frame_copy(temp_page, page); @@ -1936,6 +1938,8 @@ func_exit: mach_write_to_1(log_ptr, z_level); mlog_close(mtr, log_ptr + 1); } + + MONITOR_INC(MONITOR_INDEX_REORG_SUCCESSFUL); } #endif /* !UNIV_HOTBACKUP */ @@ -3562,6 +3566,8 @@ btr_compress( space = dict_index_get_space(index); zip_size = dict_table_zip_size(index->table); + MONITOR_INC(MONITOR_INDEX_MERGE_ATTEMPTS); + left_page_no = btr_page_get_prev(page, mtr); right_page_no = btr_page_get_next(page, mtr); @@ -3830,6 +3836,8 @@ func_exit: merge_block, cursor); } + MONITOR_INC(MONITOR_INDEX_MERGE_SUCCESSFUL); + return(TRUE); } @@ -3938,6 +3946,8 @@ btr_discard_page( space = dict_index_get_space(index); zip_size = dict_table_zip_size(index->table); + MONITOR_INC(MONITOR_INDEX_DISCARD); + /* Decide the page which will inherit the locks */ left_page_no = btr_page_get_prev(buf_block_get_frame(block), mtr); diff --git a/storage/innobase/include/srv0mon.h b/storage/innobase/include/srv0mon.h index 2098948..e2ab81b 100644 --- a/storage/innobase/include/srv0mon.h +++ b/storage/innobase/include/srv0mon.h @@ -308,7 +308,11 @@ enum monitor_id_t { /* Index related counters */ MONITOR_MODULE_INDEX, MONITOR_INDEX_SPLIT, - MONITOR_INDEX_MERGE, + MONITOR_INDEX_MERGE_ATTEMPTS, + MONITOR_INDEX_MERGE_SUCCESSFUL, + MONITOR_INDEX_REORG_ATTEMPTS, + MONITOR_INDEX_REORG_SUCCESSFUL, + MONITOR_INDEX_DISCARD, /* Adaptive Hash Index related counters */ MONITOR_MODULE_ADAPTIVE_HASH, diff --git a/storage/innobase/srv/srv0mon.cc b/storage/innobase/srv/srv0mon.cc index e57c31f..e651ec8 100644 --- a/storage/innobase/srv/srv0mon.cc +++ b/storage/innobase/srv/srv0mon.cc @@ -884,13 +884,29 @@ static monitor_info_t innodb_counter_info[] = MONITOR_MODULE, MONITOR_DEFAULT_START, MONITOR_MODULE_INDEX}, - {"index_splits", "index", "Number of index splits", + {"index_page_splits", "index", "Number of index page splits", MONITOR_NONE, MONITOR_DEFAULT_START, MONITOR_INDEX_SPLIT}, - {"index_merges", "index", "Number of index merges", + {"index_page_merge_attempts", "index", "Number of index page merge attempts", MONITOR_NONE, - MONITOR_DEFAULT_START, MONITOR_INDEX_MERGE}, + MONITOR_DEFAULT_START, MONITOR_INDEX_MERGE_ATTEMPTS}, + + {"index_page_merge_successful", "index", "Number of successful index page merges", + MONITOR_NONE, + MONITOR_DEFAULT_START, MONITOR_INDEX_MERGE_SUCCESSFUL}, + + {"index_page_reorg_attempts", "index", "Number of index page reorganization attempts", + MONITOR_NONE, + MONITOR_DEFAULT_START, MONITOR_INDEX_REORG_ATTEMPTS}, + + {"index_page_reorg_successful", "index", "Number of successful index page reorganizations", + MONITOR_NONE, + MONITOR_DEFAULT_START, MONITOR_INDEX_REORG_SUCCESSFUL}, + + {"index_page_discards", "index", "Number of index pages discarded", + MONITOR_NONE, + MONITOR_DEFAULT_START, MONITOR_INDEX_DISCARD}, /* ========== Counters for Adaptive Hash Index ========== */ {"module_adaptive_hash", "adaptive_hash_index", "Adpative Hash Index",