MySQL  8.0.12
Source Code Documentation
trx0sys.h File Reference

Transaction system. More...

#include "univ.i"
#include "buf0buf.h"
#include "fil0fil.h"
#include "trx0types.h"
#include "mem0mem.h"
#include "mtr0mtr.h"
#include "page0types.h"
#include "ut0byte.h"
#include "ut0lst.h"
#include "ut0mutex.h"
#include <atomic>
#include "trx0trx.h"
#include "trx0sys.ic"

Go to the source code of this file.

Classes

class  Space_Ids
 List of undo tablespace IDs. More...
 
struct  trx_sys_t
 The transaction system central memory data structure. More...
 

Macros

#define TRX_SYS_SYSTEM_RSEG_ID   0
 The automatically created system rollback segment has this id. More...
 
#define TRX_SYS   FSEG_PAGE_DATA
 The offset of the transaction system header on the page. More...
 
#define TRX_SYS_TRX_ID_STORE   0
 Transaction system header. More...
 
#define TRX_SYS_FSEG_HEADER   8
 segment header for the \ tablespace segment the trx \ system is created into More...
 
#define TRX_SYS_RSEGS   (8 + FSEG_HEADER_SIZE)
 the start of the array of rollback segment specification slots More...
 
#define TRX_SYS_OLD_N_RSEGS   256
 
#define TRX_SYS_OLD_TMP_RSEGS   32
 
#define TRX_SYS_MYSQL_LOG_NAME_LEN   512
 Maximum length of MySQL binlog file name, in bytes. More...
 
#define TRX_SYS_MYSQL_LOG_MAGIC_N   873422344
 Contents of TRX_SYS_MYSQL_LOG_MAGIC_N_FLD. More...
 
#define TRX_SYS_MYSQL_LOG_INFO   (UNIV_PAGE_SIZE - 1000)
 The offset of the MySQL binlog offset info in the trx system header. More...
 
#define TRX_SYS_MYSQL_LOG_MAGIC_N_FLD   0
 magic number which is \ TRX_SYS_MYSQL_LOG_MAGIC_N \ if we have valid data in the \ MySQL binlog info More...
 
#define TRX_SYS_MYSQL_LOG_OFFSET_HIGH   4
 high 4 bytes of the offset \ within that file More...
 
#define TRX_SYS_MYSQL_LOG_OFFSET_LOW   8
 low 4 bytes of the offset \ within that file More...
 
#define TRX_SYS_MYSQL_LOG_NAME   12
 MySQL log file name. More...
 
#define TRX_SYS_TRX_ID_WRITE_MARGIN   ((trx_id_t)256)
 When a trx id which is zero modulo this number (which must be a power of two) is assigned, the field TRX_SYS_TRX_ID_STORE on the transaction system page is updated. More...
 
#define trx_sys_mutex_own()   (trx_sys->mutex.is_owned())
 Test if trx_sys->mutex is owned. More...
 
#define trx_sys_mutex_enter()
 Acquire the trx_sys->mutex. More...
 
#define trx_sys_mutex_exit()
 Release the trx_sys->mutex. More...
 
#define TRX_SYS_DOUBLEWRITE   (UNIV_PAGE_SIZE - 200)
 Doublewrite buffer. More...
 
#define TRX_SYS_DOUBLEWRITE_FSEG   0
 fseg header of the fseg \ containing the doublewrite \ buffer More...
 
#define TRX_SYS_DOUBLEWRITE_MAGIC   FSEG_HEADER_SIZE
 4-byte magic number which shows if we already have created the doublewrite buffer More...
 
#define TRX_SYS_DOUBLEWRITE_BLOCK1   (4 + FSEG_HEADER_SIZE)
 page number of the first page in the first sequence of 64 (= FSP_EXTENT_SIZE) consecutive pages in the doublewrite buffer More...
 
#define TRX_SYS_DOUBLEWRITE_BLOCK2   (8 + FSEG_HEADER_SIZE)
 page number of the first page in the second sequence of 64 consecutive pages in the doublewrite buffer More...
 
#define TRX_SYS_DOUBLEWRITE_REPEAT   12
 we repeat \ TRX_SYS_DOUBLEWRITE_MAGIC, \ TRX_SYS_DOUBLEWRITE_BLOCK1, \ TRX_SYS_DOUBLEWRITE_BLOCK2 \ so that if the trx sys \ header is half-written \ to disk, we still may \ be able to recover the \ information More...
 
#define TRX_SYS_DOUBLEWRITE_SPACE_ID_STORED   (24 + FSEG_HEADER_SIZE)
 If this is not yet set to TRX_SYS_DOUBLEWRITE_SPACE_ID_STORED_N, we must reset the doublewrite buffer, because starting from 4.1.x the space id of a data page is stored into FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID. More...
 
#define TRX_SYS_DOUBLEWRITE_MAGIC_N   536853855
 Contents of TRX_SYS_DOUBLEWRITE_MAGIC. More...
 
#define TRX_SYS_DOUBLEWRITE_SPACE_ID_STORED_N   1783657386
 Contents of TRX_SYS_DOUBLEWRITE_SPACE_ID_STORED. More...
 
#define TRX_SYS_DOUBLEWRITE_BLOCK_SIZE   FSP_EXTENT_SIZE
 Size of the doublewrite block in pages. More...
 

Functions

typedef UT_LIST_BASE_NODE_T (trx_t) trx_ut_list_t
 
UNIV_INLINE bool trx_sys_hdr_page (const page_id_t &page_id)
 Checks if a page address is the trx sys header page. More...
 
purge_pq_ttrx_sys_init_at_db_start (void)
 Creates and initializes the central memory structures for the transaction system. More...
 
void trx_sys_create (void)
 Creates the trx_sys instance and initializes purge_queue and mutex. More...
 
void trx_sys_create_sys_pages (void)
 Creates and initializes the transaction system at the database creation. More...
 
page_no_t trx_sysf_rseg_find_page_no (ulint rseg_id)
 Find the page number in the TRX_SYS page for a given slot/rseg_id. More...
 
ulint trx_sysf_rseg_find_free (mtr_t *mtr)
 Look for a free slot for a rollback segment in the trx system file copy. More...
 
UNIV_INLINE trx_sysf_ttrx_sysf_get (mtr_t *mtr)
 Gets a pointer to the transaction system file copy and x-locks its page. More...
 
UNIV_INLINE space_id_t trx_sysf_rseg_get_space (trx_sysf_t *sys_header, ulint i, mtr_t *mtr)
 Gets the space of the nth rollback segment slot in the trx system file copy. More...
 
UNIV_INLINE page_no_t trx_sysf_rseg_get_page_no (trx_sysf_t *sys_header, ulint i, mtr_t *mtr)
 Gets the page number of the nth rollback segment slot in the trx system file copy. More...
 
UNIV_INLINE void trx_sysf_rseg_set_space (trx_sysf_t *sys_header, ulint i, space_id_t space, mtr_t *mtr)
 Sets the space id of the nth rollback segment slot in the trx system file copy. More...
 
UNIV_INLINE void trx_sysf_rseg_set_page_no (trx_sysf_t *sys_header, ulint i, page_no_t page_no, mtr_t *mtr)
 Set the page number of the nth rollback segment slot in the trx system file copy. More...
 
UNIV_INLINE trx_id_t trx_sys_get_new_trx_id ()
 Allocates a new transaction id. More...
 
UNIV_INLINE trx_id_t trx_sys_get_max_trx_id (void)
 Determines the maximum transaction id. More...
 
UNIV_INLINE void trx_write_trx_id (byte *ptr, trx_id_t id)
 Writes a trx id to an index page. More...
 
UNIV_INLINE trx_id_t trx_read_trx_id (const byte *ptr)
 Reads a trx id from an index page. More...
 
UNIV_INLINE trx_ttrx_get_rw_trx_by_id (trx_id_t trx_id)
 Looks for the trx instance with the given id in the rw trx_list. More...
 
UNIV_INLINE trx_id_t trx_rw_min_trx_id (void)
 Returns the minimum trx id in rw trx list. More...
 
UNIV_INLINE trx_ttrx_rw_is_active_low (trx_id_t trx_id, ibool *corrupt)
 Checks if a rw transaction with the given id is active. More...
 
UNIV_INLINE trx_ttrx_rw_is_active (trx_id_t trx_id, ibool *corrupt, bool do_ref_count)
 Checks if a rw transaction with the given id is active. More...
 
UNIV_INLINE ibool trx_assert_recovered (trx_id_t trx_id)
 Assert that a transaction has been recovered. More...
 
void trx_sys_update_mysql_binlog_offset (const char *file_name, int64_t offset, ulint field, mtr_t *mtr)
 Updates the offset information about the end of the MySQL binlog entry which corresponds to the transaction just being committed. More...
 
void trx_sys_print_mysql_binlog_offset (void)
 Prints to stderr the MySQL binlog offset info in the trx system header if the magic number shows it valid. More...
 
void trx_sys_close (void)
 Shutdown/Close the transaction system. More...
 
UNIV_INLINE bool trx_sys_need_rollback ()
 Determine if there are incomplete transactions in the system. More...
 
ulint trx_sys_any_active_transactions (void)
 
UNIV_INLINE void trx_sys_rw_trx_add (trx_t *trx)
 Add the transaction to the RW transaction set. More...
 
bool trx_sys_validate_trx_list ()
 Validate the trx_sys_t::rw_trx_list. More...
 
void trx_sys_undo_spaces_init ()
 Initialize trx_sys_undo_spaces, called once during srv_start(). More...
 
void trx_sys_undo_spaces_deinit ()
 Free the resources occupied by trx_sys_undo_spaces, called once during thread de-initialization. More...
 

Variables

trx_sys_ttrx_sys
 The transaction system. More...
 
uint trx_rseg_n_slots_debug
 
Space_Idstrx_sys_undo_spaces
 A list of undo tablespace IDs found in the TRX_SYS page. More...
 

Detailed Description

Transaction system.

Created 3/26/1996 Heikki Tuuri

Macro Definition Documentation

◆ TRX_SYS

#define TRX_SYS   FSEG_PAGE_DATA

The offset of the transaction system header on the page.

◆ TRX_SYS_DOUBLEWRITE

#define TRX_SYS_DOUBLEWRITE   (UNIV_PAGE_SIZE - 200)

Doublewrite buffer.

The offset of the doublewrite buffer header on the trx system header page

◆ TRX_SYS_DOUBLEWRITE_BLOCK1

#define TRX_SYS_DOUBLEWRITE_BLOCK1   (4 + FSEG_HEADER_SIZE)

page number of the first page in the first sequence of 64 (= FSP_EXTENT_SIZE) consecutive pages in the doublewrite buffer

◆ TRX_SYS_DOUBLEWRITE_BLOCK2

#define TRX_SYS_DOUBLEWRITE_BLOCK2   (8 + FSEG_HEADER_SIZE)

page number of the first page in the second sequence of 64 consecutive pages in the doublewrite buffer

◆ TRX_SYS_DOUBLEWRITE_BLOCK_SIZE

#define TRX_SYS_DOUBLEWRITE_BLOCK_SIZE   FSP_EXTENT_SIZE

Size of the doublewrite block in pages.

◆ TRX_SYS_DOUBLEWRITE_FSEG

#define TRX_SYS_DOUBLEWRITE_FSEG   0

fseg header of the fseg \ containing the doublewrite \ buffer

◆ TRX_SYS_DOUBLEWRITE_MAGIC

#define TRX_SYS_DOUBLEWRITE_MAGIC   FSEG_HEADER_SIZE

4-byte magic number which shows if we already have created the doublewrite buffer

◆ TRX_SYS_DOUBLEWRITE_MAGIC_N

#define TRX_SYS_DOUBLEWRITE_MAGIC_N   536853855

Contents of TRX_SYS_DOUBLEWRITE_MAGIC.

◆ TRX_SYS_DOUBLEWRITE_REPEAT

#define TRX_SYS_DOUBLEWRITE_REPEAT   12

we repeat \ TRX_SYS_DOUBLEWRITE_MAGIC, \ TRX_SYS_DOUBLEWRITE_BLOCK1, \ TRX_SYS_DOUBLEWRITE_BLOCK2 \ so that if the trx sys \ header is half-written \ to disk, we still may \ be able to recover the \ information

◆ TRX_SYS_DOUBLEWRITE_SPACE_ID_STORED

#define TRX_SYS_DOUBLEWRITE_SPACE_ID_STORED   (24 + FSEG_HEADER_SIZE)

If this is not yet set to TRX_SYS_DOUBLEWRITE_SPACE_ID_STORED_N, we must reset the doublewrite buffer, because starting from 4.1.x the space id of a data page is stored into FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID.

◆ TRX_SYS_DOUBLEWRITE_SPACE_ID_STORED_N

#define TRX_SYS_DOUBLEWRITE_SPACE_ID_STORED_N   1783657386

Contents of TRX_SYS_DOUBLEWRITE_SPACE_ID_STORED.

◆ TRX_SYS_FSEG_HEADER

#define TRX_SYS_FSEG_HEADER   8

segment header for the \ tablespace segment the trx \ system is created into

◆ trx_sys_mutex_enter

#define trx_sys_mutex_enter ( )
Value:
do { \
mutex_enter(&trx_sys->mutex); \
} while (0)
trx_sys_t * trx_sys
The transaction system.
Definition: trx0sys.cc:57
TrxSysMutex mutex
mutex protecting most fields in this structure except when noted otherwise
Definition: trx0sys.h:422

Acquire the trx_sys->mutex.

◆ trx_sys_mutex_exit

#define trx_sys_mutex_exit ( )
Value:
do { \
trx_sys->mutex.exit(); \
} while (0)

Release the trx_sys->mutex.

◆ trx_sys_mutex_own

#define trx_sys_mutex_own ( )    (trx_sys->mutex.is_owned())

Test if trx_sys->mutex is owned.

◆ TRX_SYS_MYSQL_LOG_INFO

#define TRX_SYS_MYSQL_LOG_INFO   (UNIV_PAGE_SIZE - 1000)

The offset of the MySQL binlog offset info in the trx system header.

◆ TRX_SYS_MYSQL_LOG_MAGIC_N

#define TRX_SYS_MYSQL_LOG_MAGIC_N   873422344

Contents of TRX_SYS_MYSQL_LOG_MAGIC_N_FLD.

◆ TRX_SYS_MYSQL_LOG_MAGIC_N_FLD

#define TRX_SYS_MYSQL_LOG_MAGIC_N_FLD   0

magic number which is \ TRX_SYS_MYSQL_LOG_MAGIC_N \ if we have valid data in the \ MySQL binlog info

◆ TRX_SYS_MYSQL_LOG_NAME

#define TRX_SYS_MYSQL_LOG_NAME   12

MySQL log file name.

◆ TRX_SYS_MYSQL_LOG_NAME_LEN

#define TRX_SYS_MYSQL_LOG_NAME_LEN   512

Maximum length of MySQL binlog file name, in bytes.

◆ TRX_SYS_MYSQL_LOG_OFFSET_HIGH

#define TRX_SYS_MYSQL_LOG_OFFSET_HIGH   4

high 4 bytes of the offset \ within that file

◆ TRX_SYS_MYSQL_LOG_OFFSET_LOW

#define TRX_SYS_MYSQL_LOG_OFFSET_LOW   8

low 4 bytes of the offset \ within that file

◆ TRX_SYS_OLD_N_RSEGS

#define TRX_SYS_OLD_N_RSEGS   256

◆ TRX_SYS_OLD_TMP_RSEGS

#define TRX_SYS_OLD_TMP_RSEGS   32

◆ TRX_SYS_RSEGS

#define TRX_SYS_RSEGS   (8 + FSEG_HEADER_SIZE)

the start of the array of rollback segment specification slots

◆ TRX_SYS_SYSTEM_RSEG_ID

#define TRX_SYS_SYSTEM_RSEG_ID   0

The automatically created system rollback segment has this id.

◆ TRX_SYS_TRX_ID_STORE

#define TRX_SYS_TRX_ID_STORE   0

Transaction system header.

the maximum trx id or trx \ number modulo \ TRX_SYS_TRX_ID_UPDATE_MARGIN \ written to a file page by any \ transaction; the assignment of \ transaction ids continues from \ this number rounded up by \ TRX_SYS_TRX_ID_UPDATE_MARGIN \ plus \ TRX_SYS_TRX_ID_UPDATE_MARGIN \ when the database is \ started

◆ TRX_SYS_TRX_ID_WRITE_MARGIN

#define TRX_SYS_TRX_ID_WRITE_MARGIN   ((trx_id_t)256)

When a trx id which is zero modulo this number (which must be a power of two) is assigned, the field TRX_SYS_TRX_ID_STORE on the transaction system page is updated.

Function Documentation

◆ trx_assert_recovered()

UNIV_INLINE ibool trx_assert_recovered ( trx_id_t  trx_id)

Assert that a transaction has been recovered.

Returns
true
Parameters
trx_idin: transaction identifier

◆ trx_get_rw_trx_by_id()

UNIV_INLINE trx_t* trx_get_rw_trx_by_id ( trx_id_t  trx_id)

Looks for the trx instance with the given id in the rw trx_list.

Returns
the trx handle or NULL if not found in: trx id to search for

◆ trx_read_trx_id()

UNIV_INLINE trx_id_t trx_read_trx_id ( const byte ptr)

Reads a trx id from an index page.

In case that the id size changes in some future version, this function should be used instead of mach_read_...

Returns
id in: pointer to memory from where to read

◆ trx_rw_is_active()

UNIV_INLINE trx_t* trx_rw_is_active ( trx_id_t  trx_id,
ibool *  corrupt,
bool  do_ref_count 
)

Checks if a rw transaction with the given id is active.

If the caller is not holding trx_sys->mutex, the transaction may already have been committed.

Parameters
[in]trx_idtrx id of the transaction
[in]corruptNULL or pointer to a flag that will be set if corrupt
[in]do_ref_countif true then increment the trx_t::n_ref_count
Returns
transaction instance if active, or NULL;

◆ trx_rw_is_active_low()

UNIV_INLINE trx_t* trx_rw_is_active_low ( trx_id_t  trx_id,
ibool *  corrupt 
)

Checks if a rw transaction with the given id is active.

Parameters
[in]trx_idtrx id of the transaction
[in]corruptNULL or pointer to a flag that will be set if corrupt
Returns
transaction instance if active, or NULL

◆ trx_rw_min_trx_id()

UNIV_INLINE trx_id_t trx_rw_min_trx_id ( void  )

Returns the minimum trx id in rw trx list.

This is the smallest id for which the trx can possibly be active. (But, you must look at the trx->state to find out if the minimum trx id transaction itself is active, or already committed.)

Returns
the minimum trx id, or trx_sys->max_trx_id if the trx list is empty

◆ trx_sys_any_active_transactions()

ulint trx_sys_any_active_transactions ( void  )

◆ trx_sys_close()

void trx_sys_close ( void  )

Shutdown/Close the transaction system.

◆ trx_sys_create()

void trx_sys_create ( void  )

Creates the trx_sys instance and initializes purge_queue and mutex.

◆ trx_sys_create_sys_pages()

void trx_sys_create_sys_pages ( void  )

Creates and initializes the transaction system at the database creation.

◆ trx_sys_get_max_trx_id()

UNIV_INLINE trx_id_t trx_sys_get_max_trx_id ( void  )

Determines the maximum transaction id.

Returns
maximum currently allocated trx id; will be stale after the next call to trx_sys_get_new_trx_id()

◆ trx_sys_get_new_trx_id()

UNIV_INLINE trx_id_t trx_sys_get_new_trx_id ( )

Allocates a new transaction id.

Returns
new, allocated trx id

◆ trx_sys_hdr_page()

UNIV_INLINE bool trx_sys_hdr_page ( const page_id_t page_id)

Checks if a page address is the trx sys header page.

Parameters
[in]page_idpage id
Returns
true if trx sys header page

◆ trx_sys_init_at_db_start()

purge_pq_t* trx_sys_init_at_db_start ( void  )

Creates and initializes the central memory structures for the transaction system.

This is called when the database is started.

Returns
min binary heap of rsegs to purge

◆ trx_sys_need_rollback()

UNIV_INLINE bool trx_sys_need_rollback ( )

Determine if there are incomplete transactions in the system.

Returns
whether incomplete transactions need rollback

◆ trx_sys_print_mysql_binlog_offset()

void trx_sys_print_mysql_binlog_offset ( void  )

Prints to stderr the MySQL binlog offset info in the trx system header if the magic number shows it valid.

Prints to stderr the MySQL binlog offset info in the trx system header if the magic number shows it valid.

◆ trx_sys_rw_trx_add()

UNIV_INLINE void trx_sys_rw_trx_add ( trx_t trx)

Add the transaction to the RW transaction set.

Parameters
trxtransaction instance to add

◆ trx_sys_undo_spaces_deinit()

void trx_sys_undo_spaces_deinit ( )

Free the resources occupied by trx_sys_undo_spaces, called once during thread de-initialization.

◆ trx_sys_undo_spaces_init()

void trx_sys_undo_spaces_init ( )

Initialize trx_sys_undo_spaces, called once during srv_start().

◆ trx_sys_update_mysql_binlog_offset()

void trx_sys_update_mysql_binlog_offset ( const char *  file_name,
int64_t  offset,
ulint  field,
mtr_t mtr 
)

Updates the offset information about the end of the MySQL binlog entry which corresponds to the transaction just being committed.

In a MySQL replication slave updates the latest master binlog position up to which replication has proceeded. in: mtr

In a MySQL replication slave updates the latest master binlog position up to which replication has proceeded.

Parameters
file_namein: MySQL log file name
offsetin: position in that log file
fieldin: offset of the MySQL log info field in the trx sys header
mtrin: mtr

◆ trx_sys_validate_trx_list()

bool trx_sys_validate_trx_list ( )

Validate the trx_sys_t::rw_trx_list.

Returns
true if the list is valid
true if the list is valid.

◆ trx_sysf_get()

UNIV_INLINE trx_sysf_t* trx_sysf_get ( mtr_t mtr)

Gets a pointer to the transaction system file copy and x-locks its page.

Returns
pointer to system file copy, page x-locked in: mtr

◆ trx_sysf_rseg_find_free()

ulint trx_sysf_rseg_find_free ( mtr_t mtr)

Look for a free slot for a rollback segment in the trx system file copy.

Parameters
[in,out]mtrmtr
Returns
slot index or ULINT_UNDEFINED if not found

◆ trx_sysf_rseg_find_page_no()

page_no_t trx_sysf_rseg_find_page_no ( ulint  rseg_id)

Find the page number in the TRX_SYS page for a given slot/rseg_id.

Parameters
[in]rseg_idslot number in the TRX_SYS page rseg array
Returns
page number from the TRX_SYS page rseg array

◆ trx_sysf_rseg_get_page_no()

UNIV_INLINE page_no_t trx_sysf_rseg_get_page_no ( trx_sysf_t sys_header,
ulint  i,
mtr_t mtr 
)

Gets the page number of the nth rollback segment slot in the trx system file copy.

Parameters
[in]sys_headertrx sys file copy
[in]islot index == rseg id
[in]mtrmtr
Returns
page number, FIL_NULL if slot unused

◆ trx_sysf_rseg_get_space()

UNIV_INLINE space_id_t trx_sysf_rseg_get_space ( trx_sysf_t sys_header,
ulint  i,
mtr_t mtr 
)

Gets the space of the nth rollback segment slot in the trx system file copy.

Parameters
[in]sys_headertrx sys file copy
[in]islot index == rseg id
[in]mtrmtr
Returns
space id

◆ trx_sysf_rseg_set_page_no()

UNIV_INLINE void trx_sysf_rseg_set_page_no ( trx_sysf_t sys_header,
ulint  i,
page_no_t  page_no,
mtr_t mtr 
)

Set the page number of the nth rollback segment slot in the trx system file copy.

Parameters
[in]sys_headertrx sys file copy
[in]islot index == rseg id
[in]page_nopage number, FIL_NULL if the slot is reset to unused
[in]mtrmtr

◆ trx_sysf_rseg_set_space()

UNIV_INLINE void trx_sysf_rseg_set_space ( trx_sysf_t sys_header,
ulint  i,
space_id_t  space,
mtr_t mtr 
)

Sets the space id of the nth rollback segment slot in the trx system file copy.

Parameters
[in]sys_headertrx sys file copy
[in]islot index == rseg id
[in]spacespace id
[in]mtrmtr

◆ trx_write_trx_id()

UNIV_INLINE void trx_write_trx_id ( byte ptr,
trx_id_t  id 
)

Writes a trx id to an index page.

In case that the id size changes in some future version, this function should be used instead of mach_write_...

Parameters
[in]ptrpointer to memory where written
[in]idid

◆ UT_LIST_BASE_NODE_T()

typedef UT_LIST_BASE_NODE_T ( trx_t  )

Variable Documentation

◆ trx_rseg_n_slots_debug

uint trx_rseg_n_slots_debug

◆ trx_sys

trx_sys_t* trx_sys

The transaction system.

◆ trx_sys_undo_spaces

Space_Ids* trx_sys_undo_spaces

A list of undo tablespace IDs found in the TRX_SYS page.

This cannot be part of the trx_sys_t object because it is initialized before that object is created. These are the old type of undo tablespaces that do not have space_IDs in the reserved range nor contain an RSEG_ARRAY page.

These are the old type of undo tablespaces that do not have space_IDs in the reserved range nor contain an RSEG_ARRAY page. This cannot be part of the trx_sys_t object because it must be built before that is initialized.