23 #ifndef _MVCC_TABLE_H_ 24 #define _MVCC_TABLE_H_ 26 #if !defined (SERVER_MODE) && !defined (SA_MODE) 75 void alloc_transaction_lowest_active ();
76 void reset_transaction_lowest_active (
int tran_index);
79 void build_mvcc_info (
log_tdes &tdes);
80 void complete_mvcc (
int tran_index,
MVCCID mvccid,
bool committed);
81 void complete_sub_mvcc (
MVCCID mvccid);
85 bool is_active (
MVCCID mvccid)
const;
87 void reset_start_mvccid ();
89 MVCCID get_global_oldest_visible ()
const;
90 MVCCID update_global_oldest_visible ();
91 void lock_global_oldest_visible ();
92 void unlock_global_oldest_visible ();
93 bool is_global_oldest_visible_locked ()
const;
97 static const size_t HISTORY_MAX_SIZE = 2048;
98 static const size_t HISTORY_INDEX_MASK = HISTORY_MAX_SIZE - 1;
122 void next_tran_status_finish (
mvcc_trans_status &next_trans_status,
size_t next_index);
123 void advance_oldest_active (
MVCCID next_oldest_active);
124 MVCCID compute_oldest_visible_mvccid ()
const;
127 #endif // !_MVCC_TABLE_H_
MVCCID m_last_completed_mvccid
std::atomic< size_t > m_trans_status_history_position
std::atomic< version_type > m_version
std::atomic< MVCCID > m_oldest_visible
size_t m_transaction_lowest_visible_mvccids_size
std::mutex m_new_mvccid_lock
std::atomic< MVCCID > lowest_active_mvccid_type
mvcc_trans_status * m_trans_status_history
lowest_active_mvccid_type m_current_status_lowest_active_mvccid
unsigned int version_type
mvcc_trans_status m_current_trans_status
lowest_active_mvccid_type * m_transaction_lowest_visible_mvccids
std::mutex m_active_trans_mutex
mvcc_active_tran m_active_mvccs
std::atomic< size_t > m_ov_lock_count