MySQL 8.0.40
Source Code Documentation
|
Classes | |
struct | PSI_rwlock |
Interface for an instrumented rwlock. More... | |
struct | PSI_rwlock_info_v1 |
Rwlock information. More... | |
struct | PSI_rwlock_locker_state_v1 |
State data storage for start_rwlock_rdwait_v1_t , start_rwlock_wrwait_v1_t . More... | |
struct | PSI_rwlock_bootstrap |
Entry point for the performance schema interface. More... | |
struct | PSI_rwlock_service_v2 |
Performance Schema Rwlock Interface, version 2. More... | |
Macros | |
#define | PSI_RWLOCK_VERSION_1 1 |
Performance Schema Rwlock Interface number for version 1. More... | |
#define | PSI_RWLOCK_VERSION_2 2 |
Performance Schema Rwlock Interface number for version 2. More... | |
#define | PSI_CURRENT_RWLOCK_VERSION 2 |
Performance Schema Rwlock Interface number for the most recent version. More... | |
Typedefs | |
typedef unsigned int | PSI_rwlock_key |
Instrumented rwlock key. More... | |
typedef struct PSI_rwlock | PSI_rwlock |
typedef struct PSI_rwlock_locker | PSI_rwlock_locker |
typedef enum PSI_rwlock_operation | PSI_rwlock_operation |
typedef struct PSI_rwlock_info_v1 | PSI_rwlock_info_v1 |
typedef struct PSI_rwlock_locker_state_v1 | PSI_rwlock_locker_state_v1 |
typedef void(* | register_rwlock_v1_t) (const char *category, struct PSI_rwlock_info_v1 *info, int count) |
Rwlock registration API. More... | |
typedef struct PSI_rwlock *(* | init_rwlock_v1_t) (PSI_rwlock_key key, const void *identity) |
Rwlock instrumentation initialization API. More... | |
typedef void(* | destroy_rwlock_v1_t) (struct PSI_rwlock *rwlock) |
Rwlock instrumentation destruction API. More... | |
typedef struct PSI_rwlock_locker *(* | start_rwlock_rdwait_v1_t) (struct PSI_rwlock_locker_state_v1 *state, struct PSI_rwlock *rwlock, enum PSI_rwlock_operation op, const char *src_file, unsigned int src_line) |
Record a rwlock instrumentation read wait start event. More... | |
typedef void(* | end_rwlock_rdwait_v1_t) (struct PSI_rwlock_locker *locker, int rc) |
Record a rwlock instrumentation read wait end event. More... | |
typedef struct PSI_rwlock_locker *(* | start_rwlock_wrwait_v1_t) (struct PSI_rwlock_locker_state_v1 *state, struct PSI_rwlock *rwlock, enum PSI_rwlock_operation op, const char *src_file, unsigned int src_line) |
Record a rwlock instrumentation write wait start event. More... | |
typedef void(* | end_rwlock_wrwait_v1_t) (struct PSI_rwlock_locker *locker, int rc) |
Record a rwlock instrumentation write wait end event. More... | |
typedef void(* | unlock_rwlock_v1_t) (struct PSI_rwlock *rwlock) |
Record a rwlock instrumentation unlock event. More... | |
typedef void(* | unlock_rwlock_v2_t) (struct PSI_rwlock *rwlock, enum PSI_rwlock_operation op) |
Record a rwlock instrumentation unlock event. More... | |
typedef struct PSI_rwlock_info_v1 | PSI_rwlock_info |
typedef struct PSI_rwlock_locker_state_v1 | PSI_rwlock_locker_state |
typedef struct PSI_rwlock_bootstrap | PSI_rwlock_bootstrap |
typedef struct PSI_rwlock_service_v2 | PSI_rwlock_service_t |
Enumerations | |
enum | PSI_rwlock_operation { PSI_RWLOCK_READLOCK = 0 , PSI_RWLOCK_WRITELOCK = 1 , PSI_RWLOCK_TRYREADLOCK = 2 , PSI_RWLOCK_TRYWRITELOCK = 3 , PSI_RWLOCK_UNLOCK = 4 , PSI_RWLOCK_SHAREDLOCK = 5 , PSI_RWLOCK_SHAREDEXCLUSIVELOCK = 6 , PSI_RWLOCK_EXCLUSIVELOCK = 7 , PSI_RWLOCK_TRYSHAREDLOCK = 8 , PSI_RWLOCK_TRYSHAREDEXCLUSIVELOCK = 9 , PSI_RWLOCK_TRYEXCLUSIVELOCK = 10 , PSI_RWLOCK_SHAREDUNLOCK = 11 , PSI_RWLOCK_SHAREDEXCLUSIVEUNLOCK = 12 , PSI_RWLOCK_EXCLUSIVEUNLOCK = 13 } |
Operation performed on an instrumented rwlock. More... | |
Variables | |
MYSQL_PLUGIN_IMPORT PSI_rwlock_service_t * | psi_rwlock_service |
#define PSI_CURRENT_RWLOCK_VERSION 2 |
Performance Schema Rwlock Interface number for the most recent version.
The most current version is PSI_RWLOCK_VERSION_2
#define PSI_RWLOCK_VERSION_1 1 |
Performance Schema Rwlock Interface number for version 1.
This version is obsolete.
#define PSI_RWLOCK_VERSION_2 2 |
Performance Schema Rwlock Interface number for version 2.
This version is supported.
typedef void(* destroy_rwlock_v1_t) (struct PSI_rwlock *rwlock) |
Rwlock instrumentation destruction API.
rwlock | the rwlock to destroy |
typedef void(* end_rwlock_rdwait_v1_t) (struct PSI_rwlock_locker *locker, int rc) |
Record a rwlock instrumentation read wait end event.
locker | a thread locker for the running thread |
rc | 0 if the lock was acquired, 1 if it was not |
typedef void(* end_rwlock_wrwait_v1_t) (struct PSI_rwlock_locker *locker, int rc) |
Record a rwlock instrumentation write wait end event.
locker | a thread locker for the running thread |
rc | 0 if the lock was acquired, 1 if it was not |
typedef struct PSI_rwlock *(* init_rwlock_v1_t) (PSI_rwlock_key key, const void *identity) |
Rwlock instrumentation initialization API.
key | the registered rwlock key |
identity | the address of the rwlock itself |
typedef struct PSI_rwlock PSI_rwlock |
typedef struct PSI_rwlock_bootstrap PSI_rwlock_bootstrap |
typedef struct PSI_rwlock_info_v1 PSI_rwlock_info |
typedef struct PSI_rwlock_info_v1 PSI_rwlock_info_v1 |
typedef unsigned int PSI_rwlock_key |
Instrumented rwlock key.
To instrument a rwlock, a rwlock key must be obtained using register_rwlock
. Using a zero key always disable the instrumentation.
typedef struct PSI_rwlock_locker PSI_rwlock_locker |
typedef struct PSI_rwlock_locker_state_v1 PSI_rwlock_locker_state |
typedef struct PSI_rwlock_locker_state_v1 PSI_rwlock_locker_state_v1 |
typedef enum PSI_rwlock_operation PSI_rwlock_operation |
typedef struct PSI_rwlock_service_v2 PSI_rwlock_service_t |
typedef void(* register_rwlock_v1_t) (const char *category, struct PSI_rwlock_info_v1 *info, int count) |
Rwlock registration API.
category | a category name (typically a plugin name) |
info | an array of rwlock info to register |
count | the size of the info array |
typedef struct PSI_rwlock_locker *(* start_rwlock_rdwait_v1_t) (struct PSI_rwlock_locker_state_v1 *state, struct PSI_rwlock *rwlock, enum PSI_rwlock_operation op, const char *src_file, unsigned int src_line) |
Record a rwlock instrumentation read wait start event.
state | data storage for the locker |
rwlock | the instrumented rwlock to lock |
op | the operation to perform |
src_file | the source file name |
src_line | the source line number |
typedef struct PSI_rwlock_locker *(* start_rwlock_wrwait_v1_t) (struct PSI_rwlock_locker_state_v1 *state, struct PSI_rwlock *rwlock, enum PSI_rwlock_operation op, const char *src_file, unsigned int src_line) |
Record a rwlock instrumentation write wait start event.
state | data storage for the locker |
rwlock | the instrumented rwlock to lock |
op | the operation to perform |
src_file | the source file name |
src_line | the source line number |
typedef void(* unlock_rwlock_v1_t) (struct PSI_rwlock *rwlock) |
Record a rwlock instrumentation unlock event.
rwlock | the rwlock instrumentation |
typedef void(* unlock_rwlock_v2_t) (struct PSI_rwlock *rwlock, enum PSI_rwlock_operation op) |
Record a rwlock instrumentation unlock event.
rwlock | the rwlock instrumentation |
op | the unlock operation performed |
enum PSI_rwlock_operation |
Operation performed on an instrumented rwlock.
For basic READ / WRITE lock, operations are "READ" or "WRITE". For SX-locks, operations are "SHARED", "SHARED-EXCLUSIVE" or "EXCLUSIVE".
|
extern |