MySQL  8.0.21
Source Code Documentation
Transaction_dependency_tracker Class Reference

Dependency tracker is a container singleton that dispatches between the three methods associated with the binlog-transaction-dependency-tracking option. More...

#include <rpl_trx_tracking.h>

Public Member Functions

 Transaction_dependency_tracker ()
 
void get_dependency (THD *thd, int64 &sequence_number, int64 &commit_parent)
 Get the dependencies in a transaction, the main entry point for the dependency tracking work. More...
 
void tracking_mode_changed ()
 
void update_max_committed (THD *thd)
 The method is to be executed right before committing time. More...
 
int64 get_max_committed_timestamp ()
 
int64 step ()
 
void rotate ()
 
Writeset_trx_dependency_trackerget_writeset ()
 

Public Attributes

std::atomic< long > m_opt_tracking_mode
 
long m_opt_tracking_mode_value
 

Private Attributes

Writeset_trx_dependency_tracker m_writeset
 
Commit_order_trx_dependency_tracker m_commit_order
 
Writeset_session_trx_dependency_tracker m_writeset_session
 

Detailed Description

Dependency tracker is a container singleton that dispatches between the three methods associated with the binlog-transaction-dependency-tracking option.

There is a singleton instance of each of these classes.

Constructor & Destructor Documentation

◆ Transaction_dependency_tracker()

Transaction_dependency_tracker::Transaction_dependency_tracker ( )
inline

Member Function Documentation

◆ get_dependency()

void Transaction_dependency_tracker::get_dependency ( THD thd,
int64 sequence_number,
int64 commit_parent 
)

Get the dependencies in a transaction, the main entry point for the dependency tracking work.

◆ get_max_committed_timestamp()

int64 Transaction_dependency_tracker::get_max_committed_timestamp ( )

◆ get_writeset()

Writeset_trx_dependency_tracker* Transaction_dependency_tracker::get_writeset ( )
inline

◆ rotate()

void Transaction_dependency_tracker::rotate ( )

◆ step()

int64 Transaction_dependency_tracker::step ( )

◆ tracking_mode_changed()

void Transaction_dependency_tracker::tracking_mode_changed ( )

◆ update_max_committed()

void Transaction_dependency_tracker::update_max_committed ( THD thd)

The method is to be executed right before committing time.

It must be invoked even if the transaction does not commit to engine being merely logged into the binary log. max_committed_transaction is updated with a greater timestamp value. As a side effect, the transaction context's sequence_number is reset.

Parameters
thda pointer to THD instance

Member Data Documentation

◆ m_commit_order

Commit_order_trx_dependency_tracker Transaction_dependency_tracker::m_commit_order
private

◆ m_opt_tracking_mode

std::atomic<long> Transaction_dependency_tracker::m_opt_tracking_mode

◆ m_opt_tracking_mode_value

long Transaction_dependency_tracker::m_opt_tracking_mode_value

◆ m_writeset

Writeset_trx_dependency_tracker Transaction_dependency_tracker::m_writeset
private

◆ m_writeset_session

Writeset_session_trx_dependency_tracker Transaction_dependency_tracker::m_writeset_session
private

The documentation for this class was generated from the following files: