356 void format(std::ostream &out)
const;
Keeps the THD session context to be used with the Bgc_ticket_manager.
Definition: rpl_context.h:303
void assign_ticket()
Assigns the THD session to the ticket accepting assignments in the ticket manager.
Definition: rpl_context.cc:239
bool m_has_waited
Whether or not the session already waited on the ticket.
Definition: rpl_context.h:383
void set_force_rotate()
Turn on forced rotate at end of BGC.
Definition: rpl_context.h:395
binlog::BgcTicket get_session_ticket()
Retrieves the ticket that the THD session has been assigned to.
Definition: rpl_context.cc:228
bool has_waited()
Whether or not the session already waited on the ticket.
Definition: rpl_context.cc:248
virtual ~Binlog_group_commit_ctx()=default
bool m_max_size_exceeded
Whether session detected that binlog max size was exceeded.
Definition: rpl_context.h:406
binlog::BgcTicket m_session_ticket
The ticket the THD session has been assigned to.
Definition: rpl_context.h:381
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:276
void set_max_size_exceeded(bool value)
Set whether binlog max size was exceeded.
Definition: rpl_context.h:391
void format(std::ostream &out) const
Dumps the textual representation of this object into the given output stream.
Definition: rpl_context.cc:267
static std::pair< bool, bool > aggregate_rotate_settings(THD *queue)
Aggregate the rotate requests over all sessions in queue.
Definition: rpl_context.cc:281
bool m_force_rotate
Whether session requests forced rotate.
Definition: rpl_context.h:408
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:366
std::string to_string() const
Returns the textual representation of this object;.
Definition: rpl_context.cc:261
void set_session_ticket(binlog::BgcTicket ticket)
Sets the THD session's ticket to the given value.
Definition: rpl_context.cc:232
void reset()
Resets the THD session's ticket context.
Definition: rpl_context.cc:254
void mark_as_already_waited()
Marks the underlying session has already waited on the ticket.
Definition: rpl_context.cc:250
Binlog_group_commit_ctx()=default
Definition: rpl_context.h:230
void set_last_session_sequence_number(int64 sequence_number)
Definition: rpl_context.h:234
int64 m_last_session_sequence_number
Definition: rpl_context.h:243
Dependency_tracker_ctx()
Definition: rpl_context.h:232
int64 get_last_session_sequence_number()
Definition: rpl_context.h:238
Represents a set of GTIDs.
Definition: rpl_gtid.h:1455
This class tracks the last used GTID per session.
Definition: rpl_context.h:249
Last_used_gtid_tracker_ctx()
Definition: rpl_context.cc:193
void get_last_used_gtid(Gtid >id)
Get the last used GTID the session.
Definition: rpl_context.cc:203
std::unique_ptr< Gtid > m_last_used_gtid
Definition: rpl_context.h:269
void set_last_used_gtid(const Gtid >id)
Set the last used GTID the session.
Definition: rpl_context.cc:199
virtual ~Last_used_gtid_tracker_ctx()
Definition: rpl_context.h:415
std::vector< std::function< bool()> > & post_filters_actions()
Definition: rpl_context.h:498
enum_transaction_rpl_delegate_status get_tx_rpl_delegate_stage_status()
Returns the transaction state.
Definition: rpl_context.cc:303
Last_used_gtid_tracker_ctx m_last_used_gtid_tracker_ctx
Definition: rpl_context.h:444
enum_transaction_rpl_delegate_status m_tx_rpl_delegate_stage_status
Definition: rpl_context.h:519
Dependency_tracker_ctx & dependency_tracker_ctx()
Definition: rpl_context.h:471
enum_transaction_rpl_delegate_status
This structure helps to maintain state of transaction.
Definition: rpl_context.h:422
@ TX_RPL_STAGE_CACHE_CREATED
Definition: rpl_context.h:428
@ TX_RPL_STAGE_CONNECTION_CLEANED
Definition: rpl_context.h:434
@ TX_RPL_STAGE_BEFORE_ROLLBACK
Definition: rpl_context.h:432
@ TX_RPL_STAGE_BEGIN
Definition: rpl_context.h:426
@ TX_RPL_STAGE_INIT
Definition: rpl_context.h:424
@ TX_RPL_STAGE_BEFORE_COMMIT
Definition: rpl_context.h:430
@ TX_RPL_STAGE_END
Definition: rpl_context.h:436
Transaction_compression_ctx m_transaction_compression_ctx
Definition: rpl_context.h:445
Dependency_tracker_ctx m_dependency_tracker_ctx
Definition: rpl_context.h:443
void set_tx_rpl_delegate_stage_status(enum_transaction_rpl_delegate_status status)
Sets the transaction states.
Definition: rpl_context.cc:297
std::vector< std::function< bool()> > m_post_filters_actions
Definition: rpl_context.h:448
Transaction_compression_ctx & transaction_compression_ctx()
Definition: rpl_context.h:494
Session_consistency_gtids_ctx m_session_gtids_ctx
Definition: rpl_context.h:442
resource_blocker::User dump_thread_user
Definition: rpl_context.h:439
enum_rpl_channel_type get_rpl_channel_type()
Definition: rpl_context.h:488
Binlog_group_commit_ctx m_binlog_group_commit_ctx
Manages interaction and keeps context w.r.t Bgc_ticket_manager
Definition: rpl_context.h:447
void init()
Initializers.
Definition: rpl_context.cc:292
Session_consistency_gtids_ctx & session_gtids_ctx()
Definition: rpl_context.h:467
Rpl_thd_context()
Definition: rpl_context.h:456
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:307
void set_rpl_channel_type(enum_rpl_channel_type rpl_channel_type_arg)
Definition: rpl_context.h:490
Rpl_thd_context(const Rpl_thd_context &rsc)
Last_used_gtid_tracker_ctx & last_used_gtid_tracker_ctx()
Definition: rpl_context.h:475
enum_rpl_channel_type rpl_channel_type
If this thread is a channel, what is its type.
Definition: rpl_context.h:450
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:71
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:64
virtual bool notify_after_xa_prepare(const THD *thd)
Definition: rpl_context.h:210
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:108
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:173
void unregister_ctx_change_listener(Session_consistency_gtids_ctx::Ctx_change_listener *listener)
Unregisters the listener.
Definition: rpl_context.cc:179
Sid_map * m_sid_map
Definition: rpl_context.h:87
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:99
void notify_ctx_change_listener()
Auxiliary function that allows notification of ctx change listeners.
Definition: rpl_context.h:135
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:119
Session_consistency_gtids_ctx(const Session_consistency_gtids_ctx &rsc)
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)
Represents a bidirectional map between SID and SIDNO.
Definition: rpl_gtid.h:724
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:34
Definition: rpl_context.h:272
Transaction_compression_ctx(PSI_memory_key key)
Definition: rpl_context.cc:208
Compressor_ptr_t get_compressor(THD *session)
Return the compressor.
Definition: rpl_context.cc:213
Compressor_ptr_t m_compressor
Definition: rpl_context.h:295
Managed_buffer_sequence_t & managed_buffer_sequence()
Return reference to the buffer sequence holding compressed bytes.
Definition: rpl_context.cc:224
Managed_buffer_sequence_t m_managed_buffer_sequence
Definition: rpl_context.h:294
std::shared_ptr< Compressor_t > Compressor_ptr_t
Definition: rpl_context.h:278
Abstract base class for compressors.
Definition: compressor.h:78
mysqlns::buffer::Managed_buffer_sequence<> Managed_buffer_sequence_t
Definition: compressor.h:80
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:154
Description of a heuristic to determine how much memory to allocate.
Definition: grow_calculator.h:67
Owned, non-contiguous, growable memory buffer.
Definition: managed_buffer_sequence.h:114
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.
int64_t int64
Definition: my_inttypes.h:68
static QUEUE queue
Definition: myisampack.cc:207
std::vector< T, ut::allocator< T > > vector
Specialization of vector which uses allocator.
Definition: ut0new.h:2875
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:49
@ NO_CHANNEL_INFO
Definition: rpl_context.h:50
@ GR_RECOVERY_CHANNEL
Definition: rpl_context.h:53
@ RPL_STANDARD_CHANNEL
Definition: rpl_context.h:51
@ GR_APPLIER_CHANNEL
Definition: rpl_context.h:52
TODO: Move this structure to libbinlogevents/include/control_events.h when we start using C++11.
Definition: rpl_gtid.h:1066