MySQL 26.7.0
Source Code Documentation
mysql::csa Namespace Reference

Namespaces

namespace  anonymous_namespace{csa_service.cpp}
 
namespace  anonymous_namespace{job.cpp}
 
namespace  anonymous_namespace{relay_log_adaptive_reader.cpp}
 
namespace  tune
 

Classes

class  Applier_channel_monitor
 
class  Cached_event
 Implementation of the IReader_event which contains a cached, decoded event. More...
 
class  Cached_event_payload
 Implementation of the IReader_event which keeps event raw payload until decoded. More...
 
class  Channel
 Represents a channel in the Change Stream Applier (CSA). More...
 
struct  Csa_channel
 Aggregates applier structures for a single channel. More...
 
class  Csa_service
 Service class for the Change Streams Applier (CSA) More...
 
class  Data_source
 Represents a cached chunk of data that comes from the specific relay log file (events / headers may cross boundaries of Data_source, but one Data_source does not spread across multiple relay log files) Keeps track of the number of bytes currently in use. More...
 
class  Defs
 Common definitions used across multiple classes. More...
 
class  Dependency_adapter
 Class that resolves dependencies based on transaction sequence number and last committed. More...
 
class  Dependency_adapter_lwm
 Dependency adapter for LWM (Low Water Mark) based scheduling. More...
 
class  Event_file_metadata
 Represents basic event metadata: type and length. More...
 
class  Event_reader_controller
 The Event Reader / Controller class. More...
 
class  Event_set_fetchable
 Represents metadata of a set of events, capable of being fetched from a storage. More...
 
class  Event_set_fetchable_cache
 Empty implementation of Event_set_fetchable that does not fetch events from the storage as they were already fetched. More...
 
class  Event_set_fetchable_relay_log
 Implementation of Event_set_fetchable that fetches events from the relay log. More...
 
class  Fetchable_transaction
 Opaque for transaction, that is able to fetch itself in parts from the storage on demand. More...
 
class  Initable
 Interface for initable components. More...
 
class  IReader_event
 Interface for abstract event data returned by the reader, which can be decoded into a log event using the "decode" function. More...
 
class  Istream_prefetched
 Implementation of the Basic_istream, which reads data from the prefetched relay log. More...
 
class  Job
 A job represents a single unit of work applied by worker pool threads. More...
 
class  Job_applier
 Concrete class representing job applied by the applier. More...
 
class  Job_binlog
 The Job_binlog class is a container that holds a buffer of fetchable events and context for the transaction to be applied in change streams. More...
 
class  Lock_guard_object
 Scope guard to unlock an object. More...
 
struct  Locked_resource
 Resource guard class, used to check if resource was successfully locked and release resource in destructor. More...
 
class  Log_prefetcher
 This class starts an asynchronous thread that prefetches consecutive logs recorded in the index file. More...
 
class  Log_purge_controller
 Interface for a relay log controller which is capable of purging the relay logs. More...
 
class  Managed_event
 Managed event. More...
 
class  Module
 Represents a lockable module. More...
 
class  Prefetched_ifile
 Implementation of the Basic_binlog_ifile, which works on the prefetched stream (Istream_prefetched) Exposes additional function to set prefetcher (since legacy design does not allow to use a custom constructor - see Basic_binlog_file_reader). More...
 
class  Reader
 
class  Relay_context
 Handles and operates the handled session. More...
 
class  Relay_log_adaptive_reader
 Iterates over relay log and returns fetchable Jobs This reader reads consecutive events from the relay log and caches events. More...
 
class  Relay_log_deleter
 Class responsible for removing relay log file, when the last handle to this deleter is released. More...
 
class  Rescue_task
 Rescue task to rollback conflicting transaction. More...
 
struct  Resource_entry
 Entry for a named resource, managing available count and synchronization. More...
 
class  Resource_instance_monitor
 Manages per-channel resources for the Change Stream Applier (CSA). More...
 
struct  Resource_map
 Resources used by a channel. More...
 
class  Resource_monitor
 Singleton Resource Monitor for all channels/instances. More...
 
class  Session
 Wraps up THD object and provides simple function to manage its execution within CSA. More...
 
struct  Session_guard
 RAII guard for temporarily switching current_thd to a session THD. More...
 
struct  Session_legacy_stats
 Aggregates MTA legacy statistics. More...
 
class  Session_service
 Service that provides a free session to executing transactions. More...
 
class  Session_service_bounded_queue
 Service that provides a free session to executing transactions. More...
 
struct  Session_service_psi
 Dependency_tracker instrumentation parameters, packed into this structure to simplify construction of a Dependency_tracker class instance and prevent mistakes when passing a lot of integer parameters into the class constructor. More...
 
struct  Sliding_window_counter
 Calculates statistic value in a time window. More...
 
class  Statistics_map
 Supported statistics: More...
 
class  Sync_transaction_provider
 Implementation of 'Transaction_provider' interface. More...
 
class  Task_exec_job
 A task that executes a job in the change streams apply system. More...
 
class  Transaction_conflict_manager
 Rescue thread for solving conflicts between transactions Main methods are: More...
 
class  Transaction_conflict_monitor
 Singleton Transaction_conflict_manager for all of the registered "instances". More...
 
class  Transaction_provider
 Interface for all transaction providers. More...
 

Typedefs

using Relay_context_ptr = std::shared_ptr< Relay_context >
 
using Transaction_provider_sptr = std::shared_ptr< Transaction_provider >
 
using Job_ptr = Job *
 Type alias for a pointer to Job. More...
 
using Resource_instance_monitor_ref = std::reference_wrapper< Resource_instance_monitor >
 
using Dependency_adapter_ptr = std::unique_ptr< Dependency_adapter >
 Unique pointer type for Dependency_adapter. More...
 
using Transaction_conflict_manager_sptr = std::unique_ptr< Transaction_conflict_manager >
 
using Session_service_ptr = std::shared_ptr< Session_service >
 Shared pointer to Session_service. More...
 
using Event_set_fetchable_ptr = std::unique_ptr< Event_set_fetchable >
 Unique pointer to a specific implementation of Event_set_fetchable (no need to share). More...
 
using Event_set_fetchable_list = std::list< Event_set_fetchable_ptr >
 List of Event_set_fetchable pointers, each able to fetch a whole transaction from the storage. More...
 
using Reader_sptr = std::shared_ptr< Reader >
 Shared reader type. More...
 
using Data_source_sptr = std::shared_ptr< Data_source >
 
using IReader_event_ptr = std::shared_ptr< IReader_event >
 
using Vector_type = Data_source::Data_type
 
using Log_prefetcher_sptr = std::shared_ptr< Log_prefetcher >
 
using Log_purge_controller_ref = std::reference_wrapper< Log_purge_controller >
 
using Log_purge_controller_sptr = std::shared_ptr< Log_purge_controller >
 
using Prefetched_relaylog_reader = Basic_binlog_file_reader< Prefetched_ifile, Binlog_event_data_istream, Binlog_event_object_istream, Default_binlog_event_allocator >
 
using Relay_log_deleter_handle = std::shared_ptr< Relay_log_deleter >
 Represents a shared reference to Relay_log_deleter. More...
 
using Sync_transaction_provider_sptr = std::unique_ptr< Sync_transaction_provider >
 

Enumerations

enum class  Transaction_phase {
  prepare = 0 , commit_register = 1 , commit_binlog = 2 , retry_commit = 3 ,
  done = 4
}
 Lists all phases the Job_binlog can be in. More...
 
enum class  Rescue_operation_type { rollback }
 Types of rescue operations. More...
 
enum class  Reader_controller_read_type { event , metadata , cache_metadata }
 

Functions

static void init_psi_csa_rwlocks ()
 
static void init_psi_csa_mutexes ()
 
static void init_psi_csa_conds ()
 
static void init_psi_csa_thread_keys (void)
 
static void init_psi_csa_mem ()
 
static void init_psi_stages_info (void)
 
void init_csa_psi ()
 Initializes PSI keys for CSA. More...
 
void init_mta_psi_cond_keys ()
 Initializes PSI condition variable keys for MTA. More...
 

Variables

static const std::string psi_category = "csa"
 
PSI_rwlock_key key_rwlock_module
 PSI rwlock key for module locking. More...
 
PSI_rwlock_info all_csa_rwlocks []
 
PSI_mutex_info all_csa_locks []
 
PSI_cond_info all_csa_conds []
 
PSI_thread_info all_csa_threads []
 
static PSI_memory_info all_csa_mem_resources []
 
PSI_stage_infoall_csa_plugin_stages []
 
Mutex Keys

PSI mutex key for scheduler.

PSI_mutex_key key_mutex_scheduler
 
PSI_mutex_key key_mutex_module
 PSI mutex key for module. More...
 
PSI_mutex_key key_mt_csa_sched_main
 PSI mutex key for CSA scheduler main. More...
 
PSI_mutex_key key_mt_csa_sched_end
 PSI mutex key for CSA scheduler end. More...
 
PSI_mutex_key key_mt_csa_sched_tasks
 PSI mutex key for CSA scheduler tasks. More...
 
PSI_mutex_key key_mt_csa_sched_phases
 PSI mutex key for CSA scheduler phases. More...
 
PSI_mutex_key key_mt_csa_session_service_entry
 PSI mutex key for CSA session service entry. More...
 
PSI_mutex_key key_mt_csa_prefetcher_wait
 PSI mutex key for CSA prefetcher wait. More...
 
PSI_mutex_key key_mt_csa_prefetcher_file_move
 PSI mutex key for CSA prefetcher file move. More...
 
Condition Variable Keys

PSI cond key for CSA scheduler main.

PSI_cond_key key_cv_csa_sched_main
 
PSI_cond_key key_cv_csa_sched_end
 PSI cond key for CSA scheduler end. More...
 
PSI_cond_key key_cv_csa_prefetcher_wait
 PSI cond key for CSA prefetcher wait. More...
 
PSI_cond_key key_cv_csa_prefetcher_file_move
 PSI cond key for CSA prefetcher file move. More...
 
Thread Keys

PSI thread key for worker threads.

PSI_thread_key key_thread_worker
 
PSI_thread_key key_thread_scheduler
 PSI thread key for scheduler threads. More...
 
PSI_thread_key key_thread_prefetcher
 PSI thread key for prefetcher threads. More...
 
PSI_thread_key key_thread_session
 PSI thread key for prefetcher threads. More...
 
Memory Keys

PSI memory key for CSA prefetcher.

PSI_memory_key key_mem_csa_prefetcher
 
PSI_memory_key key_mem_csa_thp
 PSI memory key for CSA THP. More...
 
PSI_memory_key key_mem_csa_provider
 PSI memory key for CSA provider. More...
 
PSI_memory_key key_mem_csa_session_service
 PSI memory key for CSA session service. More...
 
PSI_memory_key key_mem_csa_scheduler
 PSI memory key for CSA scheduler. More...
 
PSI_memory_key key_decompressing_stream
 PSI memory key for decompressing stream. More...
 
Stage Information

Stage for CSA session attached.

PSI_stage_info stage_csa_session_attached
 
PSI_stage_info stage_csa_session_detached
 Stage for CSA session detached. More...
 
PSI_stage_info stage_csa_starting
 Stage for CSA starting. More...
 
PSI_stage_info stage_csa_working
 Stage for CSA working. More...
 
PSI_stage_info stage_csa_wait_for_trx
 Stage for CSA wait for transaction. More...
 
PSI_stage_info stage_csa_update_statistics
 Stage for CSA update statistics. More...
 
PSI_stage_info stage_csa_enqueue_transaction
 Stage for CSA enqueue transaction. More...
 
PSI_stage_info stage_csa_stopping
 Stage for CSA stopping. More...
 
PSI_stage_info stage_csa_stopped
 Stage for CSA stopped. More...
 
PSI_stage_info stage_csa_job_apply = {0, "Job: Applying.", 0, PSI_DOCUMENT_ME}
 Stage for CSA job apply. More...
 
PSI_stage_info stage_csa_session_acquire
 Stage for CSA session acquire. More...
 
PSI_stage_info stage_csa_job_attach
 Stage for CSA job attach. More...
 
PSI_stage_info stage_csa_job_detach
 Stage for CSA job detach. More...
 
PSI_stage_info stage_csa_session_release
 Stage for CSA session release. More...
 
PSI_stage_info stage_csa_clock_add
 Stage for CSA clock add. More...
 
PSI_stage_info stage_csa_clock_tick
 Stage for CSA clock tick. More...
 
PSI_stage_info stage_csa_dep_register
 Stage for CSA dependency register. More...
 
PSI_stage_info stage_csa_dep_add
 Stage for CSA dependency add. More...
 
PSI_stage_info stage_csa_dep_task_done
 Stage for CSA dependency task done. More...
 
PSI_stage_info stage_csa_sched_stopping
 Stage for CSA scheduler stopping. More...
 
PSI_stage_info stage_csa_sched_stopped
 Stage for CSA scheduler stopped. More...
 
PSI_stage_info stage_csa_sched_wait_for_work
 Stage for CSA scheduler wait for work. More...
 
PSI_stage_info stage_csa_sched_check_dependencies
 Stage for CSA scheduler check dependencies. More...
 
PSI_stage_info stage_csa_sched_check_stage_queues
 Stage for CSA scheduler check stage queues. More...
 
PSI_stage_info stage_csa_sched_enqueue_ready_tasks
 Stage for CSA scheduler enqueue ready tasks. More...
 
PSI_stage_info stage_csa_sched_sync_clock
 Stage for CSA scheduler sync clock. More...
 
PSI_stage_info stage_csa_sched_sync_limit
 Stage for CSA scheduler sync limit. More...
 
PSI_stage_info stage_csa_thp_worker_wait
 Stage for CSA THP worker wait. More...
 
PSI_stage_info stage_csa_thp_worker_exec
 Stage for CSA THP worker exec. More...
 
PSI_stage_info stage_csa_thp_worker_stop
 Stage for CSA THP worker stop. More...
 

Typedef Documentation

◆ Data_source_sptr

using mysql::csa::Data_source_sptr = typedef std::shared_ptr<Data_source>

◆ Dependency_adapter_ptr

using mysql::csa::Dependency_adapter_ptr = typedef std::unique_ptr<Dependency_adapter>

Unique pointer type for Dependency_adapter.

◆ Event_set_fetchable_list

List of Event_set_fetchable pointers, each able to fetch a whole transaction from the storage.

◆ Event_set_fetchable_ptr

using mysql::csa::Event_set_fetchable_ptr = typedef std::unique_ptr<Event_set_fetchable>

Unique pointer to a specific implementation of Event_set_fetchable (no need to share).

◆ IReader_event_ptr

using mysql::csa::IReader_event_ptr = typedef std::shared_ptr<IReader_event>

◆ Job_ptr

using mysql::csa::Job_ptr = typedef Job *

Type alias for a pointer to Job.

◆ Log_prefetcher_sptr

using mysql::csa::Log_prefetcher_sptr = typedef std::shared_ptr<Log_prefetcher>

◆ Log_purge_controller_ref

using mysql::csa::Log_purge_controller_ref = typedef std::reference_wrapper<Log_purge_controller>

◆ Log_purge_controller_sptr

◆ Prefetched_relaylog_reader

◆ Reader_sptr

using mysql::csa::Reader_sptr = typedef std::shared_ptr<Reader>

Shared reader type.

◆ Relay_context_ptr

using mysql::csa::Relay_context_ptr = typedef std::shared_ptr<Relay_context>

◆ Relay_log_deleter_handle

using mysql::csa::Relay_log_deleter_handle = typedef std::shared_ptr<Relay_log_deleter>

Represents a shared reference to Relay_log_deleter.

See explanation below.

◆ Resource_instance_monitor_ref

◆ Session_service_ptr

using mysql::csa::Session_service_ptr = typedef std::shared_ptr<Session_service>

Shared pointer to Session_service.

◆ Sync_transaction_provider_sptr

◆ Transaction_conflict_manager_sptr

◆ Transaction_provider_sptr

◆ Vector_type

Enumeration Type Documentation

◆ Reader_controller_read_type

Enumerator
event 

Reads and decodes event.

metadata 

Reads metadata, skips payload.

cache_metadata 

Read metadata and cache payload.

◆ Rescue_operation_type

Types of rescue operations.

Enumerator
rollback 

◆ Transaction_phase

enum class mysql::csa::Transaction_phase
strong

Lists all phases the Job_binlog can be in.

Enumerator
prepare 
commit_register 

Transaction prepare.

Register for commit phase

commit_binlog 

Committing phase.

retry_commit 

Retrying commit.

done 

Done, successfully or with failure.

Function Documentation

◆ init_csa_psi()

void mysql::csa::init_csa_psi ( void  )

Initializes PSI keys for CSA.

◆ init_mta_psi_cond_keys()

void mysql::csa::init_mta_psi_cond_keys ( )

Initializes PSI condition variable keys for MTA.

◆ init_psi_csa_conds()

static void mysql::csa::init_psi_csa_conds ( )
static

◆ init_psi_csa_mem()

static void mysql::csa::init_psi_csa_mem ( )
static

◆ init_psi_csa_mutexes()

static void mysql::csa::init_psi_csa_mutexes ( )
static

◆ init_psi_csa_rwlocks()

static void mysql::csa::init_psi_csa_rwlocks ( )
static

◆ init_psi_csa_thread_keys()

static void mysql::csa::init_psi_csa_thread_keys ( void  )
static

◆ init_psi_stages_info()

static void mysql::csa::init_psi_stages_info ( void  )
static

Variable Documentation

◆ all_csa_conds

PSI_cond_info mysql::csa::all_csa_conds[]
Initial value:
= {
{&key_cv_csa_sched_main, "csa_scheduler_main_cv", PSI_FLAG_SINGLETON, 0,
{&key_cv_csa_sched_end, "csa_scheduler_end_cv", PSI_FLAG_SINGLETON, 0,
{&key_cv_csa_prefetcher_wait, "csa_prefetcher_wait_cv", PSI_FLAG_SINGLETON,
{&key_cv_csa_prefetcher_file_move, "csa_prefetcher_file_move_cv",
#define PSI_DOCUMENT_ME
Definition: component_common.h:29
#define PSI_FLAG_SINGLETON
Singleton flag.
Definition: component_common.h:35
PSI_cond_key key_cv_csa_prefetcher_file_move
PSI cond key for CSA prefetcher file move.
Definition: psi.cc:100
PSI_cond_key key_cv_csa_sched_end
PSI cond key for CSA scheduler end.
Definition: psi.cc:98
PSI_cond_key key_cv_csa_prefetcher_wait
PSI cond key for CSA prefetcher wait.
Definition: psi.cc:99
PSI_cond_key key_cv_csa_sched_main
Definition: psi.cc:97

◆ all_csa_locks

PSI_mutex_info mysql::csa::all_csa_locks[]
Initial value:
= {
{&key_mt_csa_sched_main, "csa_sched_main_lock", PSI_FLAG_SINGLETON, 0,
{&key_mt_csa_sched_end, "csa_sched_end_lock", PSI_FLAG_SINGLETON, 0,
{&key_mt_csa_sched_tasks, "csa_sched_tasks_lock", PSI_FLAG_SINGLETON, 0,
{&key_mt_csa_sched_phases, "csa_sched_phase_lock", PSI_FLAG_SINGLETON, 0,
{&key_mt_csa_session_service_entry, "csa_session_service_entry_lock",
{&key_mt_csa_prefetcher_wait, "csa_prefetcher_wait_lock",
{&key_mt_csa_prefetcher_file_move, "csa_prefetcher_file_move_lock",
}
PSI_mutex_key key_mt_csa_session_service_entry
PSI mutex key for CSA session service entry.
Definition: psi.cc:64
PSI_mutex_key key_mt_csa_sched_phases
PSI mutex key for CSA scheduler phases.
Definition: psi.cc:63
PSI_mutex_key key_mutex_scheduler
Definition: psi.cc:57
PSI_mutex_key key_mt_csa_sched_tasks
PSI mutex key for CSA scheduler tasks.
Definition: psi.cc:62
PSI_mutex_key key_mt_csa_prefetcher_wait
PSI mutex key for CSA prefetcher wait.
Definition: psi.cc:65
PSI_mutex_key key_mt_csa_prefetcher_file_move
PSI mutex key for CSA prefetcher file move.
Definition: psi.cc:66
PSI_mutex_key key_mt_csa_sched_end
PSI mutex key for CSA scheduler end.
Definition: psi.cc:61
PSI_mutex_key key_mutex_module
PSI mutex key for module.
Definition: psi.cc:58
PSI_mutex_key key_mt_csa_sched_main
PSI mutex key for CSA scheduler main.
Definition: psi.cc:60

◆ all_csa_mem_resources

PSI_memory_info mysql::csa::all_csa_mem_resources[]
static
Initial value:
= {
{&key_mem_csa_prefetcher, "CSA Prefetcher memory", 0,
PSI_VOLATILITY_UNKNOWN, "Memory allocated in CSA prefetcher"},
{&key_mem_csa_thp, "CSA Thread pool memory", 0, PSI_VOLATILITY_UNKNOWN,
"Memory allocated in CSA thread pool"},
{&key_mem_csa_provider, "CSA Transaction provider memory", 0,
PSI_VOLATILITY_UNKNOWN, "Memory allocated in CSA transaction provider"},
{&key_mem_csa_provider, "CSA Session service memory", 0,
PSI_VOLATILITY_UNKNOWN, "Memory allocated in CSA session service"},
{&key_mem_csa_scheduler, "CSA scheduler memory", 0, PSI_VOLATILITY_UNKNOWN,
"Memory allocated in CSA scheduler"},
{&key_decompressing_stream, "CSA scheduler memory", 0,
"Memory allocated in CSA reader while decompression"}}
#define PSI_VOLATILITY_UNKNOWN
Definition: psi_bits.h:153
PSI_memory_key key_decompressing_stream
PSI memory key for decompressing stream.
Definition: psi.cc:151
PSI_memory_key key_mem_csa_prefetcher
Definition: psi.cc:146
PSI_memory_key key_mem_csa_scheduler
PSI memory key for CSA scheduler.
Definition: psi.cc:150
PSI_memory_key key_mem_csa_thp
PSI memory key for CSA THP.
Definition: psi.cc:147
PSI_memory_key key_mem_csa_provider
PSI memory key for CSA provider.
Definition: psi.cc:148

◆ all_csa_plugin_stages

PSI_stage_info* mysql::csa::all_csa_plugin_stages[]
Initial value:
PSI_stage_info stage_csa_sched_wait_for_work
Stage for CSA scheduler wait for work.
Definition: psi.cc:224
PSI_stage_info stage_csa_enqueue_transaction
Stage for CSA enqueue transaction.
Definition: psi.cc:191
PSI_stage_info stage_csa_update_statistics
Stage for CSA update statistics.
Definition: psi.cc:189
PSI_stage_info stage_csa_clock_add
Stage for CSA clock add.
Definition: psi.cc:208
PSI_stage_info stage_csa_stopping
Stage for CSA stopping.
Definition: psi.cc:193
PSI_stage_info stage_csa_thp_worker_stop
Stage for CSA THP worker stop.
Definition: psi.cc:241
PSI_stage_info stage_csa_session_release
Stage for CSA session release.
Definition: psi.cc:205
PSI_stage_info stage_csa_working
Stage for CSA working.
Definition: psi.cc:185
PSI_stage_info stage_csa_thp_worker_exec
Stage for CSA THP worker exec.
Definition: psi.cc:239
PSI_stage_info stage_csa_session_detached
Stage for CSA session detached.
Definition: psi.cc:180
PSI_stage_info stage_csa_sched_enqueue_ready_tasks
Stage for CSA scheduler enqueue ready tasks.
Definition: psi.cc:230
PSI_stage_info stage_csa_thp_worker_wait
Stage for CSA THP worker wait.
Definition: psi.cc:237
PSI_stage_info stage_csa_clock_tick
Stage for CSA clock tick.
Definition: psi.cc:210
PSI_stage_info stage_csa_sched_sync_clock
Stage for CSA scheduler sync clock.
Definition: psi.cc:232
PSI_stage_info stage_csa_job_apply
Stage for CSA job apply.
Definition: psi.cc:198
PSI_stage_info stage_csa_dep_task_done
Stage for CSA dependency task done.
Definition: psi.cc:217
PSI_stage_info stage_csa_job_detach
Stage for CSA job detach.
Definition: psi.cc:203
PSI_stage_info stage_csa_session_acquire
Stage for CSA session acquire.
Definition: psi.cc:199
PSI_stage_info stage_csa_sched_check_stage_queues
Stage for CSA scheduler check stage queues.
Definition: psi.cc:228
PSI_stage_info stage_csa_job_attach
Stage for CSA job attach.
Definition: psi.cc:201
PSI_stage_info stage_csa_sched_sync_limit
Stage for CSA scheduler sync limit.
Definition: psi.cc:234
PSI_stage_info stage_csa_dep_add
Stage for CSA dependency add.
Definition: psi.cc:215
PSI_stage_info stage_csa_stopped
Stage for CSA stopped.
Definition: psi.cc:195
PSI_stage_info stage_csa_session_attached
Definition: psi.cc:178
PSI_stage_info stage_csa_sched_check_dependencies
Stage for CSA scheduler check dependencies.
Definition: psi.cc:226
PSI_stage_info stage_csa_wait_for_trx
Stage for CSA wait for transaction.
Definition: psi.cc:187
PSI_stage_info stage_csa_dep_register
Stage for CSA dependency register.
Definition: psi.cc:213
PSI_stage_info stage_csa_sched_stopped
Stage for CSA scheduler stopped.
Definition: psi.cc:222
PSI_stage_info stage_csa_sched_stopping
Stage for CSA scheduler stopping.
Definition: psi.cc:220
PSI_stage_info stage_csa_starting
Stage for CSA starting.
Definition: psi.cc:183

◆ all_csa_rwlocks

PSI_rwlock_info mysql::csa::all_csa_rwlocks[]
Initial value:
= {
#define PSI_VOLATILITY_PERMANENT
Definition: psi_bits.h:154
PSI_rwlock_key key_rwlock_module
PSI rwlock key for module locking.
Definition: psi.cc:41

◆ all_csa_threads

PSI_thread_info mysql::csa::all_csa_threads[]
Initial value:
= {
{&key_thread_worker, "replica_worker", "rpl_rca_wkr",
{&key_thread_scheduler, "replica_scheduler", "rpl_rca_sch",
{&key_thread_prefetcher, "replica_prefetcher", "rpl_rca_pre",
{&key_thread_session, "replica_session", "rpl_rca_ses",
#define PSI_FLAG_THREAD_SYSTEM
System thread flag.
Definition: psi_bits.h:124
PSI_thread_key key_thread_scheduler
PSI thread key for scheduler threads.
Definition: psi.cc:123
PSI_thread_key key_thread_worker
Definition: psi.cc:122
PSI_thread_key key_thread_session
PSI thread key for prefetcher threads.
Definition: psi.cc:125
PSI_thread_key key_thread_prefetcher
PSI thread key for prefetcher threads.
Definition: psi.cc:124

◆ key_cv_csa_prefetcher_file_move

PSI_cond_key mysql::csa::key_cv_csa_prefetcher_file_move

PSI cond key for CSA prefetcher file move.

◆ key_cv_csa_prefetcher_wait

PSI_cond_key mysql::csa::key_cv_csa_prefetcher_wait

PSI cond key for CSA prefetcher wait.

◆ key_cv_csa_sched_end

PSI_cond_key mysql::csa::key_cv_csa_sched_end

PSI cond key for CSA scheduler end.

◆ key_cv_csa_sched_main

PSI_cond_key mysql::csa::key_cv_csa_sched_main

◆ key_decompressing_stream

PSI_memory_key mysql::csa::key_decompressing_stream

PSI memory key for decompressing stream.

◆ key_mem_csa_prefetcher

PSI_memory_key mysql::csa::key_mem_csa_prefetcher

◆ key_mem_csa_provider

PSI_memory_key mysql::csa::key_mem_csa_provider

PSI memory key for CSA provider.

◆ key_mem_csa_scheduler

PSI_memory_key mysql::csa::key_mem_csa_scheduler

PSI memory key for CSA scheduler.

◆ key_mem_csa_session_service

PSI_memory_key mysql::csa::key_mem_csa_session_service

PSI memory key for CSA session service.

◆ key_mem_csa_thp

PSI_memory_key mysql::csa::key_mem_csa_thp

PSI memory key for CSA THP.

◆ key_mt_csa_prefetcher_file_move

PSI_mutex_key mysql::csa::key_mt_csa_prefetcher_file_move

PSI mutex key for CSA prefetcher file move.

◆ key_mt_csa_prefetcher_wait

PSI_mutex_key mysql::csa::key_mt_csa_prefetcher_wait

PSI mutex key for CSA prefetcher wait.

◆ key_mt_csa_sched_end

PSI_mutex_key mysql::csa::key_mt_csa_sched_end

PSI mutex key for CSA scheduler end.

◆ key_mt_csa_sched_main

PSI_mutex_key mysql::csa::key_mt_csa_sched_main

PSI mutex key for CSA scheduler main.

◆ key_mt_csa_sched_phases

PSI_mutex_key mysql::csa::key_mt_csa_sched_phases

PSI mutex key for CSA scheduler phases.

◆ key_mt_csa_sched_tasks

PSI_mutex_key mysql::csa::key_mt_csa_sched_tasks

PSI mutex key for CSA scheduler tasks.

◆ key_mt_csa_session_service_entry

PSI_mutex_key mysql::csa::key_mt_csa_session_service_entry

PSI mutex key for CSA session service entry.

◆ key_mutex_module

PSI_mutex_key mysql::csa::key_mutex_module

PSI mutex key for module.

◆ key_mutex_scheduler

PSI_mutex_key mysql::csa::key_mutex_scheduler

◆ key_rwlock_module

PSI_rwlock_key mysql::csa::key_rwlock_module

PSI rwlock key for module locking.

◆ key_thread_prefetcher

PSI_thread_key mysql::csa::key_thread_prefetcher

PSI thread key for prefetcher threads.

◆ key_thread_scheduler

PSI_thread_key mysql::csa::key_thread_scheduler

PSI thread key for scheduler threads.

◆ key_thread_session

PSI_thread_key mysql::csa::key_thread_session

PSI thread key for prefetcher threads.

◆ key_thread_worker

PSI_thread_key mysql::csa::key_thread_worker

◆ psi_category

const std::string mysql::csa::psi_category = "csa"
static

◆ stage_csa_clock_add

PSI_stage_info mysql::csa::stage_csa_clock_add
Initial value:
= {
0, "Clock: Subscribe - wait for time ticket access.", 0, PSI_DOCUMENT_ME}

Stage for CSA clock add.

◆ stage_csa_clock_tick

PSI_stage_info mysql::csa::stage_csa_clock_tick
Initial value:
= {
0, "Clock: Tick - wait for time ticket access.", 0, PSI_DOCUMENT_ME}

Stage for CSA clock tick.

◆ stage_csa_dep_add

PSI_stage_info mysql::csa::stage_csa_dep_add
Initial value:
= {0, "Dependencies: Add dependency.", 0,

Stage for CSA dependency add.

◆ stage_csa_dep_register

PSI_stage_info mysql::csa::stage_csa_dep_register
Initial value:
= {0, "Dependencies: Register task.", 0,

Stage for CSA dependency register.

◆ stage_csa_dep_task_done

PSI_stage_info mysql::csa::stage_csa_dep_task_done
Initial value:
= {
0, "Dependencies: Release dependent tasks.", 0, PSI_DOCUMENT_ME}

Stage for CSA dependency task done.

◆ stage_csa_enqueue_transaction

PSI_stage_info mysql::csa::stage_csa_enqueue_transaction
Initial value:
= {
0, "CSA service: Enqueue transaction.", 0, PSI_DOCUMENT_ME}

Stage for CSA enqueue transaction.

◆ stage_csa_job_apply

PSI_stage_info mysql::csa::stage_csa_job_apply = {0, "Job: Applying.", 0, PSI_DOCUMENT_ME}

Stage for CSA job apply.

◆ stage_csa_job_attach

PSI_stage_info mysql::csa::stage_csa_job_attach
Initial value:
= {0, "Job: Attach to session.", 0,

Stage for CSA job attach.

◆ stage_csa_job_detach

PSI_stage_info mysql::csa::stage_csa_job_detach
Initial value:
= {0, "Job: Detach from session.", 0,

Stage for CSA job detach.

◆ stage_csa_sched_check_dependencies

PSI_stage_info mysql::csa::stage_csa_sched_check_dependencies
Initial value:
= {
0, "Scheduler: Check dependencies.", 0, PSI_DOCUMENT_ME}

Stage for CSA scheduler check dependencies.

◆ stage_csa_sched_check_stage_queues

PSI_stage_info mysql::csa::stage_csa_sched_check_stage_queues
Initial value:
= {
0, "Scheduler: Check stage queues.", 0, PSI_DOCUMENT_ME}

Stage for CSA scheduler check stage queues.

◆ stage_csa_sched_enqueue_ready_tasks

PSI_stage_info mysql::csa::stage_csa_sched_enqueue_ready_tasks
Initial value:
= {
0, "Scheduler: Enqueue ready tasks.", 0, PSI_DOCUMENT_ME}

Stage for CSA scheduler enqueue ready tasks.

◆ stage_csa_sched_stopped

PSI_stage_info mysql::csa::stage_csa_sched_stopped
Initial value:
= {0, "Scheduler: Stopped.", 0,

Stage for CSA scheduler stopped.

◆ stage_csa_sched_stopping

PSI_stage_info mysql::csa::stage_csa_sched_stopping
Initial value:
= {0, "Scheduler: Stopping.", 0,

Stage for CSA scheduler stopping.

◆ stage_csa_sched_sync_clock

PSI_stage_info mysql::csa::stage_csa_sched_sync_clock
Initial value:
= {
0, "Scheduler: Synchronize due to clock queue full.", 0, PSI_DOCUMENT_ME}

Stage for CSA scheduler sync clock.

◆ stage_csa_sched_sync_limit

PSI_stage_info mysql::csa::stage_csa_sched_sync_limit
Initial value:
= {
0, "Scheduler: Synchronize due to reaching task limit.", 0,

Stage for CSA scheduler sync limit.

◆ stage_csa_sched_wait_for_work

PSI_stage_info mysql::csa::stage_csa_sched_wait_for_work
Initial value:
= {
0, "Scheduler: Waiting for work.", 0, PSI_DOCUMENT_ME}

Stage for CSA scheduler wait for work.

◆ stage_csa_session_acquire

PSI_stage_info mysql::csa::stage_csa_session_acquire
Initial value:
= {0, "Job: Acquire session.", 0,

Stage for CSA session acquire.

◆ stage_csa_session_attached

PSI_stage_info mysql::csa::stage_csa_session_attached
Initial value:
= {
0, "Session attached to worker thread.", 0, PSI_DOCUMENT_ME}

◆ stage_csa_session_detached

PSI_stage_info mysql::csa::stage_csa_session_detached
Initial value:
= {
0, "Session detached from worker thread.", 0, PSI_DOCUMENT_ME}

Stage for CSA session detached.

◆ stage_csa_session_release

PSI_stage_info mysql::csa::stage_csa_session_release
Initial value:
= {0, "Job: Release session", 0,

Stage for CSA session release.

◆ stage_csa_starting

PSI_stage_info mysql::csa::stage_csa_starting
Initial value:
= {0, "CSA service: initialization.", 0,

Stage for CSA starting.

◆ stage_csa_stopped

PSI_stage_info mysql::csa::stage_csa_stopped
Initial value:
= {0, "CSA service: stopped.", 0,

Stage for CSA stopped.

◆ stage_csa_stopping

PSI_stage_info mysql::csa::stage_csa_stopping
Initial value:
= {0, "CSA service: stopping.", 0,

Stage for CSA stopping.

◆ stage_csa_thp_worker_exec

PSI_stage_info mysql::csa::stage_csa_thp_worker_exec
Initial value:
= {
0, "Thread pool worker: executing task.", 0, PSI_DOCUMENT_ME}

Stage for CSA THP worker exec.

◆ stage_csa_thp_worker_stop

PSI_stage_info mysql::csa::stage_csa_thp_worker_stop
Initial value:
= {0, "Thread pool worker: stopped.",

Stage for CSA THP worker stop.

◆ stage_csa_thp_worker_wait

PSI_stage_info mysql::csa::stage_csa_thp_worker_wait
Initial value:
= {
0, "Thread pool worker: wait for task.", 0, PSI_DOCUMENT_ME}

Stage for CSA THP worker wait.

◆ stage_csa_update_statistics

PSI_stage_info mysql::csa::stage_csa_update_statistics
Initial value:
= {
0, "CSA service: Update statistics.", 0, PSI_DOCUMENT_ME}

Stage for CSA update statistics.

◆ stage_csa_wait_for_trx

PSI_stage_info mysql::csa::stage_csa_wait_for_trx
Initial value:
= {
0, "CSA service: Wait for transaction.", 0, PSI_DOCUMENT_ME}

Stage for CSA wait for transaction.

◆ stage_csa_working

PSI_stage_info mysql::csa::stage_csa_working
Initial value:
= {0, "CSA service: working.", 0,

Stage for CSA working.