mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
MDEV-6926: innodb_rows_updated is misleading on slav
Merged Facebook commit dd2d11be7aaf3be270e740fb95cbc4eacb52f4d7
authored by Rongrong Zhong from https://github.com/facebook/mysql-5.6
This fixes MySQL Bug #68220 innodb_rows_updated is misleading on slave
http://bugs.mysql.com/bug.php?id=68220
Added innodb_system_rows_read/inserted/updated/deleted counters
that are the equivalent of innodb_rows_* but that only account for
changes made to system databases (mysql, information_schame and
preformance_schema). These counters will be used on slaves to
differentiated the updates made on system databases from those made on
user databases.
innodb_rows_* status counters are not updated when innodb_system_rows_*
are updated.
dd2d11be7a
This commit is contained in:
585
mysql-test/suite/innodb/r/innodb_monitor.result
Normal file
585
mysql-test/suite/innodb/r/innodb_monitor.result
Normal file
@ -0,0 +1,585 @@
|
||||
set global innodb_monitor_disable = All;
|
||||
select name, status from information_schema.innodb_metrics;
|
||||
name status
|
||||
metadata_table_handles_opened disabled
|
||||
metadata_table_handles_closed disabled
|
||||
metadata_table_reference_count disabled
|
||||
metadata_mem_pool_size disabled
|
||||
lock_deadlocks disabled
|
||||
lock_timeouts disabled
|
||||
lock_rec_lock_waits disabled
|
||||
lock_table_lock_waits disabled
|
||||
lock_rec_lock_requests disabled
|
||||
lock_rec_lock_created disabled
|
||||
lock_rec_lock_removed disabled
|
||||
lock_rec_locks disabled
|
||||
lock_table_lock_created disabled
|
||||
lock_table_lock_removed disabled
|
||||
lock_table_locks disabled
|
||||
lock_row_lock_current_waits disabled
|
||||
lock_row_lock_time disabled
|
||||
lock_row_lock_time_max disabled
|
||||
lock_row_lock_waits disabled
|
||||
lock_row_lock_time_avg disabled
|
||||
buffer_pool_size disabled
|
||||
buffer_pool_reads disabled
|
||||
buffer_pool_read_requests disabled
|
||||
buffer_pool_write_requests disabled
|
||||
buffer_pool_wait_free disabled
|
||||
buffer_pool_read_ahead disabled
|
||||
buffer_pool_read_ahead_evicted disabled
|
||||
buffer_pool_pages_total disabled
|
||||
buffer_pool_pages_misc disabled
|
||||
buffer_pool_pages_data disabled
|
||||
buffer_pool_bytes_data disabled
|
||||
buffer_pool_pages_dirty disabled
|
||||
buffer_pool_bytes_dirty disabled
|
||||
buffer_pool_pages_free disabled
|
||||
buffer_pages_created disabled
|
||||
buffer_pages_written disabled
|
||||
buffer_pages_read disabled
|
||||
buffer_data_reads disabled
|
||||
buffer_data_written disabled
|
||||
buffer_flush_batch_scanned disabled
|
||||
buffer_flush_batch_num_scan disabled
|
||||
buffer_flush_batch_scanned_per_call disabled
|
||||
buffer_flush_batch_rescan disabled
|
||||
buffer_flush_batch_total_pages disabled
|
||||
buffer_flush_batches disabled
|
||||
buffer_flush_batch_pages disabled
|
||||
buffer_flush_neighbor_total_pages disabled
|
||||
buffer_flush_neighbor disabled
|
||||
buffer_flush_neighbor_pages disabled
|
||||
buffer_flush_n_to_flush_requested disabled
|
||||
buffer_flush_avg_page_rate disabled
|
||||
buffer_flush_lsn_avg_rate disabled
|
||||
buffer_flush_pct_for_dirty disabled
|
||||
buffer_flush_pct_for_lsn disabled
|
||||
buffer_flush_sync_waits disabled
|
||||
buffer_flush_adaptive_total_pages disabled
|
||||
buffer_flush_adaptive disabled
|
||||
buffer_flush_adaptive_pages disabled
|
||||
buffer_flush_sync_total_pages disabled
|
||||
buffer_flush_sync disabled
|
||||
buffer_flush_sync_pages disabled
|
||||
buffer_flush_background_total_pages disabled
|
||||
buffer_flush_background disabled
|
||||
buffer_flush_background_pages disabled
|
||||
buffer_LRU_batch_scanned disabled
|
||||
buffer_LRU_batch_num_scan disabled
|
||||
buffer_LRU_batch_scanned_per_call disabled
|
||||
buffer_LRU_batch_total_pages disabled
|
||||
buffer_LRU_batches disabled
|
||||
buffer_LRU_batch_pages disabled
|
||||
buffer_LRU_single_flush_scanned disabled
|
||||
buffer_LRU_single_flush_num_scan disabled
|
||||
buffer_LRU_single_flush_scanned_per_call disabled
|
||||
buffer_LRU_single_flush_failure_count disabled
|
||||
buffer_LRU_get_free_search disabled
|
||||
buffer_LRU_search_scanned disabled
|
||||
buffer_LRU_search_num_scan disabled
|
||||
buffer_LRU_search_scanned_per_call disabled
|
||||
buffer_LRU_unzip_search_scanned disabled
|
||||
buffer_LRU_unzip_search_num_scan disabled
|
||||
buffer_LRU_unzip_search_scanned_per_call disabled
|
||||
buffer_page_read_index_leaf disabled
|
||||
buffer_page_read_index_non_leaf disabled
|
||||
buffer_page_read_index_ibuf_leaf disabled
|
||||
buffer_page_read_index_ibuf_non_leaf disabled
|
||||
buffer_page_read_undo_log disabled
|
||||
buffer_page_read_index_inode disabled
|
||||
buffer_page_read_ibuf_free_list disabled
|
||||
buffer_page_read_ibuf_bitmap disabled
|
||||
buffer_page_read_system_page disabled
|
||||
buffer_page_read_trx_system disabled
|
||||
buffer_page_read_fsp_hdr disabled
|
||||
buffer_page_read_xdes disabled
|
||||
buffer_page_read_blob disabled
|
||||
buffer_page_read_zblob disabled
|
||||
buffer_page_read_zblob2 disabled
|
||||
buffer_page_read_other disabled
|
||||
buffer_page_written_index_leaf disabled
|
||||
buffer_page_written_index_non_leaf disabled
|
||||
buffer_page_written_index_ibuf_leaf disabled
|
||||
buffer_page_written_index_ibuf_non_leaf disabled
|
||||
buffer_page_written_undo_log disabled
|
||||
buffer_page_written_index_inode disabled
|
||||
buffer_page_written_ibuf_free_list disabled
|
||||
buffer_page_written_ibuf_bitmap disabled
|
||||
buffer_page_written_system_page disabled
|
||||
buffer_page_written_trx_system disabled
|
||||
buffer_page_written_fsp_hdr disabled
|
||||
buffer_page_written_xdes disabled
|
||||
buffer_page_written_blob disabled
|
||||
buffer_page_written_zblob disabled
|
||||
buffer_page_written_zblob2 disabled
|
||||
buffer_page_written_other disabled
|
||||
os_data_reads disabled
|
||||
os_data_writes disabled
|
||||
os_data_fsyncs disabled
|
||||
os_pending_reads disabled
|
||||
os_pending_writes disabled
|
||||
os_log_bytes_written disabled
|
||||
os_log_fsyncs disabled
|
||||
os_log_pending_fsyncs disabled
|
||||
os_log_pending_writes disabled
|
||||
trx_rw_commits disabled
|
||||
trx_ro_commits disabled
|
||||
trx_nl_ro_commits disabled
|
||||
trx_commits_insert_update disabled
|
||||
trx_rollbacks disabled
|
||||
trx_rollbacks_savepoint disabled
|
||||
trx_rollback_active disabled
|
||||
trx_active_transactions disabled
|
||||
trx_rseg_history_len disabled
|
||||
trx_undo_slots_used disabled
|
||||
trx_undo_slots_cached disabled
|
||||
trx_rseg_current_size disabled
|
||||
purge_del_mark_records disabled
|
||||
purge_upd_exist_or_extern_records disabled
|
||||
purge_invoked disabled
|
||||
purge_undo_log_pages disabled
|
||||
purge_dml_delay_usec disabled
|
||||
purge_stop_count disabled
|
||||
purge_resume_count disabled
|
||||
log_checkpoints disabled
|
||||
log_lsn_last_flush disabled
|
||||
log_lsn_last_checkpoint disabled
|
||||
log_lsn_current disabled
|
||||
log_lsn_checkpoint_age disabled
|
||||
log_lsn_buf_pool_oldest disabled
|
||||
log_max_modified_age_async disabled
|
||||
log_max_modified_age_sync disabled
|
||||
log_pending_log_writes disabled
|
||||
log_pending_checkpoint_writes disabled
|
||||
log_num_log_io disabled
|
||||
log_waits disabled
|
||||
log_write_requests disabled
|
||||
log_writes disabled
|
||||
compress_pages_compressed disabled
|
||||
compress_pages_decompressed disabled
|
||||
compression_pad_increments disabled
|
||||
compression_pad_decrements 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
|
||||
adaptive_hash_pages_removed disabled
|
||||
adaptive_hash_rows_added disabled
|
||||
adaptive_hash_rows_removed disabled
|
||||
adaptive_hash_rows_deleted_no_hash_entry disabled
|
||||
adaptive_hash_rows_updated disabled
|
||||
file_num_open_files disabled
|
||||
ibuf_merges_insert disabled
|
||||
ibuf_merges_delete_mark disabled
|
||||
ibuf_merges_delete disabled
|
||||
ibuf_merges_discard_insert disabled
|
||||
ibuf_merges_discard_delete_mark disabled
|
||||
ibuf_merges_discard_delete disabled
|
||||
ibuf_merges disabled
|
||||
ibuf_size disabled
|
||||
innodb_master_thread_sleeps disabled
|
||||
innodb_activity_count disabled
|
||||
innodb_master_active_loops disabled
|
||||
innodb_master_idle_loops disabled
|
||||
innodb_background_drop_table_usec disabled
|
||||
innodb_ibuf_merge_usec disabled
|
||||
innodb_log_flush_usec disabled
|
||||
innodb_mem_validate_usec disabled
|
||||
innodb_master_purge_usec disabled
|
||||
innodb_dict_lru_usec disabled
|
||||
innodb_checkpoint_usec disabled
|
||||
innodb_dblwr_writes disabled
|
||||
innodb_dblwr_pages_written disabled
|
||||
innodb_page_size disabled
|
||||
innodb_rwlock_s_spin_waits disabled
|
||||
innodb_rwlock_x_spin_waits disabled
|
||||
innodb_rwlock_s_spin_rounds disabled
|
||||
innodb_rwlock_x_spin_rounds disabled
|
||||
innodb_rwlock_s_os_waits disabled
|
||||
innodb_rwlock_x_os_waits disabled
|
||||
dml_reads disabled
|
||||
dml_inserts disabled
|
||||
dml_deletes disabled
|
||||
dml_updates disabled
|
||||
dml_system_reads disabled
|
||||
dml_system_inserts disabled
|
||||
dml_system_deletes disabled
|
||||
dml_system_updates disabled
|
||||
ddl_background_drop_indexes disabled
|
||||
ddl_background_drop_tables disabled
|
||||
ddl_online_create_index disabled
|
||||
ddl_pending_alter_table disabled
|
||||
icp_attempts disabled
|
||||
icp_no_match disabled
|
||||
icp_out_of_range disabled
|
||||
icp_match disabled
|
||||
set global innodb_monitor_enable = all;
|
||||
select name from information_schema.innodb_metrics where status!='enabled';
|
||||
name
|
||||
set global innodb_monitor_enable = aaa;
|
||||
ERROR 42000: Variable 'innodb_monitor_enable' can't be set to the value of 'aaa'
|
||||
set global innodb_monitor_disable = All;
|
||||
select name from information_schema.innodb_metrics where status!='disabled';
|
||||
name
|
||||
set global innodb_monitor_reset_all = all;
|
||||
select name from information_schema.innodb_metrics where count!=0;
|
||||
name
|
||||
set global innodb_monitor_enable = "%lock%";
|
||||
select name from information_schema.innodb_metrics
|
||||
where status != IF(name like "%lock%", 'enabled', 'disabled');
|
||||
name
|
||||
set global innodb_monitor_disable = "%lock%";
|
||||
select name, status from information_schema.innodb_metrics
|
||||
where name like "%lock%";
|
||||
name status
|
||||
lock_deadlocks disabled
|
||||
lock_timeouts disabled
|
||||
lock_rec_lock_waits disabled
|
||||
lock_table_lock_waits disabled
|
||||
lock_rec_lock_requests disabled
|
||||
lock_rec_lock_created disabled
|
||||
lock_rec_lock_removed disabled
|
||||
lock_rec_locks disabled
|
||||
lock_table_lock_created disabled
|
||||
lock_table_lock_removed disabled
|
||||
lock_table_locks disabled
|
||||
lock_row_lock_current_waits disabled
|
||||
lock_row_lock_time disabled
|
||||
lock_row_lock_time_max disabled
|
||||
lock_row_lock_waits disabled
|
||||
lock_row_lock_time_avg disabled
|
||||
innodb_rwlock_s_spin_waits disabled
|
||||
innodb_rwlock_x_spin_waits disabled
|
||||
innodb_rwlock_s_spin_rounds disabled
|
||||
innodb_rwlock_x_spin_rounds disabled
|
||||
innodb_rwlock_s_os_waits disabled
|
||||
innodb_rwlock_x_os_waits disabled
|
||||
set global innodb_monitor_enable = "%lock*";
|
||||
ERROR 42000: Variable 'innodb_monitor_enable' can't be set to the value of '%lock*'
|
||||
set global innodb_monitor_enable="%%%%%%%%%%%%%%%%%%%%%%%%%%%";
|
||||
select name from information_schema.innodb_metrics where status!='enabled';
|
||||
name
|
||||
set global innodb_monitor_disable="%%%%%";
|
||||
select name from information_schema.innodb_metrics where status!='disabled';
|
||||
name
|
||||
set global innodb_monitor_enable="%";
|
||||
select name from information_schema.innodb_metrics where status!='enabled';
|
||||
name
|
||||
set global innodb_monitor_disable="%_%";
|
||||
select name from information_schema.innodb_metrics where status!='disabled';
|
||||
name
|
||||
set global innodb_monitor_enable="log%%%%";
|
||||
select name from information_schema.innodb_metrics
|
||||
where status != IF(name like "log%", 'enabled', 'disabled');
|
||||
name
|
||||
set global innodb_monitor_enable="os_%a_fs_ncs";
|
||||
set global innodb_monitor_enable="os%pending%";
|
||||
select name, status from information_schema.innodb_metrics
|
||||
where name like "os%";
|
||||
name status
|
||||
os_data_reads disabled
|
||||
os_data_writes disabled
|
||||
os_data_fsyncs enabled
|
||||
os_pending_reads enabled
|
||||
os_pending_writes enabled
|
||||
os_log_bytes_written disabled
|
||||
os_log_fsyncs disabled
|
||||
os_log_pending_fsyncs enabled
|
||||
os_log_pending_writes enabled
|
||||
set global innodb_monitor_enable="";
|
||||
ERROR 42000: Variable 'innodb_monitor_enable' can't be set to the value of ''
|
||||
set global innodb_monitor_enable="_";
|
||||
ERROR 42000: Variable 'innodb_monitor_enable' can't be set to the value of '_'
|
||||
set global innodb_monitor_disable = module_metadata;
|
||||
set global innodb_monitor_reset_all = module_metadata;
|
||||
set global innodb_monitor_enable = metadata_table_handles_opened;
|
||||
create table monitor_test(col int) engine = innodb;
|
||||
select * from monitor_test;
|
||||
col
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_opened 1 NULL 1 1 NULL 1 enabled
|
||||
set global innodb_monitor_reset = metadata_table_handles_opened;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_opened 1 NULL 1 NULL NULL 0 enabled
|
||||
drop table monitor_test;
|
||||
create table monitor_test(col int) engine = innodb;
|
||||
select * from monitor_test;
|
||||
col
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_opened 2 NULL 2 1 NULL 1 enabled
|
||||
set global innodb_monitor_reset_all = metadata_table_handles_opened;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_opened 2 NULL 2 1 NULL 1 enabled
|
||||
set global innodb_monitor_disable = metadata_table_handles_opened;
|
||||
set global innodb_monitor_reset = metadata_table_handles_opened;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_opened 2 NULL 2 NULL NULL 0 disabled
|
||||
drop table monitor_test;
|
||||
create table monitor_test(col int) engine = innodb;
|
||||
select * from monitor_test;
|
||||
col
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_opened 2 NULL 2 NULL NULL 0 disabled
|
||||
set global innodb_monitor_reset_all = metadata_table_handles_opened;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_opened NULL NULL 0 NULL NULL 0 disabled
|
||||
set global innodb_monitor_enable = metadata_table_handles_opened;
|
||||
drop table monitor_test;
|
||||
create table monitor_test(col int) engine = innodb stats_persistent=0;
|
||||
select * from monitor_test;
|
||||
col
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_opened 1 NULL 1 1 NULL 1 enabled
|
||||
set global innodb_monitor_enable = metadata_table_handles_closed;
|
||||
create index idx on monitor_test(col);
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_closed";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_closed 1 NULL 1 1 NULL 1 enabled
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "metadata%";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_opened 2 NULL 2 2 NULL 2 enabled
|
||||
metadata_table_handles_closed 1 NULL 1 1 NULL 1 enabled
|
||||
metadata_table_reference_count NULL NULL 0 NULL NULL 0 disabled
|
||||
metadata_mem_pool_size NULL NULL 0 NULL NULL 0 disabled
|
||||
set global innodb_monitor_disable = module_metadata;
|
||||
set global innodb_monitor_reset = module_metadata;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "metadata%";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_opened 2 NULL 2 NULL NULL 0 disabled
|
||||
metadata_table_handles_closed 1 NULL 1 NULL NULL 0 disabled
|
||||
metadata_table_reference_count NULL NULL 0 NULL NULL 0 disabled
|
||||
metadata_mem_pool_size NULL NULL 0 NULL NULL 0 disabled
|
||||
set global innodb_monitor_reset_all = module_metadata;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "metadata%";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
metadata_table_handles_opened NULL NULL 0 NULL NULL 0 disabled
|
||||
metadata_table_handles_closed NULL NULL 0 NULL NULL 0 disabled
|
||||
metadata_table_reference_count NULL NULL 0 NULL NULL 0 disabled
|
||||
metadata_mem_pool_size NULL NULL 0 NULL NULL 0 disabled
|
||||
set global innodb_monitor_enable = module_trx;
|
||||
begin;
|
||||
insert into monitor_test values(9);
|
||||
commit;
|
||||
begin;
|
||||
insert into monitor_test values(9);
|
||||
rollback;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "trx_rollbacks" or name like "trx_active_transactions";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
trx_rollbacks 1 NULL 1 1 NULL 1 enabled
|
||||
trx_active_transactions 1 0 0 1 0 0 enabled
|
||||
set global innodb_monitor_disable = module_trx;
|
||||
set global innodb_monitor_enable = module_dml;
|
||||
insert into monitor_test values(9);
|
||||
update monitor_test set col = 10 where col = 9;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
dml_reads 4 NULL 4 4 NULL 4 enabled
|
||||
dml_inserts 1 NULL 1 1 NULL 1 enabled
|
||||
dml_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_updates 2 NULL 2 2 NULL 2 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
delete from monitor_test;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
dml_reads 6 NULL 6 6 NULL 6 enabled
|
||||
dml_inserts 1 NULL 1 1 NULL 1 enabled
|
||||
dml_deletes 2 NULL 2 2 NULL 2 enabled
|
||||
dml_updates 2 NULL 2 2 NULL 2 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
set global innodb_monitor_reset = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
dml_reads 6 NULL 6 0 NULL 0 enabled
|
||||
dml_inserts 1 NULL 1 0 NULL 0 enabled
|
||||
dml_deletes 2 NULL 2 0 NULL 0 enabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
insert into monitor_test values(9);
|
||||
insert into monitor_test values(1);
|
||||
delete from monitor_test;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
dml_reads 8 NULL 8 2 NULL 2 enabled
|
||||
dml_inserts 3 NULL 3 2 NULL 2 enabled
|
||||
dml_deletes 4 NULL 4 2 NULL 2 enabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
set global innodb_monitor_reset_all = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
dml_reads 8 NULL 8 2 NULL 2 enabled
|
||||
dml_inserts 3 NULL 3 2 NULL 2 enabled
|
||||
dml_deletes 4 NULL 4 2 NULL 2 enabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
set global innodb_monitor_disable = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
dml_reads 8 NULL 8 2 NULL 2 disabled
|
||||
dml_inserts 3 NULL 3 2 NULL 2 disabled
|
||||
dml_deletes 4 NULL 4 2 NULL 2 disabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 disabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 disabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 disabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 disabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 disabled
|
||||
set global innodb_monitor_reset_all = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
dml_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_inserts NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_inserts NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
set global innodb_monitor_enable = dml_inserts;
|
||||
insert into monitor_test values(9);
|
||||
insert into monitor_test values(1);
|
||||
delete from monitor_test;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
dml_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_inserts 2 NULL 2 2 NULL 2 enabled
|
||||
dml_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_inserts NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
set global innodb_monitor_disable = module_dml;
|
||||
drop table monitor_test;
|
||||
set global innodb_monitor_enable = file_num_open_files;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "file_num_open_files";
|
||||
name max_count min_count count max_count_reset min_count_reset count_reset status
|
||||
file_num_open_files # # # # # # enabled
|
||||
set global innodb_monitor_disable = file_num_open_files;
|
||||
set global innodb_monitor_enable = "icp%";
|
||||
create table monitor_test(a char(3), b int, c char(2),
|
||||
primary key (a(1), c(1)), key(b)) engine = innodb;
|
||||
insert into monitor_test values("13", 2, "aa");
|
||||
select a from monitor_test where b < 1 for update;
|
||||
a
|
||||
select name, count from information_schema.innodb_metrics
|
||||
where name like "icp%";
|
||||
name count
|
||||
icp_attempts 1
|
||||
icp_no_match 0
|
||||
icp_out_of_range 1
|
||||
icp_match 0
|
||||
select a from monitor_test where b < 3 for update;
|
||||
a
|
||||
13
|
||||
select name, count from information_schema.innodb_metrics
|
||||
where name like "icp%";
|
||||
name count
|
||||
icp_attempts 2
|
||||
icp_no_match 0
|
||||
icp_out_of_range 1
|
||||
icp_match 1
|
||||
drop table monitor_test;
|
||||
set global innodb_monitor_disable = all;
|
||||
set global innodb_monitor_reset_all = all;
|
||||
select 1 from `information_schema`.`INNODB_METRICS`
|
||||
where case (1) when (1) then (AVG_COUNT_RESET) else (1) end;
|
||||
1
|
||||
set global innodb_monitor_enable = default;
|
||||
set global innodb_monitor_disable = default;
|
||||
set global innodb_monitor_reset = default;
|
||||
set global innodb_monitor_reset_all = default;
|
387
mysql-test/suite/innodb/t/innodb_monitor.test
Normal file
387
mysql-test/suite/innodb/t/innodb_monitor.test
Normal file
@ -0,0 +1,387 @@
|
||||
# This is the test for Metrics Monitor Table feature.
|
||||
# Test the metrics monitor system's control system
|
||||
# and counter accuracy.
|
||||
|
||||
--source include/have_innodb.inc
|
||||
|
||||
set global innodb_monitor_disable = All;
|
||||
|
||||
# Test turn on/off the monitor counter with "all" option
|
||||
# By default, they will be off
|
||||
select name, status from information_schema.innodb_metrics;
|
||||
|
||||
# Turn on all monitor counters
|
||||
set global innodb_monitor_enable = all;
|
||||
|
||||
# status should all change to "enabled"
|
||||
select name from information_schema.innodb_metrics where status!='enabled';
|
||||
|
||||
# Test wrong argument to the global configure option
|
||||
--error ER_WRONG_VALUE_FOR_VAR
|
||||
set global innodb_monitor_enable = aaa;
|
||||
|
||||
# We require a valid monitor counter/module name. There is no default
|
||||
# counter name or module. A warning will be printed asking user to
|
||||
# specify a valid counter name.
|
||||
#--disable_warnings
|
||||
#set global innodb_monitor_enable = default;
|
||||
#--enable_warnings
|
||||
|
||||
# Turn off all monitor counters, option name should be case
|
||||
# insensitive
|
||||
set global innodb_monitor_disable = All;
|
||||
|
||||
# status should all change to "disabled"
|
||||
select name from information_schema.innodb_metrics where status!='disabled';
|
||||
|
||||
# Reset all counter values
|
||||
set global innodb_monitor_reset_all = all;
|
||||
|
||||
# count should all change to 0
|
||||
select name from information_schema.innodb_metrics where count!=0;
|
||||
|
||||
# Test wildcard match, turn on all counters contain string "lock"
|
||||
set global innodb_monitor_enable = "%lock%";
|
||||
|
||||
# All lock related counter should be enabled
|
||||
select name from information_schema.innodb_metrics
|
||||
where status != IF(name like "%lock%", 'enabled', 'disabled');
|
||||
|
||||
# Disable them
|
||||
set global innodb_monitor_disable = "%lock%";
|
||||
|
||||
# All lock related counter should be disabled
|
||||
select name, status from information_schema.innodb_metrics
|
||||
where name like "%lock%";
|
||||
|
||||
# No match for "%lock*"
|
||||
--error ER_WRONG_VALUE_FOR_VAR
|
||||
set global innodb_monitor_enable = "%lock*";
|
||||
|
||||
# All counters will be turned on with wildcard match string with all "%"
|
||||
set global innodb_monitor_enable="%%%%%%%%%%%%%%%%%%%%%%%%%%%";
|
||||
|
||||
select name from information_schema.innodb_metrics where status!='enabled';
|
||||
|
||||
# Turn off all counters
|
||||
set global innodb_monitor_disable="%%%%%";
|
||||
|
||||
select name from information_schema.innodb_metrics where status!='disabled';
|
||||
|
||||
# One more round testing. All counters will be turned on with
|
||||
# single wildcard character "%"
|
||||
set global innodb_monitor_enable="%";
|
||||
|
||||
select name from information_schema.innodb_metrics where status!='enabled';
|
||||
|
||||
# Turn off all the counters with "%_%"
|
||||
set global innodb_monitor_disable="%_%";
|
||||
|
||||
select name from information_schema.innodb_metrics where status!='disabled';
|
||||
|
||||
# Turn on all counters start with "log"
|
||||
set global innodb_monitor_enable="log%%%%";
|
||||
|
||||
select name from information_schema.innodb_metrics
|
||||
where status != IF(name like "log%", 'enabled', 'disabled');
|
||||
|
||||
# Turn on counters "os_data_fsync" with wildcard match "os_%a_fs_ncs", "_"
|
||||
# is single character wildcard match word
|
||||
set global innodb_monitor_enable="os_%a_fs_ncs";
|
||||
|
||||
# Turn on counters whose name contains "os" and "pending" with
|
||||
# wildcard match "os%pending%"
|
||||
set global innodb_monitor_enable="os%pending%";
|
||||
|
||||
select name, status from information_schema.innodb_metrics
|
||||
where name like "os%";
|
||||
|
||||
# Empty string is an invalid option
|
||||
--error ER_WRONG_VALUE_FOR_VAR
|
||||
set global innodb_monitor_enable="";
|
||||
|
||||
--error ER_WRONG_VALUE_FOR_VAR
|
||||
set global innodb_monitor_enable="_";
|
||||
|
||||
# Reset counters only in "module_metadata" module
|
||||
set global innodb_monitor_disable = module_metadata;
|
||||
|
||||
set global innodb_monitor_reset_all = module_metadata;
|
||||
|
||||
# Only turn on "table_open" counter
|
||||
set global innodb_monitor_enable = metadata_table_handles_opened;
|
||||
|
||||
# Create a new table to test "metadata_table_handles_opened" counter
|
||||
create table monitor_test(col int) engine = innodb;
|
||||
|
||||
# This will open the monitor_test table
|
||||
select * from monitor_test;
|
||||
|
||||
# "metadata_table_handles_opened" should increment by 1
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
|
||||
# Reset the counter value while counter is still on (started)
|
||||
# This will reset value "count_reset" but not
|
||||
# "count"
|
||||
set global innodb_monitor_reset = metadata_table_handles_opened;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
|
||||
# re-create table again to increment "metadata_table_handles_opened" again
|
||||
drop table monitor_test;
|
||||
|
||||
# Create a new table to test "metadata_table_handles_opened" counter
|
||||
create table monitor_test(col int) engine = innodb;
|
||||
|
||||
select * from monitor_test;
|
||||
|
||||
# "metadata_table_handles_opened" should increment
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
|
||||
# Cannot reset all monitor value while the counter is on
|
||||
set global innodb_monitor_reset_all = metadata_table_handles_opened;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
|
||||
# Turn off the counter "metadata_table_handles_opened"
|
||||
set global innodb_monitor_disable = metadata_table_handles_opened;
|
||||
|
||||
# Reset the counter value while counter is off (disabled)
|
||||
set global innodb_monitor_reset = metadata_table_handles_opened;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
|
||||
# re-create table again. Since monitor is off, "metadata_table_handles_opened"
|
||||
# should not be incremented
|
||||
drop table monitor_test;
|
||||
|
||||
# Create a new table to test "metadata_table_handles_opened" counter
|
||||
create table monitor_test(col int) engine = innodb;
|
||||
|
||||
# "metadata_table_handles_opened" should increment
|
||||
select * from monitor_test;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
|
||||
# Reset all the counters, include those counter *_since_start
|
||||
set global innodb_monitor_reset_all = metadata_table_handles_opened;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
|
||||
# Turn on "table_open" counter again
|
||||
set global innodb_monitor_enable = metadata_table_handles_opened;
|
||||
|
||||
# Test metadata_table_handles_opened again to see if it is working correctly
|
||||
# after above round of turning on/off/reset
|
||||
drop table monitor_test;
|
||||
|
||||
# Create a new table to test "metadata_table_handles_opened" counter
|
||||
create table monitor_test(col int) engine = innodb stats_persistent=0;
|
||||
|
||||
select * from monitor_test;
|
||||
|
||||
# "metadata_table_handles_opened" should increment
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_opened";
|
||||
|
||||
# Test counter "metadata_table_handles_closed",
|
||||
# create index will close the old handle
|
||||
set global innodb_monitor_enable = metadata_table_handles_closed;
|
||||
|
||||
create index idx on monitor_test(col);
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name = "metadata_table_handles_closed";
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "metadata%";
|
||||
|
||||
# Reset counters only in "module_metadata" module
|
||||
set global innodb_monitor_disable = module_metadata;
|
||||
|
||||
set global innodb_monitor_reset = module_metadata;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "metadata%";
|
||||
|
||||
set global innodb_monitor_reset_all = module_metadata;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "metadata%";
|
||||
|
||||
# Test Transaction Module
|
||||
set global innodb_monitor_enable = module_trx;
|
||||
|
||||
begin;
|
||||
insert into monitor_test values(9);
|
||||
commit;
|
||||
|
||||
begin;
|
||||
insert into monitor_test values(9);
|
||||
rollback;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "trx_rollbacks" or name like "trx_active_transactions";
|
||||
|
||||
set global innodb_monitor_disable = module_trx;
|
||||
|
||||
# Test DML Module
|
||||
set global innodb_monitor_enable = module_dml;
|
||||
|
||||
insert into monitor_test values(9);
|
||||
|
||||
update monitor_test set col = 10 where col = 9;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
|
||||
delete from monitor_test;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
|
||||
# test reset counter while the counter is on
|
||||
set global innodb_monitor_reset = module_dml;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
|
||||
# insert/delete some rows after the reset
|
||||
insert into monitor_test values(9);
|
||||
insert into monitor_test values(1);
|
||||
|
||||
delete from monitor_test;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
|
||||
# We do not allow reset_all while the counter is on, nothing
|
||||
# should be reset here
|
||||
set global innodb_monitor_reset_all = module_dml;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
|
||||
# Turn off the counter
|
||||
set global innodb_monitor_disable = module_dml;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
|
||||
# Reset all counter values
|
||||
set global innodb_monitor_reset_all = module_dml;
|
||||
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
|
||||
# Open individual counter "dml_inserts"
|
||||
set global innodb_monitor_enable = dml_inserts;
|
||||
|
||||
insert into monitor_test values(9);
|
||||
insert into monitor_test values(1);
|
||||
|
||||
delete from monitor_test;
|
||||
|
||||
# Only counter "dml_inserts" should be updated
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "dml%";
|
||||
|
||||
set global innodb_monitor_disable = module_dml;
|
||||
|
||||
drop table monitor_test;
|
||||
|
||||
set global innodb_monitor_enable = file_num_open_files;
|
||||
|
||||
# Counters are unpredictable when innodb-file-per-table is on
|
||||
--replace_column 2 # 3 # 4 # 5 # 6 # 7 #
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
from information_schema.innodb_metrics
|
||||
where name like "file_num_open_files";
|
||||
|
||||
set global innodb_monitor_disable = file_num_open_files;
|
||||
|
||||
# Test ICP module counters
|
||||
set global innodb_monitor_enable = "icp%";
|
||||
|
||||
create table monitor_test(a char(3), b int, c char(2),
|
||||
primary key (a(1), c(1)), key(b)) engine = innodb;
|
||||
|
||||
insert into monitor_test values("13", 2, "aa");
|
||||
|
||||
select a from monitor_test where b < 1 for update;
|
||||
|
||||
# should have icp_attempts = 1 and icp_out_of_range = 1
|
||||
select name, count from information_schema.innodb_metrics
|
||||
where name like "icp%";
|
||||
|
||||
# should have icp_attempts = 2 and icp_match = 1
|
||||
select a from monitor_test where b < 3 for update;
|
||||
|
||||
select name, count from information_schema.innodb_metrics
|
||||
where name like "icp%";
|
||||
|
||||
drop table monitor_test;
|
||||
|
||||
set global innodb_monitor_disable = all;
|
||||
set global innodb_monitor_reset_all = all;
|
||||
|
||||
# Test for bug #13966091
|
||||
select 1 from `information_schema`.`INNODB_METRICS`
|
||||
where case (1) when (1) then (AVG_COUNT_RESET) else (1) end;
|
||||
|
||||
-- disable_warnings
|
||||
set global innodb_monitor_enable = default;
|
||||
set global innodb_monitor_disable = default;
|
||||
set global innodb_monitor_reset = default;
|
||||
set global innodb_monitor_reset_all = default;
|
||||
-- enable_warnings
|
50
mysql-test/suite/rpl/include/rpl_innodb_rows_counters.inc
Normal file
50
mysql-test/suite/rpl/include/rpl_innodb_rows_counters.inc
Normal file
@ -0,0 +1,50 @@
|
||||
#########################################
|
||||
# Author: Benjamin Renard benj@fb.com
|
||||
# Date: 11/15/2013
|
||||
# Purpose: Showing the difference between current innodb rows stats and the ones recorded at the beginning of the test
|
||||
# Requirements: Having @[master|slave]_[system_]rows_[read|inserted|deleted|updated] counters already created
|
||||
#########################################
|
||||
|
||||
--connection master
|
||||
--echo ==========MASTER==========
|
||||
|
||||
select variable_value into @rows_read from information_schema.global_status where variable_name = 'innodb_rows_read';
|
||||
select @rows_read - @master_rows_read;
|
||||
select variable_value into @rows_updated from information_schema.global_status where variable_name = 'innodb_rows_updated';
|
||||
select @rows_updated - @master_rows_updated;
|
||||
select variable_value into @rows_deleted from information_schema.global_status where variable_name = 'innodb_rows_deleted';
|
||||
select @rows_deleted - @master_rows_deleted;
|
||||
select variable_value into @rows_inserted from information_schema.global_status where variable_name = 'innodb_rows_inserted';
|
||||
select @rows_inserted - @master_rows_inserted;
|
||||
|
||||
select variable_value into @system_rows_read from information_schema.global_status where variable_name = 'innodb_system_rows_read';
|
||||
select @system_rows_read - @master_system_rows_read;
|
||||
select variable_value into @system_rows_updated from information_schema.global_status where variable_name = 'innodb_system_rows_updated';
|
||||
select @system_rows_updated - @master_system_rows_updated;
|
||||
select variable_value into @system_rows_deleted from information_schema.global_status where variable_name = 'innodb_system_rows_deleted';
|
||||
select @system_rows_deleted - @master_system_rows_deleted;
|
||||
select variable_value into @system_rows_inserted from information_schema.global_status where variable_name = 'innodb_system_rows_inserted';
|
||||
select @system_rows_inserted - @master_system_rows_inserted;
|
||||
|
||||
--sync_slave_with_master
|
||||
--echo ==========SLAVE===========
|
||||
|
||||
select variable_value into @rows_read from information_schema.global_status where variable_name = 'innodb_rows_read';
|
||||
select @rows_read - @slave_rows_read;
|
||||
select variable_value into @rows_updated from information_schema.global_status where variable_name = 'innodb_rows_updated';
|
||||
select @rows_updated - @slave_rows_updated;
|
||||
select variable_value into @rows_deleted from information_schema.global_status where variable_name = 'innodb_rows_deleted';
|
||||
select @rows_deleted - @slave_rows_deleted;
|
||||
select variable_value into @rows_inserted from information_schema.global_status where variable_name = 'innodb_rows_inserted';
|
||||
select @rows_inserted - @slave_rows_inserted;
|
||||
|
||||
select variable_value into @system_rows_read from information_schema.global_status where variable_name = 'innodb_system_rows_read';
|
||||
select @system_rows_read - @slave_system_rows_read;
|
||||
select variable_value into @system_rows_updated from information_schema.global_status where variable_name = 'innodb_system_rows_updated';
|
||||
select @system_rows_updated - @slave_system_rows_updated;
|
||||
select variable_value into @system_rows_deleted from information_schema.global_status where variable_name = 'innodb_system_rows_deleted';
|
||||
select @system_rows_deleted - @slave_system_rows_deleted;
|
||||
select variable_value into @system_rows_inserted from information_schema.global_status where variable_name = 'innodb_system_rows_inserted';
|
||||
select @system_rows_inserted - @slave_system_rows_inserted;
|
||||
|
||||
--connection master
|
227
mysql-test/suite/rpl/r/rpl_innodb_bug68220.result
Normal file
227
mysql-test/suite/rpl/r/rpl_innodb_bug68220.result
Normal file
@ -0,0 +1,227 @@
|
||||
include/master-slave.inc
|
||||
[connection master]
|
||||
DROP TABLE IF EXISTS testdb.t1;
|
||||
DROP DATABASE IF EXISTS testdb;
|
||||
select variable_value into @master_rows_read from information_schema.global_status where variable_name = 'innodb_rows_read';
|
||||
select variable_value into @master_rows_updated from information_schema.global_status where variable_name = 'innodb_rows_updated';
|
||||
select variable_value into @master_rows_deleted from information_schema.global_status where variable_name = 'innodb_rows_deleted';
|
||||
select variable_value into @master_rows_inserted from information_schema.global_status where variable_name = 'innodb_rows_inserted';
|
||||
select variable_value into @master_system_rows_read from information_schema.global_status where variable_name = 'innodb_system_rows_read';
|
||||
select variable_value into @master_system_rows_updated from information_schema.global_status where variable_name = 'innodb_system_rows_updated';
|
||||
select variable_value into @master_system_rows_deleted from information_schema.global_status where variable_name = 'innodb_system_rows_deleted';
|
||||
select variable_value into @master_system_rows_inserted from information_schema.global_status where variable_name = 'innodb_system_rows_inserted';
|
||||
select variable_value into @slave_rows_read from information_schema.global_status where variable_name = 'innodb_rows_read';
|
||||
select variable_value into @slave_rows_updated from information_schema.global_status where variable_name = 'innodb_rows_updated';
|
||||
select variable_value into @slave_rows_deleted from information_schema.global_status where variable_name = 'innodb_rows_deleted';
|
||||
select variable_value into @slave_rows_inserted from information_schema.global_status where variable_name = 'innodb_rows_inserted';
|
||||
select variable_value into @slave_system_rows_read from information_schema.global_status where variable_name = 'innodb_system_rows_read';
|
||||
select variable_value into @slave_system_rows_updated from information_schema.global_status where variable_name = 'innodb_system_rows_updated';
|
||||
select variable_value into @slave_system_rows_deleted from information_schema.global_status where variable_name = 'innodb_system_rows_deleted';
|
||||
select variable_value into @slave_system_rows_inserted from information_schema.global_status where variable_name = 'innodb_system_rows_inserted';
|
||||
CREATE DATABASE testdb;
|
||||
USE testdb;
|
||||
CREATE TABLE testdb.t1 (i int NOT NULL PRIMARY KEY) ENGINE=InnoDB;
|
||||
INSERT INTO testdb.t1 VALUES (1);
|
||||
==========MASTER==========
|
||||
select variable_value into @rows_read from information_schema.global_status where variable_name = 'innodb_rows_read';
|
||||
select @rows_read - @master_rows_read;
|
||||
@rows_read - @master_rows_read
|
||||
0
|
||||
select variable_value into @rows_updated from information_schema.global_status where variable_name = 'innodb_rows_updated';
|
||||
select @rows_updated - @master_rows_updated;
|
||||
@rows_updated - @master_rows_updated
|
||||
0
|
||||
select variable_value into @rows_deleted from information_schema.global_status where variable_name = 'innodb_rows_deleted';
|
||||
select @rows_deleted - @master_rows_deleted;
|
||||
@rows_deleted - @master_rows_deleted
|
||||
0
|
||||
select variable_value into @rows_inserted from information_schema.global_status where variable_name = 'innodb_rows_inserted';
|
||||
select @rows_inserted - @master_rows_inserted;
|
||||
@rows_inserted - @master_rows_inserted
|
||||
1
|
||||
select variable_value into @system_rows_read from information_schema.global_status where variable_name = 'innodb_system_rows_read';
|
||||
select @system_rows_read - @master_system_rows_read;
|
||||
@system_rows_read - @master_system_rows_read
|
||||
0
|
||||
select variable_value into @system_rows_updated from information_schema.global_status where variable_name = 'innodb_system_rows_updated';
|
||||
select @system_rows_updated - @master_system_rows_updated;
|
||||
@system_rows_updated - @master_system_rows_updated
|
||||
0
|
||||
select variable_value into @system_rows_deleted from information_schema.global_status where variable_name = 'innodb_system_rows_deleted';
|
||||
select @system_rows_deleted - @master_system_rows_deleted;
|
||||
@system_rows_deleted - @master_system_rows_deleted
|
||||
0
|
||||
select variable_value into @system_rows_inserted from information_schema.global_status where variable_name = 'innodb_system_rows_inserted';
|
||||
select @system_rows_inserted - @master_system_rows_inserted;
|
||||
@system_rows_inserted - @master_system_rows_inserted
|
||||
0
|
||||
==========SLAVE===========
|
||||
select variable_value into @rows_read from information_schema.global_status where variable_name = 'innodb_rows_read';
|
||||
select @rows_read - @slave_rows_read;
|
||||
@rows_read - @slave_rows_read
|
||||
0
|
||||
select variable_value into @rows_updated from information_schema.global_status where variable_name = 'innodb_rows_updated';
|
||||
select @rows_updated - @slave_rows_updated;
|
||||
@rows_updated - @slave_rows_updated
|
||||
0
|
||||
select variable_value into @rows_deleted from information_schema.global_status where variable_name = 'innodb_rows_deleted';
|
||||
select @rows_deleted - @slave_rows_deleted;
|
||||
@rows_deleted - @slave_rows_deleted
|
||||
0
|
||||
select variable_value into @rows_inserted from information_schema.global_status where variable_name = 'innodb_rows_inserted';
|
||||
select @rows_inserted - @slave_rows_inserted;
|
||||
@rows_inserted - @slave_rows_inserted
|
||||
1
|
||||
select variable_value into @system_rows_read from information_schema.global_status where variable_name = 'innodb_system_rows_read';
|
||||
select @system_rows_read - @slave_system_rows_read;
|
||||
@system_rows_read - @slave_system_rows_read
|
||||
0
|
||||
select variable_value into @system_rows_updated from information_schema.global_status where variable_name = 'innodb_system_rows_updated';
|
||||
select @system_rows_updated - @slave_system_rows_updated;
|
||||
@system_rows_updated - @slave_system_rows_updated
|
||||
0
|
||||
select variable_value into @system_rows_deleted from information_schema.global_status where variable_name = 'innodb_system_rows_deleted';
|
||||
select @system_rows_deleted - @slave_system_rows_deleted;
|
||||
@system_rows_deleted - @slave_system_rows_deleted
|
||||
0
|
||||
select variable_value into @system_rows_inserted from information_schema.global_status where variable_name = 'innodb_system_rows_inserted';
|
||||
select @system_rows_inserted - @slave_system_rows_inserted;
|
||||
@system_rows_inserted - @slave_system_rows_inserted
|
||||
0
|
||||
UPDATE t1 SET i=2 WHERE i=1;
|
||||
==========MASTER==========
|
||||
select variable_value into @rows_read from information_schema.global_status where variable_name = 'innodb_rows_read';
|
||||
select @rows_read - @master_rows_read;
|
||||
@rows_read - @master_rows_read
|
||||
1
|
||||
select variable_value into @rows_updated from information_schema.global_status where variable_name = 'innodb_rows_updated';
|
||||
select @rows_updated - @master_rows_updated;
|
||||
@rows_updated - @master_rows_updated
|
||||
1
|
||||
select variable_value into @rows_deleted from information_schema.global_status where variable_name = 'innodb_rows_deleted';
|
||||
select @rows_deleted - @master_rows_deleted;
|
||||
@rows_deleted - @master_rows_deleted
|
||||
0
|
||||
select variable_value into @rows_inserted from information_schema.global_status where variable_name = 'innodb_rows_inserted';
|
||||
select @rows_inserted - @master_rows_inserted;
|
||||
@rows_inserted - @master_rows_inserted
|
||||
1
|
||||
select variable_value into @system_rows_read from information_schema.global_status where variable_name = 'innodb_system_rows_read';
|
||||
select @system_rows_read - @master_system_rows_read;
|
||||
@system_rows_read - @master_system_rows_read
|
||||
0
|
||||
select variable_value into @system_rows_updated from information_schema.global_status where variable_name = 'innodb_system_rows_updated';
|
||||
select @system_rows_updated - @master_system_rows_updated;
|
||||
@system_rows_updated - @master_system_rows_updated
|
||||
0
|
||||
select variable_value into @system_rows_deleted from information_schema.global_status where variable_name = 'innodb_system_rows_deleted';
|
||||
select @system_rows_deleted - @master_system_rows_deleted;
|
||||
@system_rows_deleted - @master_system_rows_deleted
|
||||
0
|
||||
select variable_value into @system_rows_inserted from information_schema.global_status where variable_name = 'innodb_system_rows_inserted';
|
||||
select @system_rows_inserted - @master_system_rows_inserted;
|
||||
@system_rows_inserted - @master_system_rows_inserted
|
||||
0
|
||||
==========SLAVE===========
|
||||
select variable_value into @rows_read from information_schema.global_status where variable_name = 'innodb_rows_read';
|
||||
select @rows_read - @slave_rows_read;
|
||||
@rows_read - @slave_rows_read
|
||||
1
|
||||
select variable_value into @rows_updated from information_schema.global_status where variable_name = 'innodb_rows_updated';
|
||||
select @rows_updated - @slave_rows_updated;
|
||||
@rows_updated - @slave_rows_updated
|
||||
1
|
||||
select variable_value into @rows_deleted from information_schema.global_status where variable_name = 'innodb_rows_deleted';
|
||||
select @rows_deleted - @slave_rows_deleted;
|
||||
@rows_deleted - @slave_rows_deleted
|
||||
0
|
||||
select variable_value into @rows_inserted from information_schema.global_status where variable_name = 'innodb_rows_inserted';
|
||||
select @rows_inserted - @slave_rows_inserted;
|
||||
@rows_inserted - @slave_rows_inserted
|
||||
1
|
||||
select variable_value into @system_rows_read from information_schema.global_status where variable_name = 'innodb_system_rows_read';
|
||||
select @system_rows_read - @slave_system_rows_read;
|
||||
@system_rows_read - @slave_system_rows_read
|
||||
0
|
||||
select variable_value into @system_rows_updated from information_schema.global_status where variable_name = 'innodb_system_rows_updated';
|
||||
select @system_rows_updated - @slave_system_rows_updated;
|
||||
@system_rows_updated - @slave_system_rows_updated
|
||||
0
|
||||
select variable_value into @system_rows_deleted from information_schema.global_status where variable_name = 'innodb_system_rows_deleted';
|
||||
select @system_rows_deleted - @slave_system_rows_deleted;
|
||||
@system_rows_deleted - @slave_system_rows_deleted
|
||||
0
|
||||
select variable_value into @system_rows_inserted from information_schema.global_status where variable_name = 'innodb_system_rows_inserted';
|
||||
select @system_rows_inserted - @slave_system_rows_inserted;
|
||||
@system_rows_inserted - @slave_system_rows_inserted
|
||||
0
|
||||
DELETE FROM t1 WHERE i=2;
|
||||
==========MASTER==========
|
||||
select variable_value into @rows_read from information_schema.global_status where variable_name = 'innodb_rows_read';
|
||||
select @rows_read - @master_rows_read;
|
||||
@rows_read - @master_rows_read
|
||||
2
|
||||
select variable_value into @rows_updated from information_schema.global_status where variable_name = 'innodb_rows_updated';
|
||||
select @rows_updated - @master_rows_updated;
|
||||
@rows_updated - @master_rows_updated
|
||||
1
|
||||
select variable_value into @rows_deleted from information_schema.global_status where variable_name = 'innodb_rows_deleted';
|
||||
select @rows_deleted - @master_rows_deleted;
|
||||
@rows_deleted - @master_rows_deleted
|
||||
1
|
||||
select variable_value into @rows_inserted from information_schema.global_status where variable_name = 'innodb_rows_inserted';
|
||||
select @rows_inserted - @master_rows_inserted;
|
||||
@rows_inserted - @master_rows_inserted
|
||||
1
|
||||
select variable_value into @system_rows_read from information_schema.global_status where variable_name = 'innodb_system_rows_read';
|
||||
select @system_rows_read - @master_system_rows_read;
|
||||
@system_rows_read - @master_system_rows_read
|
||||
0
|
||||
select variable_value into @system_rows_updated from information_schema.global_status where variable_name = 'innodb_system_rows_updated';
|
||||
select @system_rows_updated - @master_system_rows_updated;
|
||||
@system_rows_updated - @master_system_rows_updated
|
||||
0
|
||||
select variable_value into @system_rows_deleted from information_schema.global_status where variable_name = 'innodb_system_rows_deleted';
|
||||
select @system_rows_deleted - @master_system_rows_deleted;
|
||||
@system_rows_deleted - @master_system_rows_deleted
|
||||
0
|
||||
select variable_value into @system_rows_inserted from information_schema.global_status where variable_name = 'innodb_system_rows_inserted';
|
||||
select @system_rows_inserted - @master_system_rows_inserted;
|
||||
@system_rows_inserted - @master_system_rows_inserted
|
||||
0
|
||||
==========SLAVE===========
|
||||
select variable_value into @rows_read from information_schema.global_status where variable_name = 'innodb_rows_read';
|
||||
select @rows_read - @slave_rows_read;
|
||||
@rows_read - @slave_rows_read
|
||||
2
|
||||
select variable_value into @rows_updated from information_schema.global_status where variable_name = 'innodb_rows_updated';
|
||||
select @rows_updated - @slave_rows_updated;
|
||||
@rows_updated - @slave_rows_updated
|
||||
1
|
||||
select variable_value into @rows_deleted from information_schema.global_status where variable_name = 'innodb_rows_deleted';
|
||||
select @rows_deleted - @slave_rows_deleted;
|
||||
@rows_deleted - @slave_rows_deleted
|
||||
1
|
||||
select variable_value into @rows_inserted from information_schema.global_status where variable_name = 'innodb_rows_inserted';
|
||||
select @rows_inserted - @slave_rows_inserted;
|
||||
@rows_inserted - @slave_rows_inserted
|
||||
1
|
||||
select variable_value into @system_rows_read from information_schema.global_status where variable_name = 'innodb_system_rows_read';
|
||||
select @system_rows_read - @slave_system_rows_read;
|
||||
@system_rows_read - @slave_system_rows_read
|
||||
0
|
||||
select variable_value into @system_rows_updated from information_schema.global_status where variable_name = 'innodb_system_rows_updated';
|
||||
select @system_rows_updated - @slave_system_rows_updated;
|
||||
@system_rows_updated - @slave_system_rows_updated
|
||||
0
|
||||
select variable_value into @system_rows_deleted from information_schema.global_status where variable_name = 'innodb_system_rows_deleted';
|
||||
select @system_rows_deleted - @slave_system_rows_deleted;
|
||||
@system_rows_deleted - @slave_system_rows_deleted
|
||||
0
|
||||
select variable_value into @system_rows_inserted from information_schema.global_status where variable_name = 'innodb_system_rows_inserted';
|
||||
select @system_rows_inserted - @slave_system_rows_inserted;
|
||||
@system_rows_inserted - @slave_system_rows_inserted
|
||||
0
|
||||
DROP TABLE t1;
|
||||
DROP DATABASE testdb;
|
||||
include/rpl_end.inc
|
59
mysql-test/suite/rpl/t/rpl_innodb_bug68220.test
Normal file
59
mysql-test/suite/rpl/t/rpl_innodb_bug68220.test
Normal file
@ -0,0 +1,59 @@
|
||||
--source include/have_innodb.inc
|
||||
--source include/master-slave.inc
|
||||
|
||||
#
|
||||
# Bug#68220: innodb_rows_updated is misleading on slave when *info_repository=TABLE
|
||||
#
|
||||
|
||||
# clean previous tests
|
||||
--connection master
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS testdb.t1;
|
||||
DROP DATABASE IF EXISTS testdb;
|
||||
--enable_warnings
|
||||
--sync_slave_with_master
|
||||
|
||||
# created all the base variables at the beginning at the test
|
||||
--connection master
|
||||
select variable_value into @master_rows_read from information_schema.global_status where variable_name = 'innodb_rows_read';
|
||||
select variable_value into @master_rows_updated from information_schema.global_status where variable_name = 'innodb_rows_updated';
|
||||
select variable_value into @master_rows_deleted from information_schema.global_status where variable_name = 'innodb_rows_deleted';
|
||||
select variable_value into @master_rows_inserted from information_schema.global_status where variable_name = 'innodb_rows_inserted';
|
||||
select variable_value into @master_system_rows_read from information_schema.global_status where variable_name = 'innodb_system_rows_read';
|
||||
select variable_value into @master_system_rows_updated from information_schema.global_status where variable_name = 'innodb_system_rows_updated';
|
||||
select variable_value into @master_system_rows_deleted from information_schema.global_status where variable_name = 'innodb_system_rows_deleted';
|
||||
select variable_value into @master_system_rows_inserted from information_schema.global_status where variable_name = 'innodb_system_rows_inserted';
|
||||
|
||||
--connection slave
|
||||
select variable_value into @slave_rows_read from information_schema.global_status where variable_name = 'innodb_rows_read';
|
||||
select variable_value into @slave_rows_updated from information_schema.global_status where variable_name = 'innodb_rows_updated';
|
||||
select variable_value into @slave_rows_deleted from information_schema.global_status where variable_name = 'innodb_rows_deleted';
|
||||
select variable_value into @slave_rows_inserted from information_schema.global_status where variable_name = 'innodb_rows_inserted';
|
||||
select variable_value into @slave_system_rows_read from information_schema.global_status where variable_name = 'innodb_system_rows_read';
|
||||
select variable_value into @slave_system_rows_updated from information_schema.global_status where variable_name = 'innodb_system_rows_updated';
|
||||
select variable_value into @slave_system_rows_deleted from information_schema.global_status where variable_name = 'innodb_system_rows_deleted';
|
||||
select variable_value into @slave_system_rows_inserted from information_schema.global_status where variable_name = 'innodb_system_rows_inserted';
|
||||
|
||||
--connection master
|
||||
CREATE DATABASE testdb;
|
||||
USE testdb;
|
||||
CREATE TABLE testdb.t1 (i int NOT NULL PRIMARY KEY) ENGINE=InnoDB;
|
||||
|
||||
# insert a row and show counters on master and slave
|
||||
INSERT INTO testdb.t1 VALUES (1);
|
||||
--source suite/rpl/include/rpl_innodb_rows_counters.inc
|
||||
|
||||
# update the row and show counters on master and slave
|
||||
UPDATE t1 SET i=2 WHERE i=1;
|
||||
--source suite/rpl/include/rpl_innodb_rows_counters.inc
|
||||
|
||||
# delete the row and show counters on master and slave
|
||||
DELETE FROM t1 WHERE i=2;
|
||||
--source suite/rpl/include/rpl_innodb_rows_counters.inc
|
||||
|
||||
# clean the test
|
||||
DROP TABLE t1;
|
||||
DROP DATABASE testdb;
|
||||
--sync_slave_with_master
|
||||
|
||||
--source include/rpl_end.inc
|
@ -207,6 +207,10 @@ dml_reads disabled
|
||||
dml_inserts disabled
|
||||
dml_deletes disabled
|
||||
dml_updates disabled
|
||||
dml_system_reads disabled
|
||||
dml_system_inserts disabled
|
||||
dml_system_deletes disabled
|
||||
dml_system_updates disabled
|
||||
ddl_background_drop_indexes disabled
|
||||
ddl_background_drop_tables disabled
|
||||
ddl_online_create_index disabled
|
||||
@ -429,6 +433,10 @@ dml_reads 4 NULL 4 4 NULL 4 enabled
|
||||
dml_inserts 1 NULL 1 1 NULL 1 enabled
|
||||
dml_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_updates 2 NULL 2 2 NULL 2 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
delete from monitor_test;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
@ -439,6 +447,10 @@ dml_reads 6 NULL 6 6 NULL 6 enabled
|
||||
dml_inserts 1 NULL 1 1 NULL 1 enabled
|
||||
dml_deletes 2 NULL 2 2 NULL 2 enabled
|
||||
dml_updates 2 NULL 2 2 NULL 2 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
set global innodb_monitor_reset = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
@ -449,6 +461,10 @@ dml_reads 6 NULL 6 0 NULL 0 enabled
|
||||
dml_inserts 1 NULL 1 0 NULL 0 enabled
|
||||
dml_deletes 2 NULL 2 0 NULL 0 enabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
insert into monitor_test values(9);
|
||||
insert into monitor_test values(1);
|
||||
delete from monitor_test;
|
||||
@ -461,6 +477,10 @@ dml_reads 8 NULL 8 2 NULL 2 enabled
|
||||
dml_inserts 3 NULL 3 2 NULL 2 enabled
|
||||
dml_deletes 4 NULL 4 2 NULL 2 enabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
set global innodb_monitor_reset_all = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
@ -471,6 +491,10 @@ dml_reads 8 NULL 8 2 NULL 2 enabled
|
||||
dml_inserts 3 NULL 3 2 NULL 2 enabled
|
||||
dml_deletes 4 NULL 4 2 NULL 2 enabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
set global innodb_monitor_disable = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
@ -481,6 +505,10 @@ dml_reads 8 NULL 8 2 NULL 2 disabled
|
||||
dml_inserts 3 NULL 3 2 NULL 2 disabled
|
||||
dml_deletes 4 NULL 4 2 NULL 2 disabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 disabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 disabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 disabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 disabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 disabled
|
||||
set global innodb_monitor_reset_all = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
@ -491,6 +519,10 @@ dml_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_inserts NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_inserts NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
set global innodb_monitor_enable = dml_inserts;
|
||||
insert into monitor_test values(9);
|
||||
insert into monitor_test values(1);
|
||||
@ -504,6 +536,10 @@ dml_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_inserts 2 NULL 2 2 NULL 2 enabled
|
||||
dml_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_inserts NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
set global innodb_monitor_disable = module_dml;
|
||||
drop table monitor_test;
|
||||
set global innodb_monitor_enable = file_num_open_files;
|
||||
|
@ -207,6 +207,10 @@ dml_reads disabled
|
||||
dml_inserts disabled
|
||||
dml_deletes disabled
|
||||
dml_updates disabled
|
||||
dml_system_reads disabled
|
||||
dml_system_inserts disabled
|
||||
dml_system_deletes disabled
|
||||
dml_system_updates disabled
|
||||
ddl_background_drop_indexes disabled
|
||||
ddl_background_drop_tables disabled
|
||||
ddl_online_create_index disabled
|
||||
@ -429,6 +433,10 @@ dml_reads 4 NULL 4 4 NULL 4 enabled
|
||||
dml_inserts 1 NULL 1 1 NULL 1 enabled
|
||||
dml_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_updates 2 NULL 2 2 NULL 2 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
delete from monitor_test;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
@ -439,6 +447,10 @@ dml_reads 6 NULL 6 6 NULL 6 enabled
|
||||
dml_inserts 1 NULL 1 1 NULL 1 enabled
|
||||
dml_deletes 2 NULL 2 2 NULL 2 enabled
|
||||
dml_updates 2 NULL 2 2 NULL 2 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
set global innodb_monitor_reset = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
@ -449,6 +461,10 @@ dml_reads 6 NULL 6 0 NULL 0 enabled
|
||||
dml_inserts 1 NULL 1 0 NULL 0 enabled
|
||||
dml_deletes 2 NULL 2 0 NULL 0 enabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
insert into monitor_test values(9);
|
||||
insert into monitor_test values(1);
|
||||
delete from monitor_test;
|
||||
@ -461,6 +477,10 @@ dml_reads 8 NULL 8 2 NULL 2 enabled
|
||||
dml_inserts 3 NULL 3 2 NULL 2 enabled
|
||||
dml_deletes 4 NULL 4 2 NULL 2 enabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
set global innodb_monitor_reset_all = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
@ -471,6 +491,10 @@ dml_reads 8 NULL 8 2 NULL 2 enabled
|
||||
dml_inserts 3 NULL 3 2 NULL 2 enabled
|
||||
dml_deletes 4 NULL 4 2 NULL 2 enabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
set global innodb_monitor_disable = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
@ -481,6 +505,10 @@ dml_reads 8 NULL 8 2 NULL 2 disabled
|
||||
dml_inserts 3 NULL 3 2 NULL 2 disabled
|
||||
dml_deletes 4 NULL 4 2 NULL 2 disabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 disabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 disabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 disabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 disabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 disabled
|
||||
set global innodb_monitor_reset_all = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
@ -491,6 +519,10 @@ dml_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_inserts NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_inserts NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
set global innodb_monitor_enable = dml_inserts;
|
||||
insert into monitor_test values(9);
|
||||
insert into monitor_test values(1);
|
||||
@ -504,6 +536,10 @@ dml_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_inserts 2 NULL 2 2 NULL 2 enabled
|
||||
dml_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_inserts NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
set global innodb_monitor_disable = module_dml;
|
||||
drop table monitor_test;
|
||||
set global innodb_monitor_enable = file_num_open_files;
|
||||
|
@ -207,6 +207,10 @@ dml_reads disabled
|
||||
dml_inserts disabled
|
||||
dml_deletes disabled
|
||||
dml_updates disabled
|
||||
dml_system_reads disabled
|
||||
dml_system_inserts disabled
|
||||
dml_system_deletes disabled
|
||||
dml_system_updates disabled
|
||||
ddl_background_drop_indexes disabled
|
||||
ddl_background_drop_tables disabled
|
||||
ddl_online_create_index disabled
|
||||
@ -429,6 +433,10 @@ dml_reads 4 NULL 4 4 NULL 4 enabled
|
||||
dml_inserts 1 NULL 1 1 NULL 1 enabled
|
||||
dml_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_updates 2 NULL 2 2 NULL 2 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
delete from monitor_test;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
@ -439,6 +447,10 @@ dml_reads 6 NULL 6 6 NULL 6 enabled
|
||||
dml_inserts 1 NULL 1 1 NULL 1 enabled
|
||||
dml_deletes 2 NULL 2 2 NULL 2 enabled
|
||||
dml_updates 2 NULL 2 2 NULL 2 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
set global innodb_monitor_reset = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
@ -449,6 +461,10 @@ dml_reads 6 NULL 6 0 NULL 0 enabled
|
||||
dml_inserts 1 NULL 1 0 NULL 0 enabled
|
||||
dml_deletes 2 NULL 2 0 NULL 0 enabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
insert into monitor_test values(9);
|
||||
insert into monitor_test values(1);
|
||||
delete from monitor_test;
|
||||
@ -461,6 +477,10 @@ dml_reads 8 NULL 8 2 NULL 2 enabled
|
||||
dml_inserts 3 NULL 3 2 NULL 2 enabled
|
||||
dml_deletes 4 NULL 4 2 NULL 2 enabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
set global innodb_monitor_reset_all = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
@ -471,6 +491,10 @@ dml_reads 8 NULL 8 2 NULL 2 enabled
|
||||
dml_inserts 3 NULL 3 2 NULL 2 enabled
|
||||
dml_deletes 4 NULL 4 2 NULL 2 enabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
set global innodb_monitor_disable = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
@ -481,6 +505,10 @@ dml_reads 8 NULL 8 2 NULL 2 disabled
|
||||
dml_inserts 3 NULL 3 2 NULL 2 disabled
|
||||
dml_deletes 4 NULL 4 2 NULL 2 disabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 disabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 disabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 disabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 disabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 disabled
|
||||
set global innodb_monitor_reset_all = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
@ -491,6 +519,10 @@ dml_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_inserts NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_inserts NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
set global innodb_monitor_enable = dml_inserts;
|
||||
insert into monitor_test values(9);
|
||||
insert into monitor_test values(1);
|
||||
@ -504,6 +536,10 @@ dml_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_inserts 2 NULL 2 2 NULL 2 enabled
|
||||
dml_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_inserts NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
set global innodb_monitor_disable = module_dml;
|
||||
drop table monitor_test;
|
||||
set global innodb_monitor_enable = file_num_open_files;
|
||||
|
@ -207,6 +207,10 @@ dml_reads disabled
|
||||
dml_inserts disabled
|
||||
dml_deletes disabled
|
||||
dml_updates disabled
|
||||
dml_system_reads disabled
|
||||
dml_system_inserts disabled
|
||||
dml_system_deletes disabled
|
||||
dml_system_updates disabled
|
||||
ddl_background_drop_indexes disabled
|
||||
ddl_background_drop_tables disabled
|
||||
ddl_online_create_index disabled
|
||||
@ -429,6 +433,10 @@ dml_reads 4 NULL 4 4 NULL 4 enabled
|
||||
dml_inserts 1 NULL 1 1 NULL 1 enabled
|
||||
dml_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_updates 2 NULL 2 2 NULL 2 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
delete from monitor_test;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
@ -439,6 +447,10 @@ dml_reads 6 NULL 6 6 NULL 6 enabled
|
||||
dml_inserts 1 NULL 1 1 NULL 1 enabled
|
||||
dml_deletes 2 NULL 2 2 NULL 2 enabled
|
||||
dml_updates 2 NULL 2 2 NULL 2 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
set global innodb_monitor_reset = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
@ -449,6 +461,10 @@ dml_reads 6 NULL 6 0 NULL 0 enabled
|
||||
dml_inserts 1 NULL 1 0 NULL 0 enabled
|
||||
dml_deletes 2 NULL 2 0 NULL 0 enabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
insert into monitor_test values(9);
|
||||
insert into monitor_test values(1);
|
||||
delete from monitor_test;
|
||||
@ -461,6 +477,10 @@ dml_reads 8 NULL 8 2 NULL 2 enabled
|
||||
dml_inserts 3 NULL 3 2 NULL 2 enabled
|
||||
dml_deletes 4 NULL 4 2 NULL 2 enabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
set global innodb_monitor_reset_all = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
@ -471,6 +491,10 @@ dml_reads 8 NULL 8 2 NULL 2 enabled
|
||||
dml_inserts 3 NULL 3 2 NULL 2 enabled
|
||||
dml_deletes 4 NULL 4 2 NULL 2 enabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 enabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 enabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 enabled
|
||||
set global innodb_monitor_disable = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
@ -481,6 +505,10 @@ dml_reads 8 NULL 8 2 NULL 2 disabled
|
||||
dml_inserts 3 NULL 3 2 NULL 2 disabled
|
||||
dml_deletes 4 NULL 4 2 NULL 2 disabled
|
||||
dml_updates 2 NULL 2 0 NULL 0 disabled
|
||||
dml_system_reads 0 NULL 0 0 NULL 0 disabled
|
||||
dml_system_inserts 0 NULL 0 0 NULL 0 disabled
|
||||
dml_system_deletes 0 NULL 0 0 NULL 0 disabled
|
||||
dml_system_updates 0 NULL 0 0 NULL 0 disabled
|
||||
set global innodb_monitor_reset_all = module_dml;
|
||||
select name, max_count, min_count, count,
|
||||
max_count_reset, min_count_reset, count_reset, status
|
||||
@ -491,6 +519,10 @@ dml_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_inserts NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_inserts NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
set global innodb_monitor_enable = dml_inserts;
|
||||
insert into monitor_test values(9);
|
||||
insert into monitor_test values(1);
|
||||
@ -504,6 +536,10 @@ dml_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_inserts 2 NULL 2 2 NULL 2 enabled
|
||||
dml_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_reads NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_inserts NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_deletes NULL NULL 0 NULL NULL 0 disabled
|
||||
dml_system_updates NULL NULL 0 NULL NULL 0 disabled
|
||||
set global innodb_monitor_disable = module_dml;
|
||||
drop table monitor_test;
|
||||
set global innodb_monitor_enable = file_num_open_files;
|
||||
|
@ -1531,8 +1531,12 @@ ib_execute_insert_query_graph(
|
||||
|
||||
dict_table_n_rows_inc(table);
|
||||
|
||||
if (table->is_system_db) {
|
||||
srv_stats.n_system_rows_inserted.inc();
|
||||
} else {
|
||||
srv_stats.n_rows_inserted.inc();
|
||||
}
|
||||
}
|
||||
|
||||
trx->op_info = "";
|
||||
|
||||
@ -1885,10 +1889,18 @@ ib_execute_update_query_graph(
|
||||
|
||||
dict_table_n_rows_dec(table);
|
||||
|
||||
if (table->is_system_db) {
|
||||
srv_stats.n_system_rows_deleted.inc();
|
||||
} else {
|
||||
srv_stats.n_rows_deleted.inc();
|
||||
}
|
||||
} else {
|
||||
if (table->is_system_db) {
|
||||
srv_stats.n_system_rows_updated.inc();
|
||||
} else {
|
||||
srv_stats.n_rows_updated.inc();
|
||||
}
|
||||
}
|
||||
|
||||
} else if (err == DB_RECORD_NOT_FOUND) {
|
||||
trx->error_state = DB_SUCCESS;
|
||||
|
@ -53,6 +53,14 @@ Created 1/8/1996 Heikki Tuuri
|
||||
UNIV_INTERN mysql_pfs_key_t autoinc_mutex_key;
|
||||
#endif /* UNIV_PFS_MUTEX */
|
||||
|
||||
/** System databases */
|
||||
static const char* innobase_system_databases[] = {
|
||||
"mysql/",
|
||||
"information_schema/",
|
||||
"performance_schema/",
|
||||
NullS
|
||||
};
|
||||
|
||||
/**********************************************************************//**
|
||||
Creates a table memory object.
|
||||
@return own: table object */
|
||||
@ -85,6 +93,7 @@ dict_mem_table_create(
|
||||
table->flags2 = (unsigned int) flags2;
|
||||
table->name = static_cast<char*>(ut_malloc(strlen(name) + 1));
|
||||
memcpy(table->name, name, strlen(name) + 1);
|
||||
table->is_system_db = dict_mem_table_is_system(table->name);
|
||||
table->space = (unsigned int) space;
|
||||
table->n_cols = (unsigned int) (n_cols + DATA_N_SYS_COLS);
|
||||
|
||||
@ -130,6 +139,36 @@ dict_mem_table_create(
|
||||
return(table);
|
||||
}
|
||||
|
||||
/****************************************************************//**
|
||||
Determines if a table belongs to a system database
|
||||
@return */
|
||||
UNIV_INTERN
|
||||
bool
|
||||
dict_mem_table_is_system(
|
||||
/*================*/
|
||||
char *name) /*!< in: table name */
|
||||
{
|
||||
ut_ad(name);
|
||||
|
||||
/* table has the following format: database/table
|
||||
and some system table are of the form SYS_* */
|
||||
if (strchr(name, '/')) {
|
||||
int table_len = strlen(name);
|
||||
const char *system_db;
|
||||
int i = 0;
|
||||
while ((system_db = innobase_system_databases[i++])
|
||||
&& (system_db != NullS)) {
|
||||
int len = strlen(system_db);
|
||||
if (table_len > len && !strncmp(name, system_db, len)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************//**
|
||||
Free a table memory object. */
|
||||
UNIV_INTERN
|
||||
|
@ -669,6 +669,14 @@ static SHOW_VAR innodb_status_variables[]= {
|
||||
(char*) &export_vars.innodb_rows_read, SHOW_LONG},
|
||||
{"rows_updated",
|
||||
(char*) &export_vars.innodb_rows_updated, SHOW_LONG},
|
||||
{"system_rows_deleted",
|
||||
(char*) &export_vars.innodb_system_rows_deleted, SHOW_LONG},
|
||||
{"system_rows_inserted",
|
||||
(char*) &export_vars.innodb_system_rows_inserted, SHOW_LONG},
|
||||
{"system_rows_read",
|
||||
(char*) &export_vars.innodb_system_rows_read, SHOW_LONG},
|
||||
{"system_rows_updated",
|
||||
(char*) &export_vars.innodb_system_rows_updated, SHOW_LONG},
|
||||
{"num_open_files",
|
||||
(char*) &export_vars.innodb_num_open_files, SHOW_LONG},
|
||||
{"truncated_status_writes",
|
||||
@ -7892,7 +7900,13 @@ ha_innobase::index_read(
|
||||
case DB_SUCCESS:
|
||||
error = 0;
|
||||
table->status = 0;
|
||||
srv_stats.n_rows_read.add((size_t) prebuilt->trx->id, 1);
|
||||
if (prebuilt->table->is_system_db) {
|
||||
srv_stats.n_system_rows_read.add(
|
||||
(size_t) prebuilt->trx->id, 1);
|
||||
} else {
|
||||
srv_stats.n_rows_read.add(
|
||||
(size_t) prebuilt->trx->id, 1);
|
||||
}
|
||||
break;
|
||||
case DB_RECORD_NOT_FOUND:
|
||||
error = HA_ERR_KEY_NOT_FOUND;
|
||||
@ -8168,7 +8182,13 @@ ha_innobase::general_fetch(
|
||||
case DB_SUCCESS:
|
||||
error = 0;
|
||||
table->status = 0;
|
||||
srv_stats.n_rows_read.add((size_t) prebuilt->trx->id, 1);
|
||||
if (prebuilt->table->is_system_db) {
|
||||
srv_stats.n_system_rows_read.add(
|
||||
(size_t) prebuilt->trx->id, 1);
|
||||
} else {
|
||||
srv_stats.n_rows_read.add(
|
||||
(size_t) prebuilt->trx->id, 1);
|
||||
}
|
||||
break;
|
||||
case DB_RECORD_NOT_FOUND:
|
||||
error = HA_ERR_END_OF_FILE;
|
||||
|
@ -256,6 +256,14 @@ dict_mem_table_create(
|
||||
ulint n_cols, /*!< in: number of columns */
|
||||
ulint flags, /*!< in: table flags */
|
||||
ulint flags2); /*!< in: table flags2 */
|
||||
/**********************************************************************//**
|
||||
Determines if a table belongs to a system database
|
||||
@return */
|
||||
UNIV_INTERN
|
||||
bool
|
||||
dict_mem_table_is_system(
|
||||
/*==================*/
|
||||
char *name); /*!< in: table name */
|
||||
/****************************************************************//**
|
||||
Free a table memory object. */
|
||||
UNIV_INTERN
|
||||
@ -880,6 +888,10 @@ struct dict_table_t{
|
||||
the string contains n_cols, it will be
|
||||
allocated from a temporary heap. The final
|
||||
string will be allocated from table->heap. */
|
||||
bool is_system_db;
|
||||
/*!< True if the table belongs to a system
|
||||
database (mysql, information_schema or
|
||||
performance_schema) */
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
hash_node_t name_hash; /*!< hash chain node */
|
||||
hash_node_t id_hash; /*!< hash chain node */
|
||||
|
@ -369,6 +369,10 @@ enum monitor_id_t {
|
||||
MONITOR_OLVD_ROW_INSERTED,
|
||||
MONITOR_OLVD_ROW_DELETED,
|
||||
MONITOR_OLVD_ROW_UPDTATED,
|
||||
MONITOR_OLVD_SYSTEM_ROW_READ,
|
||||
MONITOR_OLVD_SYSTEM_ROW_INSERTED,
|
||||
MONITOR_OLVD_SYSTEM_ROW_DELETED,
|
||||
MONITOR_OLVD_SYSTEM_ROW_UPDATED,
|
||||
|
||||
/* Data DDL related counters */
|
||||
MONITOR_MODULE_DDL_STATS,
|
||||
|
@ -126,6 +126,18 @@ struct srv_stats_t {
|
||||
|
||||
/** Number of rows inserted */
|
||||
ulint_ctr_64_t n_rows_inserted;
|
||||
|
||||
/** Number of system rows read. */
|
||||
ulint_ctr_64_t n_system_rows_read;
|
||||
|
||||
/** Number of system rows updated */
|
||||
ulint_ctr_64_t n_system_rows_updated;
|
||||
|
||||
/** Number of system rows deleted */
|
||||
ulint_ctr_64_t n_system_rows_deleted;
|
||||
|
||||
/** Number of system rows inserted */
|
||||
ulint_ctr_64_t n_system_rows_inserted;
|
||||
};
|
||||
|
||||
extern const char* srv_main_thread_op_info;
|
||||
@ -846,6 +858,10 @@ struct export_var_t{
|
||||
ulint innodb_rows_inserted; /*!< srv_n_rows_inserted */
|
||||
ulint innodb_rows_updated; /*!< srv_n_rows_updated */
|
||||
ulint innodb_rows_deleted; /*!< srv_n_rows_deleted */
|
||||
ulint innodb_system_rows_read; /*!< srv_n_system_rows_read */
|
||||
ulint innodb_system_rows_inserted; /*!< srv_n_system_rows_inserted */
|
||||
ulint innodb_system_rows_updated; /*!< srv_n_system_rows_updated */
|
||||
ulint innodb_system_rows_deleted; /*!< srv_n_system_rows_deleted*/
|
||||
ulint innodb_num_open_files; /*!< fil_n_file_opened */
|
||||
ulint innodb_truncated_status_writes; /*!< srv_truncated_status_writes */
|
||||
ulint innodb_available_undo_logs; /*!< srv_available_undo_logs */
|
||||
|
@ -1394,7 +1394,11 @@ error_exit:
|
||||
|
||||
que_thr_stop_for_mysql_no_error(thr, trx);
|
||||
|
||||
if (table->is_system_db) {
|
||||
srv_stats.n_system_rows_inserted.add((size_t)trx->id, 1);
|
||||
} else {
|
||||
srv_stats.n_rows_inserted.add((size_t)trx->id, 1);
|
||||
}
|
||||
|
||||
/* Not protected by dict_table_stats_lock() for performance
|
||||
reasons, we would rather get garbage in stat_n_rows (which is
|
||||
@ -1784,10 +1788,21 @@ run_again:
|
||||
with a latch. */
|
||||
dict_table_n_rows_dec(prebuilt->table);
|
||||
|
||||
if (table->is_system_db) {
|
||||
srv_stats.n_system_rows_deleted.add(
|
||||
(size_t)trx->id, 1);
|
||||
} else {
|
||||
srv_stats.n_rows_deleted.add((size_t)trx->id, 1);
|
||||
}
|
||||
|
||||
} else {
|
||||
if (table->is_system_db) {
|
||||
srv_stats.n_system_rows_updated.add(
|
||||
(size_t)trx->id, 1);
|
||||
} else {
|
||||
srv_stats.n_rows_updated.add((size_t)trx->id, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/* We update table statistics only if it is a DELETE or UPDATE
|
||||
that changes indexed columns, UPDATEs that change only non-indexed
|
||||
@ -2010,10 +2025,20 @@ run_again:
|
||||
with a latch. */
|
||||
dict_table_n_rows_dec(table);
|
||||
|
||||
if (table->is_system_db) {
|
||||
srv_stats.n_system_rows_deleted.add(
|
||||
(size_t)trx->id, 1);
|
||||
} else {
|
||||
srv_stats.n_rows_deleted.add((size_t)trx->id, 1);
|
||||
}
|
||||
} else {
|
||||
if (table->is_system_db) {
|
||||
srv_stats.n_system_rows_updated.add(
|
||||
(size_t)trx->id, 1);
|
||||
} else {
|
||||
srv_stats.n_rows_updated.add((size_t)trx->id, 1);
|
||||
}
|
||||
}
|
||||
|
||||
row_update_statistics_if_needed(table);
|
||||
|
||||
|
@ -1165,6 +1165,26 @@ static monitor_info_t innodb_counter_info[] =
|
||||
MONITOR_EXISTING | MONITOR_DEFAULT_ON),
|
||||
MONITOR_DEFAULT_START, MONITOR_OLVD_ROW_UPDTATED},
|
||||
|
||||
{"dml_system_reads", "dml", "Number of system rows read",
|
||||
static_cast<monitor_type_t>(
|
||||
MONITOR_EXISTING | MONITOR_DEFAULT_ON),
|
||||
MONITOR_DEFAULT_START, MONITOR_OLVD_SYSTEM_ROW_READ},
|
||||
|
||||
{"dml_system_inserts", "dml", "Number of system rows inserted",
|
||||
static_cast<monitor_type_t>(
|
||||
MONITOR_EXISTING | MONITOR_DEFAULT_ON),
|
||||
MONITOR_DEFAULT_START, MONITOR_OLVD_SYSTEM_ROW_INSERTED},
|
||||
|
||||
{"dml_system_deletes", "dml", "Number of system rows deleted",
|
||||
static_cast<monitor_type_t>(
|
||||
MONITOR_EXISTING | MONITOR_DEFAULT_ON),
|
||||
MONITOR_DEFAULT_START, MONITOR_OLVD_SYSTEM_ROW_DELETED},
|
||||
|
||||
{"dml_system_updates", "dml", "Number of system rows updated",
|
||||
static_cast<monitor_type_t>(
|
||||
MONITOR_EXISTING | MONITOR_DEFAULT_ON),
|
||||
MONITOR_DEFAULT_START, MONITOR_OLVD_SYSTEM_ROW_UPDATED},
|
||||
|
||||
/* ========== Counters for DDL operations ========== */
|
||||
{"module_ddl", "ddl", "Statistics for DDLs",
|
||||
MONITOR_MODULE,
|
||||
@ -1683,6 +1703,26 @@ srv_mon_process_existing_counter(
|
||||
value = srv_stats.n_rows_updated;
|
||||
break;
|
||||
|
||||
/* innodb_system_rows_read */
|
||||
case MONITOR_OLVD_SYSTEM_ROW_READ:
|
||||
value = srv_stats.n_system_rows_read;
|
||||
break;
|
||||
|
||||
/* innodb_system_rows_inserted */
|
||||
case MONITOR_OLVD_SYSTEM_ROW_INSERTED:
|
||||
value = srv_stats.n_system_rows_inserted;
|
||||
break;
|
||||
|
||||
/* innodb_system_rows_deleted */
|
||||
case MONITOR_OLVD_SYSTEM_ROW_DELETED:
|
||||
value = srv_stats.n_system_rows_deleted;
|
||||
break;
|
||||
|
||||
/* innodb_system_rows_updated */
|
||||
case MONITOR_OLVD_SYSTEM_ROW_UPDATED:
|
||||
value = srv_stats.n_system_rows_updated;
|
||||
break;
|
||||
|
||||
/* innodb_row_lock_current_waits */
|
||||
case MONITOR_OVLD_ROW_LOCK_CURRENT_WAIT:
|
||||
value = srv_stats.n_lock_wait_current_count;
|
||||
|
@ -377,6 +377,10 @@ static ulint srv_n_rows_inserted_old = 0;
|
||||
static ulint srv_n_rows_updated_old = 0;
|
||||
static ulint srv_n_rows_deleted_old = 0;
|
||||
static ulint srv_n_rows_read_old = 0;
|
||||
static ulint srv_n_system_rows_inserted_old = 0;
|
||||
static ulint srv_n_system_rows_updated_old = 0;
|
||||
static ulint srv_n_system_rows_deleted_old = 0;
|
||||
static ulint srv_n_system_rows_read_old = 0;
|
||||
|
||||
UNIV_INTERN ulint srv_truncated_status_writes = 0;
|
||||
UNIV_INTERN ulint srv_available_undo_logs = 0;
|
||||
@ -1110,6 +1114,11 @@ srv_refresh_innodb_monitor_stats(void)
|
||||
srv_n_rows_deleted_old = srv_stats.n_rows_deleted;
|
||||
srv_n_rows_read_old = srv_stats.n_rows_read;
|
||||
|
||||
srv_n_system_rows_inserted_old = srv_stats.n_system_rows_inserted;
|
||||
srv_n_system_rows_updated_old = srv_stats.n_system_rows_updated;
|
||||
srv_n_system_rows_deleted_old = srv_stats.n_system_rows_deleted;
|
||||
srv_n_system_rows_read_old = srv_stats.n_system_rows_read;
|
||||
|
||||
mutex_exit(&srv_innodb_monitor_mutex);
|
||||
}
|
||||
|
||||
@ -1301,11 +1310,33 @@ srv_printf_innodb_monitor(
|
||||
/ time_elapsed,
|
||||
((ulint) srv_stats.n_rows_read - srv_n_rows_read_old)
|
||||
/ time_elapsed);
|
||||
|
||||
fprintf(file,
|
||||
"Number of system rows inserted " ULINTPF
|
||||
", updated " ULINTPF ", deleted " ULINTPF
|
||||
", read " ULINTPF "\n",
|
||||
(ulint) srv_stats.n_system_rows_inserted,
|
||||
(ulint) srv_stats.n_system_rows_updated,
|
||||
(ulint) srv_stats.n_system_rows_deleted,
|
||||
(ulint) srv_stats.n_system_rows_read);
|
||||
fprintf(file,
|
||||
"%.2f inserts/s, %.2f updates/s,"
|
||||
" %.2f deletes/s, %.2f reads/s\n",
|
||||
((ulint) srv_stats.n_system_rows_inserted
|
||||
- srv_n_system_rows_inserted_old) / time_elapsed,
|
||||
((ulint) srv_stats.n_system_rows_updated
|
||||
- srv_n_system_rows_updated_old) / time_elapsed,
|
||||
((ulint) srv_stats.n_system_rows_deleted
|
||||
- srv_n_system_rows_deleted_old) / time_elapsed,
|
||||
((ulint) srv_stats.n_system_rows_read
|
||||
- srv_n_system_rows_read_old) / time_elapsed);
|
||||
srv_n_rows_inserted_old = srv_stats.n_rows_inserted;
|
||||
srv_n_rows_updated_old = srv_stats.n_rows_updated;
|
||||
srv_n_rows_deleted_old = srv_stats.n_rows_deleted;
|
||||
srv_n_rows_read_old = srv_stats.n_rows_read;
|
||||
srv_n_system_rows_inserted_old = srv_stats.n_system_rows_inserted;
|
||||
srv_n_system_rows_updated_old = srv_stats.n_system_rows_updated;
|
||||
srv_n_system_rows_deleted_old = srv_stats.n_system_rows_deleted;
|
||||
srv_n_system_rows_read_old = srv_stats.n_system_rows_read;
|
||||
|
||||
fputs("----------------------------\n"
|
||||
"END OF INNODB MONITOR OUTPUT\n"
|
||||
@ -1460,6 +1491,17 @@ srv_export_innodb_status(void)
|
||||
|
||||
export_vars.innodb_rows_deleted = srv_stats.n_rows_deleted;
|
||||
|
||||
export_vars.innodb_system_rows_read = srv_stats.n_system_rows_read;
|
||||
|
||||
export_vars.innodb_system_rows_inserted =
|
||||
srv_stats.n_system_rows_inserted;
|
||||
|
||||
export_vars.innodb_system_rows_updated =
|
||||
srv_stats.n_system_rows_updated;
|
||||
|
||||
export_vars.innodb_system_rows_deleted =
|
||||
srv_stats.n_system_rows_deleted;
|
||||
|
||||
export_vars.innodb_num_open_files = fil_n_file_opened;
|
||||
|
||||
export_vars.innodb_truncated_status_writes =
|
||||
|
@ -1531,8 +1531,12 @@ ib_execute_insert_query_graph(
|
||||
|
||||
dict_table_n_rows_inc(table);
|
||||
|
||||
if (table->is_system_db) {
|
||||
srv_stats.n_system_rows_inserted.inc();
|
||||
} else {
|
||||
srv_stats.n_rows_inserted.inc();
|
||||
}
|
||||
}
|
||||
|
||||
trx->op_info = "";
|
||||
|
||||
@ -1885,10 +1889,18 @@ ib_execute_update_query_graph(
|
||||
|
||||
dict_table_n_rows_dec(table);
|
||||
|
||||
if (table->is_system_db) {
|
||||
srv_stats.n_system_rows_deleted.inc();
|
||||
} else {
|
||||
srv_stats.n_rows_deleted.inc();
|
||||
}
|
||||
} else {
|
||||
if (table->is_system_db) {
|
||||
srv_stats.n_system_rows_updated.inc();
|
||||
} else {
|
||||
srv_stats.n_rows_updated.inc();
|
||||
}
|
||||
}
|
||||
|
||||
} else if (err == DB_RECORD_NOT_FOUND) {
|
||||
trx->error_state = DB_SUCCESS;
|
||||
|
@ -53,6 +53,14 @@ Created 1/8/1996 Heikki Tuuri
|
||||
UNIV_INTERN mysql_pfs_key_t autoinc_mutex_key;
|
||||
#endif /* UNIV_PFS_MUTEX */
|
||||
|
||||
/** System databases */
|
||||
static const char* innobase_system_databases[] = {
|
||||
"mysql/",
|
||||
"information_schema/",
|
||||
"performance_schema/",
|
||||
NullS
|
||||
};
|
||||
|
||||
/**********************************************************************//**
|
||||
Creates a table memory object.
|
||||
@return own: table object */
|
||||
@ -88,6 +96,7 @@ dict_mem_table_create(
|
||||
table->flags2 = (unsigned int) flags2;
|
||||
table->name = static_cast<char*>(ut_malloc(strlen(name) + 1));
|
||||
memcpy(table->name, name, strlen(name) + 1);
|
||||
table->is_system_db = dict_mem_table_is_system(table->name);
|
||||
table->space = (unsigned int) space;
|
||||
table->n_cols = (unsigned int) (n_cols + DATA_N_SYS_COLS);
|
||||
|
||||
@ -143,6 +152,36 @@ dict_mem_table_create(
|
||||
return(table);
|
||||
}
|
||||
|
||||
/****************************************************************//**
|
||||
Determines if a table belongs to a system database
|
||||
@return */
|
||||
UNIV_INTERN
|
||||
bool
|
||||
dict_mem_table_is_system(
|
||||
/*================*/
|
||||
char *name) /*!< in: table name */
|
||||
{
|
||||
ut_ad(name);
|
||||
|
||||
/* table has the following format: database/table
|
||||
and some system table are of the form SYS_* */
|
||||
if (strchr(name, '/')) {
|
||||
int table_len = strlen(name);
|
||||
const char *system_db;
|
||||
int i = 0;
|
||||
while ((system_db = innobase_system_databases[i++])
|
||||
&& (system_db != NullS)) {
|
||||
int len = strlen(system_db);
|
||||
if (table_len > len && !strncmp(name, system_db, len)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************//**
|
||||
Free a table memory object. */
|
||||
UNIV_INTERN
|
||||
|
@ -864,6 +864,14 @@ static SHOW_VAR innodb_status_variables[]= {
|
||||
(char*) &export_vars.innodb_rows_read, SHOW_LONG},
|
||||
{"rows_updated",
|
||||
(char*) &export_vars.innodb_rows_updated, SHOW_LONG},
|
||||
{"system_rows_deleted",
|
||||
(char*) &export_vars.innodb_system_rows_deleted, SHOW_LONG},
|
||||
{"system_rows_inserted",
|
||||
(char*) &export_vars.innodb_system_rows_inserted, SHOW_LONG},
|
||||
{"system_rows_read",
|
||||
(char*) &export_vars.innodb_system_rows_read, SHOW_LONG},
|
||||
{"system_rows_updated",
|
||||
(char*) &export_vars.innodb_system_rows_updated, SHOW_LONG},
|
||||
{"s_lock_os_waits",
|
||||
(char*) &export_vars.innodb_s_lock_os_waits, SHOW_LONGLONG},
|
||||
{"s_lock_spin_rounds",
|
||||
@ -8513,7 +8521,13 @@ ha_innobase::index_read(
|
||||
case DB_SUCCESS:
|
||||
error = 0;
|
||||
table->status = 0;
|
||||
srv_stats.n_rows_read.add((size_t) prebuilt->trx->id, 1);
|
||||
if (prebuilt->table->is_system_db) {
|
||||
srv_stats.n_system_rows_read.add(
|
||||
(size_t) prebuilt->trx->id, 1);
|
||||
} else {
|
||||
srv_stats.n_rows_read.add(
|
||||
(size_t) prebuilt->trx->id, 1);
|
||||
}
|
||||
#ifdef EXTENDED_FOR_USERSTAT
|
||||
rows_read++;
|
||||
if (active_index < MAX_KEY)
|
||||
|
@ -266,6 +266,14 @@ dict_mem_table_create(
|
||||
bool nonshared);/*!< in: whether the table object is a dummy
|
||||
one that does not need the initialization of
|
||||
locking-related fields. */
|
||||
/**********************************************************************//**
|
||||
Determines if a table belongs to a system database
|
||||
@return true if table belong to a system database */
|
||||
UNIV_INTERN
|
||||
bool
|
||||
dict_mem_table_is_system(
|
||||
/*==================*/
|
||||
char *name); /*!< in: table name */
|
||||
/****************************************************************//**
|
||||
Free a table memory object. */
|
||||
UNIV_INTERN
|
||||
@ -894,6 +902,10 @@ struct dict_table_t{
|
||||
the string contains n_cols, it will be
|
||||
allocated from a temporary heap. The final
|
||||
string will be allocated from table->heap. */
|
||||
bool is_system_db;
|
||||
/*!< True if the table belongs to a system
|
||||
database (mysql, information_schema or
|
||||
performance_schema) */
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
hash_node_t name_hash; /*!< hash chain node */
|
||||
hash_node_t id_hash; /*!< hash chain node */
|
||||
|
@ -369,6 +369,10 @@ enum monitor_id_t {
|
||||
MONITOR_OLVD_ROW_INSERTED,
|
||||
MONITOR_OLVD_ROW_DELETED,
|
||||
MONITOR_OLVD_ROW_UPDTATED,
|
||||
MONITOR_OLVD_SYSTEM_ROW_READ,
|
||||
MONITOR_OLVD_SYSTEM_ROW_INSERTED,
|
||||
MONITOR_OLVD_SYSTEM_ROW_DELETED,
|
||||
MONITOR_OLVD_SYSTEM_ROW_UPDATED,
|
||||
|
||||
/* Data DDL related counters */
|
||||
MONITOR_MODULE_DDL_STATS,
|
||||
|
@ -127,8 +127,23 @@ struct srv_stats_t {
|
||||
/** Number of rows inserted */
|
||||
ulint_ctr_64_t n_rows_inserted;
|
||||
|
||||
/** Number of system rows read. */
|
||||
ulint_ctr_64_t n_system_rows_read;
|
||||
|
||||
/** Number of system rows updated */
|
||||
ulint_ctr_64_t n_system_rows_updated;
|
||||
|
||||
/** Number of system rows deleted */
|
||||
ulint_ctr_64_t n_system_rows_deleted;
|
||||
|
||||
/** Number of system rows inserted */
|
||||
ulint_ctr_64_t n_system_rows_inserted;
|
||||
|
||||
/** Number of lock deadlocks */
|
||||
ulint_ctr_1_t lock_deadlock_count;
|
||||
|
||||
/** Number of lock waits that have been up to max time (i.e.) lock
|
||||
wait timeout */
|
||||
ulint_ctr_1_t n_lock_max_wait_time;
|
||||
};
|
||||
|
||||
@ -1052,6 +1067,10 @@ struct export_var_t{
|
||||
ulint innodb_rows_inserted; /*!< srv_n_rows_inserted */
|
||||
ulint innodb_rows_updated; /*!< srv_n_rows_updated */
|
||||
ulint innodb_rows_deleted; /*!< srv_n_rows_deleted */
|
||||
ulint innodb_system_rows_read; /*!< srv_n_system_rows_read */
|
||||
ulint innodb_system_rows_inserted; /*!< srv_n_system_rows_inserted */
|
||||
ulint innodb_system_rows_updated; /*!< srv_n_system_rows_updated */
|
||||
ulint innodb_system_rows_deleted; /*!< srv_n_system_rows_deleted*/
|
||||
ulint innodb_num_open_files; /*!< fil_n_file_opened */
|
||||
ulint innodb_truncated_status_writes; /*!< srv_truncated_status_writes */
|
||||
ulint innodb_available_undo_logs; /*!< srv_available_undo_logs */
|
||||
|
@ -1395,7 +1395,11 @@ error_exit:
|
||||
|
||||
if (UNIV_LIKELY(!(trx->fake_changes))) {
|
||||
|
||||
if (table->is_system_db) {
|
||||
srv_stats.n_system_rows_inserted.add((size_t)trx->id, 1);
|
||||
} else {
|
||||
srv_stats.n_rows_inserted.add((size_t)trx->id, 1);
|
||||
}
|
||||
|
||||
/* Not protected by dict_table_stats_lock() for performance
|
||||
reasons, we would rather get garbage in stat_n_rows (which is
|
||||
@ -1793,10 +1797,20 @@ run_again:
|
||||
with a latch. */
|
||||
dict_table_n_rows_dec(prebuilt->table);
|
||||
|
||||
if (table->is_system_db) {
|
||||
srv_stats.n_system_rows_deleted.add(
|
||||
(size_t)trx->id, 1);
|
||||
} else {
|
||||
srv_stats.n_rows_deleted.add((size_t)trx->id, 1);
|
||||
}
|
||||
} else {
|
||||
if (table->is_system_db) {
|
||||
srv_stats.n_system_rows_updated.add(
|
||||
(size_t)trx->id, 1);
|
||||
} else {
|
||||
srv_stats.n_rows_updated.add((size_t)trx->id, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/* We update table statistics only if it is a DELETE or UPDATE
|
||||
that changes indexed columns, UPDATEs that change only non-indexed
|
||||
@ -2024,10 +2038,20 @@ run_again:
|
||||
with a latch. */
|
||||
dict_table_n_rows_dec(table);
|
||||
|
||||
if (table->is_system_db) {
|
||||
srv_stats.n_system_rows_deleted.add(
|
||||
(size_t)trx->id, 1);
|
||||
} else {
|
||||
srv_stats.n_rows_deleted.add((size_t)trx->id, 1);
|
||||
}
|
||||
} else {
|
||||
if (table->is_system_db) {
|
||||
srv_stats.n_system_rows_updated.add(
|
||||
(size_t)trx->id, 1);
|
||||
} else {
|
||||
srv_stats.n_rows_updated.add((size_t)trx->id, 1);
|
||||
}
|
||||
}
|
||||
|
||||
row_update_statistics_if_needed(table);
|
||||
|
||||
|
@ -1165,6 +1165,26 @@ static monitor_info_t innodb_counter_info[] =
|
||||
MONITOR_EXISTING | MONITOR_DEFAULT_ON),
|
||||
MONITOR_DEFAULT_START, MONITOR_OLVD_ROW_UPDTATED},
|
||||
|
||||
{"dml_system_reads", "dml", "Number of system rows read",
|
||||
static_cast<monitor_type_t>(
|
||||
MONITOR_EXISTING | MONITOR_DEFAULT_ON),
|
||||
MONITOR_DEFAULT_START, MONITOR_OLVD_SYSTEM_ROW_READ},
|
||||
|
||||
{"dml_system_inserts", "dml", "Number of system rows inserted",
|
||||
static_cast<monitor_type_t>(
|
||||
MONITOR_EXISTING | MONITOR_DEFAULT_ON),
|
||||
MONITOR_DEFAULT_START, MONITOR_OLVD_SYSTEM_ROW_INSERTED},
|
||||
|
||||
{"dml_system_deletes", "dml", "Number of system rows deleted",
|
||||
static_cast<monitor_type_t>(
|
||||
MONITOR_EXISTING | MONITOR_DEFAULT_ON),
|
||||
MONITOR_DEFAULT_START, MONITOR_OLVD_SYSTEM_ROW_DELETED},
|
||||
|
||||
{"dml_system_updates", "dml", "Number of system rows updated",
|
||||
static_cast<monitor_type_t>(
|
||||
MONITOR_EXISTING | MONITOR_DEFAULT_ON),
|
||||
MONITOR_DEFAULT_START, MONITOR_OLVD_SYSTEM_ROW_UPDATED},
|
||||
|
||||
/* ========== Counters for DDL operations ========== */
|
||||
{"module_ddl", "ddl", "Statistics for DDLs",
|
||||
MONITOR_MODULE,
|
||||
@ -1683,6 +1703,26 @@ srv_mon_process_existing_counter(
|
||||
value = srv_stats.n_rows_updated;
|
||||
break;
|
||||
|
||||
/* innodb_system_rows_read */
|
||||
case MONITOR_OLVD_SYSTEM_ROW_READ:
|
||||
value = srv_stats.n_system_rows_read;
|
||||
break;
|
||||
|
||||
/* innodb_system_rows_inserted */
|
||||
case MONITOR_OLVD_SYSTEM_ROW_INSERTED:
|
||||
value = srv_stats.n_system_rows_inserted;
|
||||
break;
|
||||
|
||||
/* innodb_system_rows_deleted */
|
||||
case MONITOR_OLVD_SYSTEM_ROW_DELETED:
|
||||
value = srv_stats.n_system_rows_deleted;
|
||||
break;
|
||||
|
||||
/* innodb_system_rows_updated */
|
||||
case MONITOR_OLVD_SYSTEM_ROW_UPDATED:
|
||||
value = srv_stats.n_system_rows_updated;
|
||||
break;
|
||||
|
||||
/* innodb_row_lock_current_waits */
|
||||
case MONITOR_OVLD_ROW_LOCK_CURRENT_WAIT:
|
||||
value = srv_stats.n_lock_wait_current_count;
|
||||
|
@ -498,6 +498,10 @@ static ulint srv_n_rows_inserted_old = 0;
|
||||
static ulint srv_n_rows_updated_old = 0;
|
||||
static ulint srv_n_rows_deleted_old = 0;
|
||||
static ulint srv_n_rows_read_old = 0;
|
||||
static ulint srv_n_system_rows_inserted_old = 0;
|
||||
static ulint srv_n_system_rows_updated_old = 0;
|
||||
static ulint srv_n_system_rows_deleted_old = 0;
|
||||
static ulint srv_n_system_rows_read_old = 0;
|
||||
|
||||
UNIV_INTERN ulint srv_truncated_status_writes = 0;
|
||||
UNIV_INTERN ulint srv_available_undo_logs = 0;
|
||||
@ -1262,6 +1266,11 @@ srv_refresh_innodb_monitor_stats(void)
|
||||
srv_n_rows_deleted_old = srv_stats.n_rows_deleted;
|
||||
srv_n_rows_read_old = srv_stats.n_rows_read;
|
||||
|
||||
srv_n_system_rows_inserted_old = srv_stats.n_system_rows_inserted;
|
||||
srv_n_system_rows_updated_old = srv_stats.n_system_rows_updated;
|
||||
srv_n_system_rows_deleted_old = srv_stats.n_system_rows_deleted;
|
||||
srv_n_system_rows_read_old = srv_stats.n_system_rows_read;
|
||||
|
||||
mutex_exit(&srv_innodb_monitor_mutex);
|
||||
}
|
||||
|
||||
@ -1567,11 +1576,33 @@ srv_printf_innodb_monitor(
|
||||
/ time_elapsed,
|
||||
((ulint) srv_stats.n_rows_read - srv_n_rows_read_old)
|
||||
/ time_elapsed);
|
||||
|
||||
fprintf(file,
|
||||
"Number of system rows inserted " ULINTPF
|
||||
", updated " ULINTPF ", deleted " ULINTPF
|
||||
", read " ULINTPF "\n",
|
||||
(ulint) srv_stats.n_system_rows_inserted,
|
||||
(ulint) srv_stats.n_system_rows_updated,
|
||||
(ulint) srv_stats.n_system_rows_deleted,
|
||||
(ulint) srv_stats.n_system_rows_read);
|
||||
fprintf(file,
|
||||
"%.2f inserts/s, %.2f updates/s,"
|
||||
" %.2f deletes/s, %.2f reads/s\n",
|
||||
((ulint) srv_stats.n_system_rows_inserted
|
||||
- srv_n_system_rows_inserted_old) / time_elapsed,
|
||||
((ulint) srv_stats.n_system_rows_updated
|
||||
- srv_n_system_rows_updated_old) / time_elapsed,
|
||||
((ulint) srv_stats.n_system_rows_deleted
|
||||
- srv_n_system_rows_deleted_old) / time_elapsed,
|
||||
((ulint) srv_stats.n_system_rows_read
|
||||
- srv_n_system_rows_read_old) / time_elapsed);
|
||||
srv_n_rows_inserted_old = srv_stats.n_rows_inserted;
|
||||
srv_n_rows_updated_old = srv_stats.n_rows_updated;
|
||||
srv_n_rows_deleted_old = srv_stats.n_rows_deleted;
|
||||
srv_n_rows_read_old = srv_stats.n_rows_read;
|
||||
srv_n_system_rows_inserted_old = srv_stats.n_system_rows_inserted;
|
||||
srv_n_system_rows_updated_old = srv_stats.n_system_rows_updated;
|
||||
srv_n_system_rows_deleted_old = srv_stats.n_system_rows_deleted;
|
||||
srv_n_system_rows_read_old = srv_stats.n_system_rows_read;
|
||||
|
||||
/* Only if lock_print_info_summary proceeds correctly,
|
||||
before we call the lock_print_info_all_transactions
|
||||
@ -1845,6 +1876,17 @@ srv_export_innodb_status(void)
|
||||
|
||||
export_vars.innodb_rows_deleted = srv_stats.n_rows_deleted;
|
||||
|
||||
export_vars.innodb_system_rows_read = srv_stats.n_system_rows_read;
|
||||
|
||||
export_vars.innodb_system_rows_inserted =
|
||||
srv_stats.n_system_rows_inserted;
|
||||
|
||||
export_vars.innodb_system_rows_updated =
|
||||
srv_stats.n_system_rows_updated;
|
||||
|
||||
export_vars.innodb_system_rows_deleted =
|
||||
srv_stats.n_system_rows_deleted;
|
||||
|
||||
export_vars.innodb_num_open_files = fil_n_file_opened;
|
||||
|
||||
export_vars.innodb_truncated_status_writes =
|
||||
|
Reference in New Issue
Block a user