![]() |
MySQL 8.0.43
Source Code Documentation
|
Performance schema instruments metadata (declarations). More...
#include "my_config.h"#include <assert.h>#include <sys/types.h>#include <atomic>#include "lf.h"#include "my_compiler.h"#include "my_inttypes.h"#include "mysql_com.h"#include "mysqld_error.h"#include "prealloced_array.h"#include "storage/perfschema/pfs_column_types.h"#include "storage/perfschema/pfs_global.h"#include "storage/perfschema/pfs_lock.h"#include "storage/perfschema/pfs_name.h"#include "storage/perfschema/pfs_stat.h"#include "storage/perfschema/terminology_use_previous_enum.h"Go to the source code of this file.
Classes | |
| struct | PFS_instr_config |
| User-defined instrument configuration. More... | |
| class | PFS_instr_name |
| Encapsulates the name of an instrumented entity. More... | |
| struct | PFS_instr_class |
| Information for all instrumentation. More... | |
| struct | PFS_mutex_class |
| Instrumentation metadata for a mutex. More... | |
| struct | PFS_rwlock_class |
| Instrumentation metadata for a read write lock. More... | |
| struct | PFS_cond_class |
| Instrumentation metadata for a condition. More... | |
| struct | PFS_thread_class |
| Instrumentation metadata of a thread. More... | |
| struct | PFS_table_share_key |
| Key identifying a table share. More... | |
| struct | PFS_table_key |
| Table index or 'key'. More... | |
| struct | PFS_table_share_index |
| Index statistics of a table. More... | |
| struct | PFS_table_share_lock |
| Lock statistics of a table. More... | |
| struct | PFS_table_share |
| Instrumentation metadata for a table share. More... | |
| struct | PFS_error_class |
| Instrumentation metadata for an error. More... | |
| struct | PFS_file_class |
| Instrumentation metadata for a file. More... | |
| struct | PFS_stage_class |
| Instrumentation metadata for a stage. More... | |
| struct | PFS_statement_class |
| Instrumentation metadata for a statement. More... | |
| struct | PFS_transaction_class |
| Instrumentation metadata for a transaction. More... | |
| struct | PFS_socket_class |
| Instrumentation metadata for a socket. More... | |
| struct | PFS_memory_class |
| Instrumentation metadata for a memory. More... | |
Macros | |
| #define | PFS_MAX_INFO_NAME_LENGTH 128 |
| Maximum length of an instrument name. More... | |
| #define | PFS_MAX_OS_NAME_LENGTH 16 |
| Maximum length of the thread os name. More... | |
| #define | PFS_MAX_FULL_PREFIX_NAME_LENGTH 32 |
| Maximum length of the 'full' prefix of an instrument name. More... | |
| #define | PFS_MUTEX_PARTITIONS 2 |
| #define | GLOBAL_TABLE_IO_EVENT_INDEX 0 |
| #define | GLOBAL_TABLE_LOCK_EVENT_INDEX 1 |
| #define | GLOBAL_IDLE_EVENT_INDEX 2 |
| #define | GLOBAL_METADATA_EVENT_INDEX 3 |
| #define | COUNT_GLOBAL_EVENT_INDEX 4 |
| Number of global wait events. More... | |
| #define | GLOBAL_TRANSACTION_INDEX 0 |
| Transaction events are not wait events . More... | |
| #define | GLOBAL_ERROR_INDEX 0 |
Typedefs | |
| typedef unsigned int | PFS_sync_key |
| Key, naming a synch instrument (mutex, rwlock, cond). More... | |
| typedef unsigned int | PFS_thread_key |
| Key, naming a thread instrument. More... | |
| typedef unsigned int | PFS_file_key |
| Key, naming a file instrument. More... | |
| typedef unsigned int | PFS_stage_key |
| Key, naming a stage instrument. More... | |
| typedef unsigned int | PFS_statement_key |
| Key, naming a statement instrument. More... | |
| typedef unsigned int | PFS_transaction_key |
| Key, naming a transaction instrument. More... | |
| typedef unsigned int | PFS_socket_key |
| Key, naming a socket instrument. More... | |
| typedef unsigned int | PFS_memory_key |
| Key, naming a memory instrument. More... | |
| typedef Prealloced_array< PFS_instr_config *, 10 > | Pfs_instr_config_array |
Enumerations | |
| enum | PFS_class_type { PFS_CLASS_NONE = 0 , PFS_CLASS_MUTEX = 1 , PFS_CLASS_RWLOCK = 2 , PFS_CLASS_COND = 3 , PFS_CLASS_FILE = 4 , PFS_CLASS_TABLE = 5 , PFS_CLASS_STAGE = 6 , PFS_CLASS_STATEMENT = 7 , PFS_CLASS_TRANSACTION = 8 , PFS_CLASS_SOCKET = 9 , PFS_CLASS_TABLE_IO = 10 , PFS_CLASS_TABLE_LOCK = 11 , PFS_CLASS_IDLE = 12 , PFS_CLASS_MEMORY = 13 , PFS_CLASS_METADATA = 14 , PFS_CLASS_ERROR = 15 , PFS_CLASS_THREAD = 16 , PFS_CLASS_LAST = PFS_CLASS_THREAD , PFS_CLASS_MAX = PFS_CLASS_LAST + 1 } |
Functions | |
| uint | sanitize_index_count (uint count) |
| void | init_event_name_sizing (const PFS_global_param *param) |
| void | register_global_classes () |
| int | init_sync_class (uint mutex_class_sizing, uint rwlock_class_sizing, uint cond_class_sizing) |
| Initialize the instrument synch class buffers. More... | |
| void | cleanup_sync_class () |
| Cleanup the instrument synch class buffers. More... | |
| int | init_thread_class (uint thread_class_sizing) |
| Initialize the thread class buffer. More... | |
| void | cleanup_thread_class () |
| Cleanup the thread class buffers. More... | |
| int | init_table_share (uint table_share_sizing) |
| Initialize the table share buffer. More... | |
| void | cleanup_table_share () |
| Cleanup the table share buffers. More... | |
| int | init_table_share_lock_stat (uint table_stat_sizing) |
| Initialize the table lock stat buffer. More... | |
| void | cleanup_table_share_lock_stat () |
| Cleanup the table stat buffers. More... | |
| PFS_table_share_lock * | create_table_share_lock_stat () |
| Create a table share lock instrumentation. More... | |
| void | release_table_share_lock_stat (PFS_table_share_lock *pfs) |
| Release a table share lock instrumentation. More... | |
| int | init_table_share_index_stat (uint index_stat_sizing) |
| Initialize table index stat buffer. More... | |
| void | cleanup_table_share_index_stat () |
| Cleanup the table stat buffers. More... | |
| PFS_table_share_index * | create_table_share_index_stat (const TABLE_SHARE *server_share, uint server_index) |
| Create a table share index instrumentation. More... | |
| void | release_table_share_index_stat (PFS_table_share_index *pfs) |
| Release a table share index instrumentation. More... | |
| int | init_table_share_hash (const PFS_global_param *param) |
| Initialize the table share hash table. More... | |
| void | cleanup_table_share_hash () |
| Cleanup the table share hash table. More... | |
| int | init_file_class (uint file_class_sizing) |
| Initialize the file class buffer. More... | |
| void | cleanup_file_class () |
| Cleanup the file class buffers. More... | |
| int | init_stage_class (uint stage_class_sizing) |
| Initialize the stage class buffer. More... | |
| void | cleanup_stage_class () |
| Cleanup the stage class buffers. More... | |
| int | init_statement_class (uint statement_class_sizing) |
| Initialize the statement class buffer. More... | |
| void | cleanup_statement_class () |
| Cleanup the statement class buffers. More... | |
| int | init_socket_class (uint socket_class_sizing) |
| Initialize the socket class buffer. More... | |
| void | cleanup_socket_class () |
| Cleanup the socket class buffers. More... | |
| int | init_memory_class (uint memory_class_sizing) |
| Initialize the memory class buffer. More... | |
| void | cleanup_memory_class () |
| Cleanup the memory class buffers. More... | |
| PFS_sync_key | register_mutex_class (const char *name, uint name_length, PSI_mutex_info *info) |
| Register a mutex instrumentation metadata. More... | |
| PFS_sync_key | register_rwlock_class (const char *name, uint name_length, PSI_rwlock_info *info) |
| Register a rwlock instrumentation metadata. More... | |
| PFS_sync_key | register_cond_class (const char *name, uint name_length, PSI_cond_info *info) |
| Register a condition instrumentation metadata. More... | |
| PFS_thread_key | register_thread_class (const char *name, uint name_length, PSI_thread_info *info) |
| Register a thread instrumentation metadata. More... | |
| PFS_file_key | register_file_class (const char *name, uint name_length, PSI_file_info *info) |
| Register a file instrumentation metadata. More... | |
| PFS_stage_key | register_stage_class (const char *name, uint prefix_length, uint name_length, PSI_stage_info *info) |
| Register a stage instrumentation metadata. More... | |
| PFS_statement_key | register_statement_class (const char *name, uint name_length, PSI_statement_info *info) |
| Register a statement instrumentation metadata. More... | |
| PFS_socket_key | register_socket_class (const char *name, uint name_length, PSI_socket_info *info) |
| Register a socket instrumentation metadata. More... | |
| PFS_memory_key | register_memory_class (const char *name, uint name_length, PSI_memory_info *info) |
| Register a memory instrumentation metadata. More... | |
| PFS_mutex_class * | find_mutex_class (PFS_sync_key key) |
| Find a mutex instrumentation class by key. More... | |
| PFS_mutex_class * | sanitize_mutex_class (PFS_mutex_class *unsafe) |
| PFS_rwlock_class * | find_rwlock_class (PFS_sync_key key) |
| Find a rwlock instrumentation class by key. More... | |
| PFS_rwlock_class * | sanitize_rwlock_class (PFS_rwlock_class *unsafe) |
| PFS_cond_class * | find_cond_class (PFS_sync_key key) |
| Find a condition instrumentation class by key. More... | |
| PFS_cond_class * | sanitize_cond_class (PFS_cond_class *unsafe) |
| PFS_thread_class * | find_thread_class (PFS_sync_key key) |
| Find a thread instrumentation class by key. More... | |
| PFS_thread_class * | sanitize_thread_class (PFS_thread_class *unsafe) |
| PFS_file_class * | find_file_class (PFS_file_key key) |
| Find a file instrumentation class by key. More... | |
| PFS_file_class * | sanitize_file_class (PFS_file_class *unsafe) |
| PFS_stage_class * | find_stage_class (PFS_stage_key key) |
| Find a stage instrumentation class by key. More... | |
| PFS_stage_class * | sanitize_stage_class (PFS_stage_class *unsafe) |
| PFS_statement_class * | find_statement_class (PFS_stage_key key) |
| Find a statement instrumentation class by key. More... | |
| PFS_statement_class * | sanitize_statement_class (PFS_statement_class *unsafe) |
| PFS_instr_class * | find_table_class (uint index) |
| PFS_instr_class * | sanitize_table_class (PFS_instr_class *unsafe) |
| PFS_socket_class * | find_socket_class (PFS_socket_key key) |
| Find a socket instrumentation class by key. More... | |
| PFS_socket_class * | sanitize_socket_class (PFS_socket_class *unsafe) |
| PFS_memory_class * | find_memory_class (PFS_memory_key key) |
| Find a memory instrumentation class by key. More... | |
| PFS_memory_class * | sanitize_memory_class (PFS_memory_class *unsafe) |
| PFS_instr_class * | find_idle_class (uint index) |
| PFS_instr_class * | sanitize_idle_class (PFS_instr_class *unsafe) |
| PFS_instr_class * | find_metadata_class (uint index) |
| PFS_instr_class * | sanitize_metadata_class (PFS_instr_class *unsafe) |
| PFS_error_class * | find_error_class (uint index) |
| PFS_error_class * | sanitize_error_class (PFS_instr_class *unsafe) |
| PFS_transaction_class * | find_transaction_class (uint index) |
| PFS_transaction_class * | sanitize_transaction_class (PFS_transaction_class *unsafe) |
| PFS_table_share * | find_or_create_table_share (PFS_thread *thread, bool temporary, const TABLE_SHARE *share) |
| Find or create a table share instrumentation. More... | |
| void | release_table_share (PFS_table_share *pfs) |
| void | drop_table_share (PFS_thread *thread, bool temporary, const char *schema_name, uint schema_name_length, const char *table_name, uint table_name_length) |
| Drop the instrumented table share associated with a table. More... | |
| PFS_table_share * | sanitize_table_share (PFS_table_share *unsafe) |
| Sanitize an unsafe table_share pointer. More... | |
| void | reset_events_waits_by_class () |
| Reset the wait statistics per instrument class. More... | |
| void | reset_file_class_io () |
| Reset the I/O statistics per file class. More... | |
| void | reset_socket_class_io () |
| Reset the I/O statistics per socket class. More... | |
| void | update_table_share_derived_flags (PFS_thread *thread) |
| Update derived flags for all table shares. More... | |
| void | update_program_share_derived_flags (PFS_thread *thread) |
| Update derived flags for all stored procedure shares. More... | |
| ulonglong | gtid_monitoring_getsystime () |
| Get current time for GTID monitoring. More... | |
Variables | |
| bool | pfs_enabled |
| Global performance schema flag. More... | |
| std::atomic< uint32 > | pfs_unload_plugin_ref_count |
| Global ref count for plugin and component events. More... | |
| Pfs_instr_config_array * | pfs_instr_config_array |
| PFS_INSTRUMENT option settings array. More... | |
| uint | mutex_class_start |
| uint | rwlock_class_start |
| uint | cond_class_start |
| uint | file_class_start |
| uint | socket_class_start |
| uint | wait_class_max |
| PFS_single_stat | global_idle_stat |
| Statistics for the IDLE instrument. More... | |
| PFS_table_io_stat | global_table_io_stat |
| Statistics for dropped table I/O. More... | |
| PFS_table_lock_stat | global_table_lock_stat |
| Statistics for dropped table lock. More... | |
| PFS_single_stat | global_metadata_stat |
| Statistics for the METADATA instrument. More... | |
| PFS_transaction_stat | global_transaction_stat |
| Statistics for the transaction instrument. More... | |
| PFS_error_stat | global_error_stat |
| Statistics for the error instrument. More... | |
| PFS_instr_class | global_table_io_class |
| Instrument controlling all table I/O. More... | |
| PFS_instr_class | global_table_lock_class |
| Instrument controlling all table lock. More... | |
| PFS_instr_class | global_idle_class |
| Instrument controlling all idle waits. More... | |
| PFS_instr_class | global_metadata_class |
| Instrument controlling all metadata locks. More... | |
| PFS_error_class | global_error_class |
| Instrument controlling all server errors. More... | |
| PFS_transaction_class | global_transaction_class |
| ulong | mutex_class_max |
| Size of the mutex class array. More... | |
| ulong | mutex_class_lost |
| Number of mutex class lost. More... | |
| ulong | rwlock_class_max |
| Size of the rwlock class array. More... | |
| ulong | rwlock_class_lost |
| Number of rwlock class lost. More... | |
| ulong | cond_class_max |
| Size of the condition class array. More... | |
| ulong | cond_class_lost |
| Number of condition class lost. More... | |
| ulong | thread_class_max |
| Size of the thread class array. More... | |
| ulong | thread_class_lost |
| Number of thread class lost. More... | |
| ulong | file_class_max |
| Size of the file class array. More... | |
| ulong | file_class_lost |
| Number of file class lost. More... | |
| ulong | stage_class_max |
| Size of the stage class array. More... | |
| ulong | stage_class_lost |
| Number of stage class lost. More... | |
| ulong | statement_class_max |
| Size of the statement class array. More... | |
| ulong | statement_class_lost |
| Number of statement class lost. More... | |
| ulong | transaction_class_max |
| Number of transaction classes. More... | |
| ulong | socket_class_max |
| Size of the socket class array. More... | |
| ulong | socket_class_lost |
| Number of socket class lost. More... | |
| ulong | memory_class_max |
| Size of the memory class array. More... | |
| ulong | memory_class_lost |
| Number of memory class lost. More... | |
| ulong | error_class_max |
| Number of error classes. More... | |
| PFS_mutex_class * | mutex_class_array |
| PFS_rwlock_class * | rwlock_class_array |
| PFS_cond_class * | cond_class_array |
| PFS_file_class * | file_class_array |
| LF_HASH | table_share_hash |
| Hash index for instrumented table shares. More... | |
Performance schema instruments metadata (declarations).
| #define PFS_MAX_FULL_PREFIX_NAME_LENGTH 32 |
Maximum length of the 'full' prefix of an instrument name.
For example, for the instrument name 'wait/sync/mutex/sql/LOCK_open', the full prefix is 'wait/sync/mutex/sql/', which in turn derives from a prefix 'wait/sync/mutex' for mutexes, and a category of 'sql' for mutexes of the sql layer in the server.
| #define PFS_MAX_INFO_NAME_LENGTH 128 |
Maximum length of an instrument name.
For example, 'wait/sync/mutex/sql/LOCK_open' is an instrument name.
| #define PFS_MAX_OS_NAME_LENGTH 16 |
Maximum length of the thread os name.
Must include a terminating NUL character. Length is 16 because of linux pthread_setname_np(3)