WL#7377: InnoDB: Remove innodb_*monitor tables
Status: Complete — Priority: Medium
InnoDB has a few built-in magic table names: CREATE TABLE on one of these names will set flags inside InnoDB to enable additional debug output to the error log. DROP TABLE will clear the flags and stop the output. This mechanism is awkward, and it has to be removed when switching to the global data dictionary. We will replace the tables as follows: innodb_monitor: Replace with SET GLOBAL innodb_status_output=ON|OFF; innodb_lock_monitor: Replace with SET GLOBAL innodb_status_output=ON|OFF; SET GLOBAL innodb_status_output_locks=ON|OFF; (CREATE/DROP TABLE innodb_lock_monitor is affecting both flags.) innodb_tablespace_monitor: Remove. innodb_table_monitor: Remove. innodb_mem_validate: Remove. This depends on UNIV_MEM_DEBUG, which is not normally enabled even in debug builds.
F1. SET GLOBAL innodb_status_output=ON/OFF will drive the same functionality as CREATE/DROP TABLE innodb_monitor did. F2. SET GLOBAL innodb_status_output_locks=ON/OFF will drive the same functionality as CREATE/DROP TABLE innodb_lock_monitor did. F3. All table names will stop being magic for InnoDB.
All code related to srv_print_innodb_tablespace_monitor and srv_print_innodb_table_monitor will be removed. All code related to S_innodb_* will be removed from row0mysql.cc. The new Boolean global variables innodb_status_output, innodb_status_output_locks will default to OFF at startup. An explicit SET GLOBAL will enable or disable the output at runtime.
Copyright (c) 2000, 2019, Oracle Corporation and/or its affiliates. All rights reserved.