From 20a7f75fbfbba6b4a9e369a8df82b144ab65c84a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Wed, 12 Feb 2020 20:54:59 +0200 Subject: [PATCH] MDEV-15058: Revert the changes to INFORMATION_SCHEMA For compatibility with diagnostic software, let us return a dummy buffer pool identifier 0 and restore the columns that were initially deleted in commit 1a6f708ec594ac0ae2dd30db926ab07b100fa24b: information_schema.innodb_buffer_page.pool_id information_schema.innodb_buffer_page_lru.pool_id information_schema.innodb_buffer_pool_stats.pool_id information_schema.innodb_cmpmem.buffer_pool_instance information_schema.innodb_cmpmem_reset.buffer_pool_instance Thanks to Vladislav Vaintroub for pointing this out. --- .../information_schema_all_engines.result | 12 +- mysql-test/main/sp-group.result | 4 +- .../r/innodb_skip_innodb_is_tables.result | 8 +- .../innodb_i_s/innodb_buffer_page.result | 1 + .../innodb_i_s/innodb_buffer_page_lru.result | 1 + .../innodb_buffer_pool_stats.result | 1 + .../suite/innodb_i_s/innodb_cmpmem.result | 1 + .../innodb_i_s/innodb_cmpmem_reset.result | 1 + storage/innobase/handler/i_s.cc | 180 ++++++++++-------- .../r/innodb_i_s_tables_disabled.result | 10 +- 10 files changed, 118 insertions(+), 101 deletions(-) diff --git a/mysql-test/main/information_schema_all_engines.result b/mysql-test/main/information_schema_all_engines.result index 52bb151384d..9ba4d20c76d 100644 --- a/mysql-test/main/information_schema_all_engines.result +++ b/mysql-test/main/information_schema_all_engines.result @@ -99,9 +99,9 @@ GEOMETRY_COLUMNS F_TABLE_SCHEMA GLOBAL_STATUS VARIABLE_NAME GLOBAL_VARIABLES VARIABLE_NAME INDEX_STATISTICS TABLE_SCHEMA -INNODB_BUFFER_PAGE BLOCK_ID -INNODB_BUFFER_PAGE_LRU LRU_POSITION -INNODB_BUFFER_POOL_STATS POOL_SIZE +INNODB_BUFFER_PAGE POOL_ID +INNODB_BUFFER_PAGE_LRU POOL_ID +INNODB_BUFFER_POOL_STATS POOL_ID INNODB_CMP page_size INNODB_CMPMEM page_size INNODB_CMPMEM_RESET page_size @@ -180,9 +180,9 @@ GEOMETRY_COLUMNS F_TABLE_SCHEMA GLOBAL_STATUS VARIABLE_NAME GLOBAL_VARIABLES VARIABLE_NAME INDEX_STATISTICS TABLE_SCHEMA -INNODB_BUFFER_PAGE BLOCK_ID -INNODB_BUFFER_PAGE_LRU LRU_POSITION -INNODB_BUFFER_POOL_STATS POOL_SIZE +INNODB_BUFFER_PAGE POOL_ID +INNODB_BUFFER_PAGE_LRU POOL_ID +INNODB_BUFFER_POOL_STATS POOL_ID INNODB_CMP page_size INNODB_CMPMEM page_size INNODB_CMPMEM_RESET page_size diff --git a/mysql-test/main/sp-group.result b/mysql-test/main/sp-group.result index 9f370ff03fe..ce8dccfa2c9 100644 --- a/mysql-test/main/sp-group.result +++ b/mysql-test/main/sp-group.result @@ -22,9 +22,9 @@ ORDER BY table1.NUMBER_RECORDS LIMIT 0 ; CALL s1; -LRU_POSITION SPACE PAGE_NUMBER PAGE_TYPE FLUSH_TYPE FIX_COUNT IS_HASHED NEWEST_MODIFICATION OLDEST_MODIFICATION ACCESS_TIME TABLE_NAME INDEX_NAME NUMBER_RECORDS DATA_SIZE COMPRESSED_SIZE COMPRESSED IO_FIX IS_OLD FREE_PAGE_CLOCK pk f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 +POOL_ID LRU_POSITION SPACE PAGE_NUMBER PAGE_TYPE FLUSH_TYPE FIX_COUNT IS_HASHED NEWEST_MODIFICATION OLDEST_MODIFICATION ACCESS_TIME TABLE_NAME INDEX_NAME NUMBER_RECORDS DATA_SIZE COMPRESSED_SIZE COMPRESSED IO_FIX IS_OLD FREE_PAGE_CLOCK pk f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 CALL s1; -LRU_POSITION SPACE PAGE_NUMBER PAGE_TYPE FLUSH_TYPE FIX_COUNT IS_HASHED NEWEST_MODIFICATION OLDEST_MODIFICATION ACCESS_TIME TABLE_NAME INDEX_NAME NUMBER_RECORDS DATA_SIZE COMPRESSED_SIZE COMPRESSED IO_FIX IS_OLD FREE_PAGE_CLOCK pk f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 +POOL_ID LRU_POSITION SPACE PAGE_NUMBER PAGE_TYPE FLUSH_TYPE FIX_COUNT IS_HASHED NEWEST_MODIFICATION OLDEST_MODIFICATION ACCESS_TIME TABLE_NAME INDEX_NAME NUMBER_RECORDS DATA_SIZE COMPRESSED_SIZE COMPRESSED IO_FIX IS_OLD FREE_PAGE_CLOCK pk f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 drop table t1; drop view view_t1; drop procedure s1; diff --git a/mysql-test/suite/innodb/r/innodb_skip_innodb_is_tables.result b/mysql-test/suite/innodb/r/innodb_skip_innodb_is_tables.result index 91b5a0284ac..1120fe25bb6 100644 --- a/mysql-test/suite/innodb/r/innodb_skip_innodb_is_tables.result +++ b/mysql-test/suite/innodb/r/innodb_skip_innodb_is_tables.result @@ -27,11 +27,11 @@ database_name table_name index_name compress_ops compress_ops_ok compress_time u Warnings: Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.innodb_cmp_per_index_reset but the InnoDB storage engine is not installed select * from information_schema.innodb_cmpmem; -page_size pages_used pages_free relocation_ops relocation_time +page_size buffer_pool_instance pages_used pages_free relocation_ops relocation_time Warnings: Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.innodb_cmpmem but the InnoDB storage engine is not installed select * from information_schema.innodb_cmpmem_reset; -page_size pages_used pages_free relocation_ops relocation_time +page_size buffer_pool_instance pages_used pages_free relocation_ops relocation_time Warnings: Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.innodb_cmpmem_reset but the InnoDB storage engine is not installed select * from information_schema.innodb_metrics; @@ -344,11 +344,11 @@ KEY VALUE Warnings: Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.innodb_ft_config but the InnoDB storage engine is not installed select * from information_schema.innodb_buffer_page; -BLOCK_ID SPACE PAGE_NUMBER PAGE_TYPE FLUSH_TYPE FIX_COUNT IS_HASHED NEWEST_MODIFICATION OLDEST_MODIFICATION ACCESS_TIME TABLE_NAME INDEX_NAME NUMBER_RECORDS DATA_SIZE COMPRESSED_SIZE PAGE_STATE IO_FIX IS_OLD FREE_PAGE_CLOCK +POOL_ID BLOCK_ID SPACE PAGE_NUMBER PAGE_TYPE FLUSH_TYPE FIX_COUNT IS_HASHED NEWEST_MODIFICATION OLDEST_MODIFICATION ACCESS_TIME TABLE_NAME INDEX_NAME NUMBER_RECORDS DATA_SIZE COMPRESSED_SIZE PAGE_STATE IO_FIX IS_OLD FREE_PAGE_CLOCK Warnings: Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.innodb_buffer_page but the InnoDB storage engine is not installed select * from information_schema.innodb_buffer_page_lru; -LRU_POSITION SPACE PAGE_NUMBER PAGE_TYPE FLUSH_TYPE FIX_COUNT IS_HASHED NEWEST_MODIFICATION OLDEST_MODIFICATION ACCESS_TIME TABLE_NAME INDEX_NAME NUMBER_RECORDS DATA_SIZE COMPRESSED_SIZE COMPRESSED IO_FIX IS_OLD FREE_PAGE_CLOCK +POOL_ID LRU_POSITION SPACE PAGE_NUMBER PAGE_TYPE FLUSH_TYPE FIX_COUNT IS_HASHED NEWEST_MODIFICATION OLDEST_MODIFICATION ACCESS_TIME TABLE_NAME INDEX_NAME NUMBER_RECORDS DATA_SIZE COMPRESSED_SIZE COMPRESSED IO_FIX IS_OLD FREE_PAGE_CLOCK Warnings: Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.innodb_buffer_page_lru but the InnoDB storage engine is not installed select * from information_schema.innodb_buffer_stats; diff --git a/mysql-test/suite/innodb_i_s/innodb_buffer_page.result b/mysql-test/suite/innodb_i_s/innodb_buffer_page.result index a212460457c..3ef5608e155 100644 --- a/mysql-test/suite/innodb_i_s/innodb_buffer_page.result +++ b/mysql-test/suite/innodb_i_s/innodb_buffer_page.result @@ -1,6 +1,7 @@ SHOW CREATE TABLE INFORMATION_SCHEMA.INNODB_BUFFER_PAGE; Table Create Table INNODB_BUFFER_PAGE CREATE TEMPORARY TABLE `INNODB_BUFFER_PAGE` ( + `POOL_ID` int(11) unsigned NOT NULL DEFAULT 0, `BLOCK_ID` bigint(21) unsigned NOT NULL DEFAULT 0, `SPACE` int(11) unsigned NOT NULL DEFAULT 0, `PAGE_NUMBER` int(11) unsigned NOT NULL DEFAULT 0, diff --git a/mysql-test/suite/innodb_i_s/innodb_buffer_page_lru.result b/mysql-test/suite/innodb_i_s/innodb_buffer_page_lru.result index cfdb526663b..73871eb2eda 100644 --- a/mysql-test/suite/innodb_i_s/innodb_buffer_page_lru.result +++ b/mysql-test/suite/innodb_i_s/innodb_buffer_page_lru.result @@ -1,6 +1,7 @@ SHOW CREATE TABLE INFORMATION_SCHEMA.INNODB_BUFFER_PAGE_LRU; Table Create Table INNODB_BUFFER_PAGE_LRU CREATE TEMPORARY TABLE `INNODB_BUFFER_PAGE_LRU` ( + `POOL_ID` int(11) unsigned NOT NULL DEFAULT 0, `LRU_POSITION` bigint(21) unsigned NOT NULL DEFAULT 0, `SPACE` int(11) unsigned NOT NULL DEFAULT 0, `PAGE_NUMBER` int(11) unsigned NOT NULL DEFAULT 0, diff --git a/mysql-test/suite/innodb_i_s/innodb_buffer_pool_stats.result b/mysql-test/suite/innodb_i_s/innodb_buffer_pool_stats.result index 7282b8e97d7..be5c31a6b57 100644 --- a/mysql-test/suite/innodb_i_s/innodb_buffer_pool_stats.result +++ b/mysql-test/suite/innodb_i_s/innodb_buffer_pool_stats.result @@ -1,6 +1,7 @@ SHOW CREATE TABLE INFORMATION_SCHEMA.INNODB_BUFFER_POOL_STATS; Table Create Table INNODB_BUFFER_POOL_STATS CREATE TEMPORARY TABLE `INNODB_BUFFER_POOL_STATS` ( + `POOL_ID` int(11) unsigned NOT NULL DEFAULT 0, `POOL_SIZE` bigint(21) unsigned NOT NULL DEFAULT 0, `FREE_BUFFERS` bigint(21) unsigned NOT NULL DEFAULT 0, `DATABASE_PAGES` bigint(21) unsigned NOT NULL DEFAULT 0, diff --git a/mysql-test/suite/innodb_i_s/innodb_cmpmem.result b/mysql-test/suite/innodb_i_s/innodb_cmpmem.result index adb80fe4c39..e1dd5d0a314 100644 --- a/mysql-test/suite/innodb_i_s/innodb_cmpmem.result +++ b/mysql-test/suite/innodb_i_s/innodb_cmpmem.result @@ -2,6 +2,7 @@ SHOW CREATE TABLE INFORMATION_SCHEMA.INNODB_CMPMEM; Table Create Table INNODB_CMPMEM CREATE TEMPORARY TABLE `INNODB_CMPMEM` ( `page_size` int(5) NOT NULL DEFAULT 0, + `buffer_pool_instance` int(11) NOT NULL DEFAULT 0, `pages_used` int(11) NOT NULL DEFAULT 0, `pages_free` int(11) NOT NULL DEFAULT 0, `relocation_ops` bigint(21) NOT NULL DEFAULT 0, diff --git a/mysql-test/suite/innodb_i_s/innodb_cmpmem_reset.result b/mysql-test/suite/innodb_i_s/innodb_cmpmem_reset.result index 3eea4c2e265..178cd244f9a 100644 --- a/mysql-test/suite/innodb_i_s/innodb_cmpmem_reset.result +++ b/mysql-test/suite/innodb_i_s/innodb_cmpmem_reset.result @@ -2,6 +2,7 @@ SHOW CREATE TABLE INFORMATION_SCHEMA.INNODB_CMPMEM_RESET; Table Create Table INNODB_CMPMEM_RESET CREATE TEMPORARY TABLE `INNODB_CMPMEM_RESET` ( `page_size` int(5) NOT NULL DEFAULT 0, + `buffer_pool_instance` int(11) NOT NULL DEFAULT 0, `pages_used` int(11) NOT NULL DEFAULT 0, `pages_free` int(11) NOT NULL DEFAULT 0, `relocation_ops` bigint(21) NOT NULL DEFAULT 0, diff --git a/storage/innobase/handler/i_s.cc b/storage/innobase/handler/i_s.cc index 6084f897e59..12d0a7cab9a 100644 --- a/storage/innobase/handler/i_s.cc +++ b/storage/innobase/handler/i_s.cc @@ -1598,6 +1598,7 @@ namespace Show { static ST_FIELD_INFO i_s_cmpmem_fields_info[] = { Column("page_size", SLong(5), NOT_NULL, "Buddy Block Size"), + Column("buffer_pool_instance", SLong(), NOT_NULL, "Buffer Pool Id"), Column("pages_used", SLong(), NOT_NULL, "Currently in Use"), Column("pages_free", SLong(), NOT_NULL, "Currently Available"), Column("relocation_ops", SLonglong(), NOT_NULL, "Total Number of Relocations"), @@ -1654,16 +1655,16 @@ i_s_cmpmem_fill_low( mutex_exit(&buf_pool->mutex); for (uint x = 0; x <= BUF_BUDDY_SIZES; x++) { - buf_buddy_stat_t* buddy_stat; + buf_buddy_stat_t* buddy_stat = &buddy_stat_local[x]; - buddy_stat = &buddy_stat_local[x]; + Field **field = table->field; - table->field[0]->store(BUF_BUDDY_LOW << x); - table->field[1]->store(buddy_stat->used, true); - table->field[2]->store(zip_free_len_local[x], true); - table->field[3]->store(buddy_stat->relocated, true); - table->field[4]->store( - buddy_stat->relocated_usec / 1000000, true); + (*field++)->store(BUF_BUDDY_LOW << x); + (*field++)->store(0, true); + (*field++)->store(buddy_stat->used, true); + (*field++)->store(zip_free_len_local[x], true); + (*field++)->store(buddy_stat->relocated, true); + (*field)->store(buddy_stat->relocated_usec / 1000000, true); if (schema_table_store_record(thd, table)) { DBUG_RETURN(1); @@ -3542,97 +3543,100 @@ namespace Show { /* Fields of the dynamic table INNODB_BUFFER_POOL_STATS. */ static ST_FIELD_INFO i_s_innodb_buffer_stats_fields_info[] = { -#define IDX_BUF_STATS_POOL_SIZE 0 +#define IDX_BUF_STATS_POOL_ID 0 + Column("POOL_ID", ULong(), NOT_NULL), + +#define IDX_BUF_STATS_POOL_SIZE 1 Column("POOL_SIZE", ULonglong(), NOT_NULL), -#define IDX_BUF_STATS_FREE_BUFFERS 1 +#define IDX_BUF_STATS_FREE_BUFFERS 2 Column("FREE_BUFFERS", ULonglong(), NOT_NULL), -#define IDX_BUF_STATS_LRU_LEN 2 +#define IDX_BUF_STATS_LRU_LEN 3 Column("DATABASE_PAGES", ULonglong(), NOT_NULL), -#define IDX_BUF_STATS_OLD_LRU_LEN 3 +#define IDX_BUF_STATS_OLD_LRU_LEN 4 Column("OLD_DATABASE_PAGES", ULonglong(), NOT_NULL), -#define IDX_BUF_STATS_FLUSH_LIST_LEN 4 +#define IDX_BUF_STATS_FLUSH_LIST_LEN 5 Column("MODIFIED_DATABASE_PAGES", ULonglong(), NOT_NULL), -#define IDX_BUF_STATS_PENDING_ZIP 5 +#define IDX_BUF_STATS_PENDING_ZIP 6 Column("PENDING_DECOMPRESS", ULonglong(), NOT_NULL), -#define IDX_BUF_STATS_PENDING_READ 6 +#define IDX_BUF_STATS_PENDING_READ 7 Column("PENDING_READS",ULonglong(), NOT_NULL), -#define IDX_BUF_STATS_FLUSH_LRU 7 +#define IDX_BUF_STATS_FLUSH_LRU 8 Column("PENDING_FLUSH_LRU",ULonglong(), NOT_NULL), -#define IDX_BUF_STATS_FLUSH_LIST 8 +#define IDX_BUF_STATS_FLUSH_LIST 9 Column("PENDING_FLUSH_LIST", ULonglong(), NOT_NULL), -#define IDX_BUF_STATS_PAGE_YOUNG 9 +#define IDX_BUF_STATS_PAGE_YOUNG 10 Column("PAGES_MADE_YOUNG",ULonglong(), NOT_NULL), -#define IDX_BUF_STATS_PAGE_NOT_YOUNG 10 +#define IDX_BUF_STATS_PAGE_NOT_YOUNG 11 Column("PAGES_NOT_MADE_YOUNG",ULonglong(), NOT_NULL), -#define IDX_BUF_STATS_PAGE_YOUNG_RATE 11 +#define IDX_BUF_STATS_PAGE_YOUNG_RATE 12 Column("PAGES_MADE_YOUNG_RATE", Float(MAX_FLOAT_STR_LENGTH), NOT_NULL), -#define IDX_BUF_STATS_PAGE_NOT_YOUNG_RATE 12 +#define IDX_BUF_STATS_PAGE_NOT_YOUNG_RATE 13 Column("PAGES_MADE_NOT_YOUNG_RATE", Float(MAX_FLOAT_STR_LENGTH), NOT_NULL), -#define IDX_BUF_STATS_PAGE_READ 13 +#define IDX_BUF_STATS_PAGE_READ 14 Column("NUMBER_PAGES_READ",ULonglong(), NOT_NULL), -#define IDX_BUF_STATS_PAGE_CREATED 14 +#define IDX_BUF_STATS_PAGE_CREATED 15 Column("NUMBER_PAGES_CREATED",ULonglong(), NOT_NULL), -#define IDX_BUF_STATS_PAGE_WRITTEN 15 +#define IDX_BUF_STATS_PAGE_WRITTEN 16 Column("NUMBER_PAGES_WRITTEN",ULonglong(), NOT_NULL), -#define IDX_BUF_STATS_PAGE_READ_RATE 16 +#define IDX_BUF_STATS_PAGE_READ_RATE 17 Column("PAGES_READ_RATE", Float(MAX_FLOAT_STR_LENGTH), NOT_NULL), -#define IDX_BUF_STATS_PAGE_CREATE_RATE 17 +#define IDX_BUF_STATS_PAGE_CREATE_RATE 18 Column("PAGES_CREATE_RATE", Float(MAX_FLOAT_STR_LENGTH), NOT_NULL), -#define IDX_BUF_STATS_PAGE_WRITTEN_RATE 18 +#define IDX_BUF_STATS_PAGE_WRITTEN_RATE 19 Column("PAGES_WRITTEN_RATE",Float(MAX_FLOAT_STR_LENGTH), NOT_NULL), -#define IDX_BUF_STATS_GET 19 +#define IDX_BUF_STATS_GET 20 Column("NUMBER_PAGES_GET", ULonglong(), NOT_NULL), -#define IDX_BUF_STATS_HIT_RATE 20 +#define IDX_BUF_STATS_HIT_RATE 21 Column("HIT_RATE", ULonglong(), NOT_NULL), -#define IDX_BUF_STATS_MADE_YOUNG_PCT 21 +#define IDX_BUF_STATS_MADE_YOUNG_PCT 22 Column("YOUNG_MAKE_PER_THOUSAND_GETS", ULonglong(), NOT_NULL), -#define IDX_BUF_STATS_NOT_MADE_YOUNG_PCT 22 +#define IDX_BUF_STATS_NOT_MADE_YOUNG_PCT 23 Column("NOT_YOUNG_MAKE_PER_THOUSAND_GETS", ULonglong(), NOT_NULL), -#define IDX_BUF_STATS_READ_AHREAD 23 +#define IDX_BUF_STATS_READ_AHEAD 24 Column("NUMBER_PAGES_READ_AHEAD", ULonglong(), NOT_NULL), -#define IDX_BUF_STATS_READ_AHEAD_EVICTED 24 +#define IDX_BUF_STATS_READ_AHEAD_EVICTED 25 Column("NUMBER_READ_AHEAD_EVICTED", ULonglong(), NOT_NULL), -#define IDX_BUF_STATS_READ_AHEAD_RATE 25 +#define IDX_BUF_STATS_READ_AHEAD_RATE 26 Column("READ_AHEAD_RATE", Float(MAX_FLOAT_STR_LENGTH), NOT_NULL), -#define IDX_BUF_STATS_READ_AHEAD_EVICT_RATE 26 +#define IDX_BUF_STATS_READ_AHEAD_EVICT_RATE 27 Column("READ_AHEAD_EVICTED_RATE",Float(MAX_FLOAT_STR_LENGTH), NOT_NULL), -#define IDX_BUF_STATS_LRU_IO_SUM 27 +#define IDX_BUF_STATS_LRU_IO_SUM 28 Column("LRU_IO_TOTAL", ULonglong(), NOT_NULL), -#define IDX_BUF_STATS_LRU_IO_CUR 28 +#define IDX_BUF_STATS_LRU_IO_CUR 29 Column("LRU_IO_CURRENT", ULonglong(), NOT_NULL), -#define IDX_BUF_STATS_UNZIP_SUM 29 +#define IDX_BUF_STATS_UNZIP_SUM 30 Column("UNCOMPRESS_TOTAL",ULonglong(), NOT_NULL), -#define IDX_BUF_STATS_UNZIP_CUR 30 +#define IDX_BUF_STATS_UNZIP_CUR 31 Column("UNCOMPRESS_CURRENT", ULonglong(), NOT_NULL), CEnd() @@ -3643,9 +3647,7 @@ static ST_FIELD_INFO i_s_innodb_buffer_stats_fields_info[] = @param[in,out] thd connection @param[in,out] tables tables to fill @return 0 on success, 1 on failure */ -static -int -i_s_innodb_stats_fill(THD* thd, TABLE_LIST* tables, Item*) +static int i_s_innodb_stats_fill(THD *thd, TABLE_LIST * tables, Item *) { TABLE* table; Field** fields; @@ -3666,6 +3668,8 @@ i_s_innodb_stats_fill(THD* thd, TABLE_LIST* tables, Item*) fields = table->field; + OK(fields[IDX_BUF_STATS_POOL_ID]->store(0, true)); + OK(fields[IDX_BUF_STATS_POOL_SIZE]->store(info.pool_size, true)); OK(fields[IDX_BUF_STATS_LRU_LEN]->store(info.lru_len, true)); @@ -3742,7 +3746,7 @@ i_s_innodb_stats_fill(THD* thd, TABLE_LIST* tables, Item*) OK(fields[IDX_BUF_STATS_NOT_MADE_YOUNG_PCT]->store(0, true)); } - OK(fields[IDX_BUF_STATS_READ_AHREAD]->store( + OK(fields[IDX_BUF_STATS_READ_AHEAD]->store( info.n_ra_pages_read, true)); OK(fields[IDX_BUF_STATS_READ_AHEAD_EVICTED]->store( @@ -3862,63 +3866,66 @@ namespace Show { /* Fields of the dynamic table INNODB_BUFFER_POOL_PAGE. */ static ST_FIELD_INFO i_s_innodb_buffer_page_fields_info[] = { -#define IDX_BUFFER_BLOCK_ID 0 +#define IDX_BUFFER_POOL_ID 0 + Column("POOL_ID", ULong(), NOT_NULL), + +#define IDX_BUFFER_BLOCK_ID 1 Column("BLOCK_ID", ULonglong(), NOT_NULL), -#define IDX_BUFFER_PAGE_SPACE 1 +#define IDX_BUFFER_PAGE_SPACE 2 Column("SPACE", ULong(), NOT_NULL), -#define IDX_BUFFER_PAGE_NUM 2 +#define IDX_BUFFER_PAGE_NUM 3 Column("PAGE_NUMBER", ULong(), NOT_NULL), -#define IDX_BUFFER_PAGE_TYPE 3 +#define IDX_BUFFER_PAGE_TYPE 4 Column("PAGE_TYPE", Varchar(64), NULLABLE), -#define IDX_BUFFER_PAGE_FLUSH_TYPE 4 +#define IDX_BUFFER_PAGE_FLUSH_TYPE 5 Column("FLUSH_TYPE", ULong(), NOT_NULL), -#define IDX_BUFFER_PAGE_FIX_COUNT 5 +#define IDX_BUFFER_PAGE_FIX_COUNT 6 Column("FIX_COUNT", ULong(), NOT_NULL), #ifdef BTR_CUR_HASH_ADAPT -#define IDX_BUFFER_PAGE_HASHED 6 +#define IDX_BUFFER_PAGE_HASHED 7 Column("IS_HASHED", SLong(1), NOT_NULL), #endif /* BTR_CUR_HASH_ADAPT */ -#define IDX_BUFFER_PAGE_NEWEST_MOD 6 + I_S_AHI +#define IDX_BUFFER_PAGE_NEWEST_MOD 7 + I_S_AHI Column("NEWEST_MODIFICATION", ULonglong(), NOT_NULL), -#define IDX_BUFFER_PAGE_OLDEST_MOD 7 + I_S_AHI +#define IDX_BUFFER_PAGE_OLDEST_MOD 8 + I_S_AHI Column("OLDEST_MODIFICATION", ULonglong(), NOT_NULL), -#define IDX_BUFFER_PAGE_ACCESS_TIME 8 + I_S_AHI +#define IDX_BUFFER_PAGE_ACCESS_TIME 9 + I_S_AHI Column("ACCESS_TIME", ULonglong(), NOT_NULL), -#define IDX_BUFFER_PAGE_TABLE_NAME 9 + I_S_AHI +#define IDX_BUFFER_PAGE_TABLE_NAME 10 + I_S_AHI Column("TABLE_NAME", Varchar(1024), NULLABLE), -#define IDX_BUFFER_PAGE_INDEX_NAME 10 + I_S_AHI +#define IDX_BUFFER_PAGE_INDEX_NAME 11 + I_S_AHI Column("INDEX_NAME", Varchar(NAME_CHAR_LEN), NULLABLE), -#define IDX_BUFFER_PAGE_NUM_RECS 11 + I_S_AHI +#define IDX_BUFFER_PAGE_NUM_RECS 12 + I_S_AHI Column("NUMBER_RECORDS", ULonglong(), NOT_NULL), -#define IDX_BUFFER_PAGE_DATA_SIZE 12 + I_S_AHI +#define IDX_BUFFER_PAGE_DATA_SIZE 13 + I_S_AHI Column("DATA_SIZE", ULonglong(), NOT_NULL), -#define IDX_BUFFER_PAGE_ZIP_SIZE 13 + I_S_AHI +#define IDX_BUFFER_PAGE_ZIP_SIZE 14 + I_S_AHI Column("COMPRESSED_SIZE", ULonglong(), NOT_NULL), -#define IDX_BUFFER_PAGE_STATE 14 + I_S_AHI +#define IDX_BUFFER_PAGE_STATE 15 + I_S_AHI Column("PAGE_STATE", Enum(&page_state_values_typelib), NOT_NULL, DEFAULT_NONE), -#define IDX_BUFFER_PAGE_IO_FIX 15 + I_S_AHI +#define IDX_BUFFER_PAGE_IO_FIX 16 + I_S_AHI Column("IO_FIX", Enum(&io_values_typelib), NOT_NULL, DEFAULT_NONE), -#define IDX_BUFFER_PAGE_IS_OLD 16 + I_S_AHI +#define IDX_BUFFER_PAGE_IS_OLD 17 + I_S_AHI Column("IS_OLD", SLong(1), NOT_NULL), -#define IDX_BUFFER_PAGE_FREE_CLOCK 17 + I_S_AHI +#define IDX_BUFFER_PAGE_FREE_CLOCK 18 + I_S_AHI Column("FREE_PAGE_CLOCK", ULonglong(), NOT_NULL), CEnd() @@ -3959,6 +3966,8 @@ i_s_innodb_buffer_page_fill( page_info = info_array + i; + OK(fields[IDX_BUFFER_POOL_ID]->store(0, true)); + OK(fields[IDX_BUFFER_BLOCK_ID]->store( page_info->block_id, true)); @@ -4378,63 +4387,66 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_buffer_page = namespace Show { static ST_FIELD_INFO i_s_innodb_buf_page_lru_fields_info[] = { -#define IDX_BUF_LRU_POS 0 +#define IDX_BUF_LRU_POOL_ID 0 + Column("POOL_ID", ULong(), NOT_NULL), + +#define IDX_BUF_LRU_POS 1 Column("LRU_POSITION", ULonglong(), NOT_NULL), -#define IDX_BUF_LRU_PAGE_SPACE 1 +#define IDX_BUF_LRU_PAGE_SPACE 2 Column("SPACE", ULong(), NOT_NULL), -#define IDX_BUF_LRU_PAGE_NUM 2 +#define IDX_BUF_LRU_PAGE_NUM 3 Column("PAGE_NUMBER", ULong(), NOT_NULL), -#define IDX_BUF_LRU_PAGE_TYPE 3 +#define IDX_BUF_LRU_PAGE_TYPE 4 Column("PAGE_TYPE", Varchar(64), NULLABLE), -#define IDX_BUF_LRU_PAGE_FLUSH_TYPE 4 +#define IDX_BUF_LRU_PAGE_FLUSH_TYPE 5 Column("FLUSH_TYPE", ULonglong(), NOT_NULL), -#define IDX_BUF_LRU_PAGE_FIX_COUNT 5 +#define IDX_BUF_LRU_PAGE_FIX_COUNT 6 Column("FIX_COUNT", ULong(), NOT_NULL), #ifdef BTR_CUR_HASH_ADAPT -#define IDX_BUF_LRU_PAGE_HASHED 6 +#define IDX_BUF_LRU_PAGE_HASHED 7 Column("IS_HASHED", SLong(1), NOT_NULL), #endif /* BTR_CUR_HASH_ADAPT */ -#define IDX_BUF_LRU_PAGE_NEWEST_MOD 6 + I_S_AHI +#define IDX_BUF_LRU_PAGE_NEWEST_MOD 7 + I_S_AHI Column("NEWEST_MODIFICATION",ULonglong(), NOT_NULL), -#define IDX_BUF_LRU_PAGE_OLDEST_MOD 7 + I_S_AHI +#define IDX_BUF_LRU_PAGE_OLDEST_MOD 8 + I_S_AHI Column("OLDEST_MODIFICATION",ULonglong(), NOT_NULL), -#define IDX_BUF_LRU_PAGE_ACCESS_TIME 8 + I_S_AHI +#define IDX_BUF_LRU_PAGE_ACCESS_TIME 9 + I_S_AHI Column("ACCESS_TIME",ULonglong(), NOT_NULL), -#define IDX_BUF_LRU_PAGE_TABLE_NAME 9 + I_S_AHI +#define IDX_BUF_LRU_PAGE_TABLE_NAME 10 + I_S_AHI Column("TABLE_NAME", Varchar(1024), NULLABLE), -#define IDX_BUF_LRU_PAGE_INDEX_NAME 10 + I_S_AHI +#define IDX_BUF_LRU_PAGE_INDEX_NAME 11 + I_S_AHI Column("INDEX_NAME", Varchar(NAME_CHAR_LEN), NULLABLE), -#define IDX_BUF_LRU_PAGE_NUM_RECS 11 + I_S_AHI +#define IDX_BUF_LRU_PAGE_NUM_RECS 12 + I_S_AHI Column("NUMBER_RECORDS", ULonglong(), NOT_NULL), -#define IDX_BUF_LRU_PAGE_DATA_SIZE 12 + I_S_AHI +#define IDX_BUF_LRU_PAGE_DATA_SIZE 13 + I_S_AHI Column("DATA_SIZE", ULonglong(), NOT_NULL), -#define IDX_BUF_LRU_PAGE_ZIP_SIZE 13 + I_S_AHI +#define IDX_BUF_LRU_PAGE_ZIP_SIZE 14 + I_S_AHI Column("COMPRESSED_SIZE",ULonglong(), NOT_NULL), -#define IDX_BUF_LRU_PAGE_STATE 14 + I_S_AHI +#define IDX_BUF_LRU_PAGE_STATE 15 + I_S_AHI Column("COMPRESSED", SLong(1), NOT_NULL), -#define IDX_BUF_LRU_PAGE_IO_FIX 15 + I_S_AHI +#define IDX_BUF_LRU_PAGE_IO_FIX 16 + I_S_AHI Column("IO_FIX", Enum(&io_values_typelib), NOT_NULL, DEFAULT_NONE), -#define IDX_BUF_LRU_PAGE_IS_OLD 16 + I_S_AHI +#define IDX_BUF_LRU_PAGE_IS_OLD 17 + I_S_AHI Column("IS_OLD", SLong(1), NULLABLE), -#define IDX_BUF_LRU_PAGE_FREE_CLOCK 17 + I_S_AHI +#define IDX_BUF_LRU_PAGE_FREE_CLOCK 18 + I_S_AHI Column("FREE_PAGE_CLOCK", ULonglong(), NOT_NULL), CEnd() @@ -4469,6 +4481,8 @@ i_s_innodb_buf_page_lru_fill( page_info = info_array + i; + OK(fields[IDX_BUF_LRU_POOL_ID]->store(0, true)); + OK(fields[IDX_BUF_LRU_POS]->store( page_info->block_id, true)); @@ -4582,9 +4596,7 @@ i_s_innodb_buf_page_lru_fill( @param[in] thd thread @param[in,out] tables tables to fill @return 0 on success, 1 on failure */ -static -int -i_s_innodb_fill_buffer_lru(THD *thd, TABLE_LIST *tables, Item*) +static int i_s_innodb_fill_buffer_lru(THD *thd, TABLE_LIST *tables, Item *) { int status = 0; buf_page_info_t* info_buffer; diff --git a/storage/rocksdb/mysql-test/rocksdb/r/innodb_i_s_tables_disabled.result b/storage/rocksdb/mysql-test/rocksdb/r/innodb_i_s_tables_disabled.result index abfb70f30af..6fef17d7a16 100644 --- a/storage/rocksdb/mysql-test/rocksdb/r/innodb_i_s_tables_disabled.result +++ b/storage/rocksdb/mysql-test/rocksdb/r/innodb_i_s_tables_disabled.result @@ -13,9 +13,9 @@ database_name table_name index_name compress_ops compress_ops_ok compress_time u SELECT * FROM INFORMATION_SCHEMA.INNODB_CMP_PER_INDEX_RESET; database_name table_name index_name compress_ops compress_ops_ok compress_time uncompress_ops uncompress_time SELECT * FROM INFORMATION_SCHEMA.INNODB_CMPMEM; -page_size pages_used pages_free relocation_ops relocation_time +page_size buffer_pool_instance pages_used pages_free relocation_ops relocation_time SELECT * FROM INFORMATION_SCHEMA.INNODB_CMPMEM_RESET; -page_size pages_used pages_free relocation_ops relocation_time +page_size buffer_pool_instance pages_used pages_free relocation_ops relocation_time SELECT * FROM INFORMATION_SCHEMA.INNODB_METRICS; NAME SUBSYSTEM COUNT MAX_COUNT MIN_COUNT AVG_COUNT COUNT_RESET MAX_COUNT_RESET MIN_COUNT_RESET AVG_COUNT_RESET TIME_ENABLED TIME_DISABLED TIME_ELAPSED TIME_RESET ENABLED TYPE COMMENT metadata_table_handles_opened metadata 0 NULL NULL NULL 0 NULL NULL NULL NULL NULL NULL NULL 0 counter Number of table handles opened @@ -316,11 +316,11 @@ WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_CONFIG; KEY VALUE SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_POOL_STATS; -POOL_SIZE FREE_BUFFERS DATABASE_PAGES OLD_DATABASE_PAGES MODIFIED_DATABASE_PAGES PENDING_DECOMPRESS PENDING_READS PENDING_FLUSH_LRU PENDING_FLUSH_LIST PAGES_MADE_YOUNG PAGES_NOT_MADE_YOUNG PAGES_MADE_YOUNG_RATE PAGES_MADE_NOT_YOUNG_RATE NUMBER_PAGES_READ NUMBER_PAGES_CREATED NUMBER_PAGES_WRITTEN PAGES_READ_RATE PAGES_CREATE_RATE PAGES_WRITTEN_RATE NUMBER_PAGES_GET HIT_RATE YOUNG_MAKE_PER_THOUSAND_GETS NOT_YOUNG_MAKE_PER_THOUSAND_GETS NUMBER_PAGES_READ_AHEAD NUMBER_READ_AHEAD_EVICTED READ_AHEAD_RATE READ_AHEAD_EVICTED_RATE LRU_IO_TOTAL LRU_IO_CURRENT UNCOMPRESS_TOTAL UNCOMPRESS_CURRENT +POOL_ID POOL_SIZE FREE_BUFFERS DATABASE_PAGES OLD_DATABASE_PAGES MODIFIED_DATABASE_PAGES PENDING_DECOMPRESS PENDING_READS PENDING_FLUSH_LRU PENDING_FLUSH_LIST PAGES_MADE_YOUNG PAGES_NOT_MADE_YOUNG PAGES_MADE_YOUNG_RATE PAGES_MADE_NOT_YOUNG_RATE NUMBER_PAGES_READ NUMBER_PAGES_CREATED NUMBER_PAGES_WRITTEN PAGES_READ_RATE PAGES_CREATE_RATE PAGES_WRITTEN_RATE NUMBER_PAGES_GET HIT_RATE YOUNG_MAKE_PER_THOUSAND_GETS NOT_YOUNG_MAKE_PER_THOUSAND_GETS NUMBER_PAGES_READ_AHEAD NUMBER_READ_AHEAD_EVICTED READ_AHEAD_RATE READ_AHEAD_EVICTED_RATE LRU_IO_TOTAL LRU_IO_CURRENT UNCOMPRESS_TOTAL UNCOMPRESS_CURRENT SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE; -BLOCK_ID SPACE PAGE_NUMBER PAGE_TYPE FLUSH_TYPE FIX_COUNT IS_HASHED NEWEST_MODIFICATION OLDEST_MODIFICATION ACCESS_TIME TABLE_NAME INDEX_NAME NUMBER_RECORDS DATA_SIZE COMPRESSED_SIZE PAGE_STATE IO_FIX IS_OLD FREE_PAGE_CLOCK +POOL_ID BLOCK_ID SPACE PAGE_NUMBER PAGE_TYPE FLUSH_TYPE FIX_COUNT IS_HASHED NEWEST_MODIFICATION OLDEST_MODIFICATION ACCESS_TIME TABLE_NAME INDEX_NAME NUMBER_RECORDS DATA_SIZE COMPRESSED_SIZE PAGE_STATE IO_FIX IS_OLD FREE_PAGE_CLOCK SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE_LRU; -LRU_POSITION SPACE PAGE_NUMBER PAGE_TYPE FLUSH_TYPE FIX_COUNT IS_HASHED NEWEST_MODIFICATION OLDEST_MODIFICATION ACCESS_TIME TABLE_NAME INDEX_NAME NUMBER_RECORDS DATA_SIZE COMPRESSED_SIZE COMPRESSED IO_FIX IS_OLD FREE_PAGE_CLOCK +POOL_ID LRU_POSITION SPACE PAGE_NUMBER PAGE_TYPE FLUSH_TYPE FIX_COUNT IS_HASHED NEWEST_MODIFICATION OLDEST_MODIFICATION ACCESS_TIME TABLE_NAME INDEX_NAME NUMBER_RECORDS DATA_SIZE COMPRESSED_SIZE COMPRESSED IO_FIX IS_OLD FREE_PAGE_CLOCK SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES; TABLE_ID NAME FLAG N_COLS SPACE ROW_FORMAT ZIP_PAGE_SIZE SPACE_TYPE SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS;