349 void format(std::ostream &out)
const;
Keeps the THD session context to be used with the Bgc_ticket_manager.
Definition: rpl_context.h:296
void assign_ticket()
Assigns the THD session to the ticket accepting assignments in the ticket manager.
Definition: rpl_context.cc:247
bool m_has_waited
Whether or not the session already waited on the ticket.
Definition: rpl_context.h:376
void set_force_rotate()
Turn on forced rotate at end of BGC.
Definition: rpl_context.h:388
binlog::BgcTicket get_session_ticket()
Retrieves the ticket that the THD session has been assigned to.
Definition: rpl_context.cc:236
bool has_waited()
Whether or not the session already waited on the ticket.
Definition: rpl_context.cc:256
virtual ~Binlog_group_commit_ctx()=default
bool m_max_size_exceeded
Whether session detected that binlog max size was exceeded.
Definition: rpl_context.h:399
binlog::BgcTicket m_session_ticket
The ticket the THD session has been assigned to.
Definition: rpl_context.h:374
static memory::Aligned_atomic< bool > & manual_ticket_setting()
Retrieves the flag for determining if it should be possible to manually set the session's ticket.
Definition: rpl_context.cc:284
void set_max_size_exceeded(bool value)
Set whether binlog max size was exceeded.
Definition: rpl_context.h:384
void format(std::ostream &out) const
Dumps the textual representation of this object into the given output stream.
Definition: rpl_context.cc:275
static std::pair< bool, bool > aggregate_rotate_settings(THD *queue)
Aggregate the rotate requests over all sessions in queue.
Definition: rpl_context.cc:289
bool m_force_rotate
Whether session requests forced rotate.
Definition: rpl_context.h:401
friend std::ostream & operator<<(std::ostream &out, Binlog_group_commit_ctx const &to_dump)
Dumps the textual representation of an instance of this class into the given output stream.
Definition: rpl_context.h:359
std::string to_string() const
Returns the textual representation of this object;.
Definition: rpl_context.cc:269
void set_session_ticket(binlog::BgcTicket ticket)
Sets the THD session's ticket to the given value.
Definition: rpl_context.cc:240
void reset()
Resets the THD session's ticket context.
Definition: rpl_context.cc:262
void mark_as_already_waited()
Marks the underlying session has already waited on the ticket.
Definition: rpl_context.cc:258
Binlog_group_commit_ctx()=default
Represents a set of GTIDs.
Definition: rpl_gtid.h:1556
This class tracks the last used GTID per session.
Definition: rpl_context.h:230
void get_last_used_tsid(mysql::gtid::Tsid &tsid)
Get the last used TSID of the session.
Definition: rpl_context.cc:210
Last_used_gtid_tracker_ctx()
Definition: rpl_context.cc:193
mysql::gtid::Tsid m_last_used_tsid
Definition: rpl_context.h:259
void get_last_used_gtid(Gtid >id)
Get the last used GTID the session.
Definition: rpl_context.cc:205
void set_last_used_gtid(const Gtid >id, const mysql::gtid::Tsid &sid)
Set the last used GTID the session.
Definition: rpl_context.cc:199
std::unique_ptr< Gtid > m_last_used_gtid
Definition: rpl_context.h:258
virtual ~Last_used_gtid_tracker_ctx()
Definition: rpl_context.h:408
std::vector< std::function< bool()> > & post_filters_actions()
Definition: rpl_context.h:485
enum_transaction_rpl_delegate_status get_tx_rpl_delegate_stage_status()
Returns the transaction state.
Definition: rpl_context.cc:310
Last_used_gtid_tracker_ctx m_last_used_gtid_tracker_ctx
Definition: rpl_context.h:436
enum_transaction_rpl_delegate_status m_tx_rpl_delegate_stage_status
Definition: rpl_context.h:506
enum_transaction_rpl_delegate_status
This structure helps to maintain state of transaction.
Definition: rpl_context.h:415
@ TX_RPL_STAGE_CACHE_CREATED
Definition: rpl_context.h:421
@ TX_RPL_STAGE_CONNECTION_CLEANED
Definition: rpl_context.h:427
@ TX_RPL_STAGE_BEFORE_ROLLBACK
Definition: rpl_context.h:425
@ TX_RPL_STAGE_BEGIN
Definition: rpl_context.h:419
@ TX_RPL_STAGE_INIT
Definition: rpl_context.h:417
@ TX_RPL_STAGE_BEFORE_COMMIT
Definition: rpl_context.h:423
@ TX_RPL_STAGE_END
Definition: rpl_context.h:429
Transaction_compression_ctx m_transaction_compression_ctx
Definition: rpl_context.h:437
void set_tx_rpl_delegate_stage_status(enum_transaction_rpl_delegate_status status)
Sets the transaction states.
Definition: rpl_context.cc:304
std::vector< std::function< bool()> > m_post_filters_actions
Definition: rpl_context.h:440
Transaction_compression_ctx & transaction_compression_ctx()
Definition: rpl_context.h:481
Session_consistency_gtids_ctx m_session_gtids_ctx
Definition: rpl_context.h:435
resource_blocker::User dump_thread_user
Definition: rpl_context.h:432
enum_rpl_channel_type get_rpl_channel_type()
Definition: rpl_context.h:475
Binlog_group_commit_ctx m_binlog_group_commit_ctx
Manages interaction and keeps context w.r.t Bgc_ticket_manager
Definition: rpl_context.h:439
void init()
Initializers.
Definition: rpl_context.cc:300
Session_consistency_gtids_ctx & session_gtids_ctx()
Definition: rpl_context.h:458
Binlog_group_commit_ctx & binlog_group_commit_ctx()
Retrieves the class member responsible for managing the interaction with Bgc_ticket_manager.
Definition: rpl_context.cc:314
void set_rpl_channel_type(enum_rpl_channel_type rpl_channel_type_arg)
Definition: rpl_context.h:477
Rpl_thd_context(const Rpl_thd_context &rsc)
Last_used_gtid_tracker_ctx & last_used_gtid_tracker_ctx()
Definition: rpl_context.h:462
Rpl_thd_context(PSI_memory_key transaction_compression_ctx)
Definition: rpl_context.h:448
enum_rpl_channel_type rpl_channel_type
If this thread is a channel, what is its type.
Definition: rpl_context.h:442
Rpl_thd_context & operator=(const Rpl_thd_context &rsc)
This is an interface to be implemented by classes that want to listen to changes to this context.
Definition: rpl_context.h:72
Ctx_change_listener()=default
Ctx_change_listener & operator=(const Ctx_change_listener &rsc)
virtual ~Ctx_change_listener()=default
virtual void notify_session_gtids_ctx_change()=0
Ctx_change_listener(const Ctx_change_listener &rsc)
This class is an interface for session consistency instrumentation in the server.
Definition: rpl_context.h:65
virtual bool notify_after_xa_prepare(const THD *thd)
Definition: rpl_context.h:211
virtual bool notify_after_transaction_commit(const THD *thd)
This function MUST be called after a transaction is committed in the server.
Definition: rpl_context.cc:71
bool shall_collect(const THD *thd)
Definition: rpl_context.cc:59
Session_consistency_gtids_ctx::Ctx_change_listener * m_listener
If a listener is registered, e.g., the session track gtids, then this points to an instance of such l...
Definition: rpl_context.h:109
virtual bool notify_after_gtid_executed_update(const THD *thd)
This function SHALL be called once the GTID for the given transaction has has been added to GTID_EXEC...
Definition: rpl_context.cc:97
Gtid_set * state()
This member function MUST return a reference to the set of collected GTIDs so far.
Definition: rpl_context.h:174
void unregister_ctx_change_listener(Session_consistency_gtids_ctx::Ctx_change_listener *listener)
Unregisters the listener.
Definition: rpl_context.cc:179
virtual bool notify_after_response_packet(const THD *thd)
This function MUST be called after the response packet is set to the client connected.
Definition: rpl_context.cc:145
Gtid_set * m_gtid_set
Set holding the transaction identifiers of the gtids to reply back on the response packet.
Definition: rpl_context.h:100
void notify_ctx_change_listener()
Auxiliary function that allows notification of ctx change listeners.
Definition: rpl_context.h:136
void update_tracking_activeness_from_session_variable(const THD *thd)
Update session tracker (m_curr_session_track_gtids) from thd.
Definition: rpl_context.cc:141
virtual ~Session_consistency_gtids_ctx()
The destructor.
Definition: rpl_context.cc:47
ulong m_curr_session_track_gtids
Keeps track of the current session track gtids, so that we capture according to what was set before.
Definition: rpl_context.h:120
Session_consistency_gtids_ctx(const Session_consistency_gtids_ctx &rsc)
Tsid_map * m_tsid_map
Definition: rpl_context.h:88
void register_ctx_change_listener(Session_consistency_gtids_ctx::Ctx_change_listener *listener, THD *thd)
Registers the listener.
Definition: rpl_context.cc:161
Session_consistency_gtids_ctx()
Simple constructor.
Definition: rpl_context.cc:41
Session_consistency_gtids_ctx & operator=(const Session_consistency_gtids_ctx &rsc)
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
Definition: rpl_context.h:262
Transaction_compression_ctx(PSI_memory_key key)
Definition: rpl_context.cc:214
Memory_resource_t m_managed_buffer_memory_resource
Definition: rpl_context.h:286
Compressor_ptr_t get_compressor(THD *session)
Return the compressor.
Definition: rpl_context.cc:220
Compressor_ptr_t m_compressor
Definition: rpl_context.h:288
Managed_buffer_sequence_t & managed_buffer_sequence()
Return reference to the buffer sequence holding compressed bytes.
Definition: rpl_context.cc:232
Managed_buffer_sequence_t m_managed_buffer_sequence
Definition: rpl_context.h:287
std::shared_ptr< Compressor_t > Compressor_ptr_t
Definition: rpl_context.h:269
Represents a bidirectional map between TSID and SIDNO.
Definition: rpl_gtid.h:749
Represents the Binlog Group Commit Ticket - BGC Ticket.
Definition: bgc_ticket.h:54
Templated class that encapsulates an std::atomic within a byte buffer that is padded to the processor...
Definition: aligned_atomic.h:158
Abstract base class for compressors.
Definition: compressor.h:80
mysql::binlog::event::compression::buffer::Managed_buffer_sequence<> Managed_buffer_sequence_t
Definition: compressor.h:83
Description of a heuristic to determine how much memory to allocate.
Definition: grow_calculator.h:68
Owned, non-contiguous, growable memory buffer.
Definition: managed_buffer_sequence.h:115
Polymorphism-free memory resource class with custom allocator and deallocator functions.
Definition: memory_resource.h:88
Represents Transaction Source Identifier which is composed of source UUID and transaction tag.
Definition: tsid.h:47
Definition: resource_blocker.h:137
unsigned int PSI_memory_key
Instrumented memory key.
Definition: psi_memory_bits.h:49
Some integer typedefs for easier portability.
static QUEUE queue
Definition: myisampack.cc:210
std::vector< T, ut::allocator< T > > vector
Specialization of vector which uses allocator.
Definition: ut0new.h:2874
required string key
Definition: replication_asynchronous_connection_failover.proto:60
required uint32 status
Definition: replication_asynchronous_connection_failover.proto:61
enum_rpl_channel_type
Type of replication channel thread/transaction might be associated to.
Definition: rpl_context.h:50
@ NO_CHANNEL_INFO
Definition: rpl_context.h:51
@ GR_RECOVERY_CHANNEL
Definition: rpl_context.h:54
@ RPL_STANDARD_CHANNEL
Definition: rpl_context.h:52
@ GR_APPLIER_CHANNEL
Definition: rpl_context.h:53
TODO: Move this structure to mysql/binlog/event/control_events.h when we start using C++11.
Definition: rpl_gtid.h:1100