MySQL 8.0.39
Source Code Documentation
|
Performance schema instruments metadata (implementation). More...
#include "storage/perfschema/pfs_instr_class.h"
#include <assert.h>
#include <string.h>
#include <algorithm>
#include <atomic>
#include "lex_string.h"
#include "lf.h"
#include "my_dbug.h"
#include "my_macros.h"
#include "my_sys.h"
#include "my_systime.h"
#include "mysql/psi/mysql_thread.h"
#include "sql/mysqld.h"
#include "sql/table.h"
#include "storage/perfschema/pfs_buffer_container.h"
#include "storage/perfschema/pfs_builtin_memory.h"
#include "storage/perfschema/pfs_column_values.h"
#include "storage/perfschema/pfs_events_waits.h"
#include "storage/perfschema/pfs_global.h"
#include "storage/perfschema/pfs_instr.h"
#include "storage/perfschema/pfs_program.h"
#include "storage/perfschema/pfs_setup_object.h"
#include "storage/perfschema/pfs_timer.h"
#include "storage/perfschema/terminology_use_previous.h"
Classes | |
class | Proc_table_share_derived_flags |
class | Proc_program_share_derived_flags |
Macros | |
#define | REGISTER_CLASS_BODY_PART(INDEX, ARRAY, MAX, NAME, NAME_LENGTH) |
#define | FIND_CLASS_BODY(KEY, COUNT, ARRAY) |
Functions | |
std::atomic< uint32 > | pfs_unload_plugin_ref_count (0) |
Global performance schema reference count for plugin and component events. More... | |
static void | configure_instr_class (PFS_instr_class *entry) |
Set user-defined configuration values for an instrument. More... | |
static void | init_instr_class (PFS_instr_class *klass, const char *name, uint name_length, int flags, int volatility, const char *documentation, PFS_class_type class_type) |
static uint | safe_strlen (const char *s, uint max_len) |
Like strlen (or POSIX strnlen), but don't read past the max_len'th character. More... | |
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... | |
static const uchar * | table_share_hash_get_key (const uchar *entry, size_t *length) |
get_key function for table_share_hash . More... | |
static uint | table_share_hash_func (const LF_HASH *, const uchar *key, size_t key_len) |
static int | table_share_hash_cmp_func (const uchar *key1, size_t key_len1, const uchar *key2, size_t key_len2) |
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... | |
static LF_PINS * | get_table_share_hash_pins (PFS_thread *thread) |
Get the hash pins for. More... | |
static void | set_table_share_key (PFS_table_share_key *key, bool temporary, const char *schema_name, size_t schema_name_length, const char *table_name, size_t table_name_length) |
Set a table share hash key. More... | |
int | init_table_share_lock_stat (uint table_stat_sizing) |
Initialize the table lock stat buffer. 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... | |
void | cleanup_table_share_lock_stat () |
Cleanup the table stat buffers. More... | |
int | init_table_share_index_stat (uint index_stat_sizing) |
Initialize table index stat buffer. 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... | |
void | cleanup_table_share_index_stat () |
Cleanup the table stat buffers. 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_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_key | register_thread_class (const char *name, uint name_length, PSI_thread_info *info) |
Register a thread instrumentation metadata. More... | |
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_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_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_socket_key | register_socket_class (const char *name, uint name_length, PSI_socket_info *info) |
Register a socket instrumentation metadata. More... | |
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_key | register_memory_class (const char *name, uint name_length, PSI_memory_info *info) |
Register a memory instrumentation metadata. More... | |
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_table_class (uint index) |
PFS_instr_class * | sanitize_table_class (PFS_instr_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_error_class *unsafe) |
PFS_transaction_class * | find_transaction_class (uint index) |
PFS_transaction_class * | sanitize_transaction_class (PFS_transaction_class *unsafe) |
static int | compare_keys (PFS_table_share *pfs, const TABLE_SHARE *share) |
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... | |
Performance schema instruments metadata (implementation).