[MDEV-17732] Write functional tests for the InnoDB monitor counters in information_schema.innodb_metrics Created: 2018-11-16  Updated: 2023-10-30

Status: Confirmed
Project: MariaDB Server
Component/s: Storage Engine - InnoDB, Storage Engine - XtraDB, Tests
Fix Version/s: 11.5

Type: Task Priority: Major
Reporter: Marko Mäkelä Assignee: Thirunarayanan Balathandayuthapani
Resolution: Unresolved Votes: 1
Labels: monitoring, test

Issue Links:
Blocks
blocks MDEV-15706 Remove information_schema.innodb_metr... Open
Relates
relates to MDEV-16580 Remove unused monitor counters from I... Closed
relates to MDEV-31308 InnoDB monitor trx_rseg_history_len w... Closed

 Description   

As a preparation for the code refactoring in
MDEV-15706 Remove information_schema.innodb_metrics, innodb_monitor_enable, innodb_monitor_disable
we should write functional tests to cover all existing InnoDB monitor counters.

See the comments in MDEV-16580, which removed one useless counter.

Because information_schema.innodb_metrics appeared in MariaDB Server 10.0 (and MySQL 5.6), I think that the tests should be implemented in 10.0 already. Between MySQL 5.6 and 5.7, the following have been removed:

  • buffer_LRU_batch_pages
  • buffer_LRU_batch_total_pages
  • buffer_LRU_batches
  • buffer_flush_batch_rescan
  • log_pending_log_writes
  • metadata_mem_pool_size

The following have been added in MySQL 5.7 and could be accordingly added in MariaDB 10.2:

  • buffer_LRU_batch_evict_pages
  • buffer_LRU_batch_evict_total_pages
  • buffer_LRU_batch_flush_avg_pass
  • buffer_LRU_batch_flush_avg_time_est
  • buffer_LRU_batch_flush_avg_time_slot
  • buffer_LRU_batch_flush_avg_time_thread
  • buffer_LRU_batch_flush_pages
  • buffer_LRU_batch_flush_total_pages
  • buffer_LRU_batches_evict
  • buffer_LRU_batches_flush
  • buffer_LRU_get_free_loops
  • buffer_LRU_get_free_waits
  • buffer_flush_adaptive_avg_pass
  • buffer_flush_adaptive_avg_time_est
  • buffer_flush_adaptive_avg_time_slot
  • buffer_flush_adaptive_avg_time_thread
  • buffer_flush_avg_pass
  • buffer_flush_avg_time
  • buffer_flush_n_to_flush_by_age
  • ddl_log_file_alter_table
  • ddl_sort_file_alter_table
  • innodb_dict_lru_count
  • innodb_rwlock_sx_os_waits
  • innodb_rwlock_sx_os_waits
  • innodb_rwlock_sx_spin_rounds
  • innodb_rwlock_sx_spin_rounds
  • innodb_rwlock_sx_spin_waits
  • innodb_rwlock_sx_spin_waits
  • log_padded
  • log_pending_log_flushes


 Comments   
Comment by Marko Mäkelä [ 2023-05-09 ]

Because this is only about test coverage, I think that 10.6 or its immediate non-EOL successor (currently 10.9) will be a reasonable target. If we target 10.6, some counters that were removed in 10.8 as part of MDEV-14425 or MDEV-27774 can be ignored.

It could also make sense to try to cover all InnoDB status variables in tests. Such tests would have exposed MDEV-29967, for example.

Generated at Thu Feb 08 08:38:41 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.