24#ifndef MYSQL_CSA_RELAY_CONTEXT_H
25#define MYSQL_CSA_RELAY_CONTEXT_H
33class Csa_worker_context;
73 std::size_t
get_id()
const;
86 const std::string &channel_id,
87 int current_retry,
int retries_num);
103 void awake(
bool force_kill);
124 std::unique_ptr<Relay_log_info>
m_rli;
On a replica and only on a replica, this class is responsible for committing the applied transactions...
Definition: rpl_replica_commit_order_manager.h:198
Definition: rpl_rli.h:208
Class representing the interface for parallel worker context.
Definition: csa_worker_context.h:46
Class representing the interface for parallel worker context.
Definition: parallel_worker_context.h:47
int64_t Trx_id
Definition: parallel_worker_context.h:51
uint64_t Worker_id
Definition: parallel_worker_context.h:52
Handles and operates the handled session.
Definition: relay_context.h:43
std::size_t m_id
This relay context identifier.
Definition: relay_context.h:134
void attach_rli()
Attaches to RLI.
Definition: relay_context.cpp:280
void enable_stop_error_suppression_if_clean()
Enables stop error suppression if this context had no reported error.
Definition: relay_context.cpp:219
std::unique_ptr< Csa_worker_context > m_csa_worker_context
Pointer to CSA worker context.
Definition: relay_context.h:136
Session m_session
Session.
Definition: relay_context.h:126
Relay_log_info * get_relay_log_info()
Obtains associated RLI pointer.
Definition: relay_context.cpp:204
void awake(bool force_kill)
Awakes sessions to faster end execution.
Definition: relay_context.cpp:217
bool m_attached
Flag indicating whether this session is currently attached to CSA worker.
Definition: relay_context.h:128
cs::apply::Csa_worker_context * get_parallel_worker_context()
Obtain parallel worker context.
Definition: relay_context.cpp:263
bool wait_for_rollback()
Waits for external parallel context rollback.
Definition: relay_context.cpp:292
void report_error(const std::string &trx_id)
Report error to parent thread.
Definition: relay_context.cpp:158
Parallel_worker_context::Worker_id Worker_id
Definition: relay_context.h:49
virtual ~Relay_context()
Destructor.
Definition: relay_context.cpp:197
Commit_order_manager * m_commit_order_manager
Commit order manager.
Definition: relay_context.h:130
void set_fde(Format_description_log_event *fde)
Sets FDE for this relay context.
Definition: relay_context.cpp:228
void detach_session()
Detaches from session.
Definition: relay_context.cpp:267
bool is_valid()
Checks validity.
Definition: relay_context.cpp:272
Relay_context(std::size_t id, Relay_log_info *channel_config_rli)
Constructor.
Definition: relay_context.cpp:40
Session & get_session()
Obtains session handle.
Definition: relay_context.h:71
Parallel_worker_context::Trx_id Trx_id
Definition: relay_context.h:48
void detach_rli()
Detaches from RLI.
Definition: relay_context.cpp:286
void register_to_commit_order()
if attached to commit order manager, registers parallel worker to commit order (using parallel worker...
Definition: relay_context.cpp:255
unsigned int get_thd_id() const
Obtains THD identifier.
Definition: relay_context.cpp:274
std::unique_ptr< Relay_log_info > m_rli
A pointer to the relay context.
Definition: relay_context.h:124
cs::apply::Parallel_worker_context_ptr Parallel_worker_context_ptr
Definition: relay_context.h:46
std::size_t get_id() const
Obtains this relay context id.
Definition: relay_context.cpp:278
Relay_log_info * m_channel_config_rli
Parent channel configuration RLI.
Definition: relay_context.h:132
void set_parallel_worker_context(Commit_order_manager *com, Trx_id trx_seq_num, Worker_id worker_id, const std::string &channel_id, int current_retry, int retries_num)
Sets parallel worker context for the next transaction.
Definition: relay_context.cpp:237
void retry_transaction(int current_count, bool skip_rollback)
Prepares context for retry.
Definition: relay_context.cpp:313
bool can_be_retried()
Check if handled context can be retried.
Definition: relay_context.cpp:306
void attach_session()
Attaches to session. Must succeed.
Definition: relay_context.cpp:232
void clean()
Clean-up session.
Definition: relay_context.cpp:206
Wraps up THD object and provides simple function to manage its execution within CSA.
Definition: session.h:34
static uint64_t current_count
Definition: gcs_psi.cc:186
Definition: applier_version.h:27
std::unique_ptr< Parallel_worker_context > Parallel_worker_context_ptr
Definition: parallel_worker_context.h:40
Definition: channel.cpp:28
std::shared_ptr< Relay_context > Relay_context_ptr
Definition: relay_context.h:39
Commit_order_manager::Parallel_worker_context Parallel_worker_context
Definition: rpl_replica_commit_order_manager.cc:50