MySQL 8.4.2
Source Code Documentation
|
Go to the source code of this file.
Classes | |
class | fseg_header |
A wrapper class to print the file segment header information. More... | |
Macros | |
#define | FSP_EXTENT_SIZE |
File space extent size in pages page size | file space extent size -------—+--------------------— 4 KiB | 256 pages = 1 MiB 8 KiB | 128 pages = 1 MiB 16 KiB | 64 pages = 1 MiB 32 KiB | 64 pages = 2 MiB 64 KiB | 64 pages = 4 MiB. More... | |
Enumerations | |
enum | fsp_reserve_t { FSP_NORMAL , FSP_UNDO , FSP_CLEANING , FSP_BLOB } |
Flags for fsp_reserve_free_extents. More... | |
Functions | |
std::ostream & | operator<< (std::ostream &out, const fseg_header &header) |
bool | fsp_flags_is_valid (uint32_t flags) |
Validate the tablespace flags. More... | |
bool | fsp_is_system_temporary (space_id_t space_id) |
Check if tablespace is system temporary. More... | |
bool | fsp_is_session_temporary (space_id_t space_id) |
Check if the tablespace is session temporary. More... | |
bool | fsp_is_global_temporary (space_id_t space_id) |
Check if tablespace is global temporary. More... | |
bool | fsp_is_checksum_disabled (space_id_t space_id) |
Check if checksum is disabled for the given space. More... | |
bool | fsp_skip_sanity_check (space_id_t space_id) |
Skip some of the sanity checks that are time consuming even in debug mode and can affect frequent verification runs that are done to ensure stability of the product. More... | |
constexpr uint32_t | FSP_FLAGS_GET_POST_ANTELOPE (uint32_t flags) |
Return the value of the POST_ANTELOPE field. More... | |
constexpr uint32_t | FSP_FLAGS_GET_ZIP_SSIZE (uint32_t flags) |
Return the value of the ZIP_SSIZE field. More... | |
constexpr uint32_t | FSP_FLAGS_HAS_ATOMIC_BLOBS (uint32_t flags) |
Return the value of the ATOMIC_BLOBS field. More... | |
constexpr uint32_t | FSP_FLAGS_GET_PAGE_SSIZE (uint32_t flags) |
Return the value of the PAGE_SSIZE field. More... | |
constexpr uint32_t | FSP_FLAGS_HAS_DATA_DIR (uint32_t flags) |
Return the value of the DATA_DIR field. More... | |
constexpr uint32_t | FSP_FLAGS_GET_SHARED (uint32_t flags) |
Return the contents of the SHARED field. More... | |
constexpr uint32_t | FSP_FLAGS_GET_TEMPORARY (uint32_t flags) |
Return the contents of the TEMPORARY field. More... | |
constexpr uint32_t | FSP_FLAGS_GET_ENCRYPTION (uint32_t flags) |
Return the contents of the ENCRYPTION field. More... | |
constexpr uint32_t | FSP_FLAGS_HAS_SDI (uint32_t flags) |
Return the value of the SDI field. More... | |
constexpr uint32_t | FSP_FLAGS_GET_UNUSED (uint32_t flags) |
Return the contents of the UNUSED bits. More... | |
constexpr bool | FSP_FLAGS_ARE_NOT_SET (uint32_t flags) |
Return true if flags are not set. More... | |
constexpr void | fsp_flags_set_encryption (uint32_t &flags) |
Set ENCRYPTION bit in tablespace flags. More... | |
constexpr void | fsp_flags_unset_encryption (uint32_t &flags) |
Set ENCRYPTION bit in tablespace flags. More... | |
constexpr void | fsp_flags_set_sdi (uint32_t &flags) |
Set SDI Index bit in tablespace flags. More... | |
constexpr void | fsp_flags_unset_sdi (uint32_t &flags) |
Set SDI Index bit in tablespace flags. More... | |
constexpr uint32_t | fsp_is_shared_tablespace (uint32_t flags) |
Use an alias in the code for FSP_FLAGS_GET_SHARED() More... | |
Variables | |
constexpr size_t | FSP_EXTENT_SIZE_MAX = 4194304 / UNIV_PAGE_SIZE_MAX |
File space extent size (four megabyte) in pages for MAX page size. More... | |
constexpr size_t | FSP_EXTENT_SIZE_MIN = 1048576 / UNIV_PAGE_SIZE_MIN |
File space extent size (one megabyte) in pages for MIN page size. More... | |
constexpr uint32_t | FSEG_PAGE_DATA = FIL_PAGE_DATA |
On a page of any file segment, data may be put starting from this offset. More... | |
constexpr uint32_t | FSP_FLAGS_WIDTH_POST_ANTELOPE = 1 |
Width of the POST_ANTELOPE flag. More... | |
constexpr uint32_t | FSP_FLAGS_WIDTH_ZIP_SSIZE = 4 |
Number of flag bits used to indicate the tablespace zip page size. More... | |
constexpr uint32_t | FSP_FLAGS_WIDTH_ATOMIC_BLOBS = 1 |
Width of the ATOMIC_BLOBS flag. More... | |
constexpr uint32_t | FSP_FLAGS_WIDTH_PAGE_SSIZE = 4 |
Number of flag bits used to indicate the tablespace page size. More... | |
constexpr uint32_t | FSP_FLAGS_WIDTH_DATA_DIR = 1 |
Width of the DATA_DIR flag. More... | |
constexpr uint32_t | FSP_FLAGS_WIDTH_SHARED = 1 |
Width of the SHARED flag. More... | |
constexpr uint32_t | FSP_FLAGS_WIDTH_TEMPORARY = 1 |
Width of the TEMPORARY flag. More... | |
constexpr uint32_t | FSP_FLAGS_WIDTH_ENCRYPTION = 1 |
Width of the encryption flag. More... | |
constexpr uint32_t | FSP_FLAGS_WIDTH_SDI = 1 |
Width of the SDI flag. More... | |
constexpr uint32_t | FSP_FLAGS_WIDTH |
Width of all the currently known tablespace flags. More... | |
constexpr uint32_t | FSP_FLAGS_MASK = ~(~0U << FSP_FLAGS_WIDTH) |
A mask of all the known/used bits in tablespace flags. More... | |
constexpr uint32_t | FSP_FLAGS_POS_POST_ANTELOPE = 0 |
Zero relative shift position of the POST_ANTELOPE field. More... | |
constexpr uint32_t | FSP_FLAGS_POS_ZIP_SSIZE |
Zero relative shift position of the ZIP_SSIZE field. More... | |
constexpr uint32_t | FSP_FLAGS_POS_ATOMIC_BLOBS |
Zero relative shift position of the ATOMIC_BLOBS field. More... | |
constexpr uint32_t | FSP_FLAGS_POS_PAGE_SSIZE |
Zero relative shift position of the PAGE_SSIZE field. More... | |
constexpr uint32_t | FSP_FLAGS_POS_DATA_DIR |
Zero relative shift position of the start of the DATA_DIR bit. More... | |
constexpr uint32_t | FSP_FLAGS_POS_SHARED |
Zero relative shift position of the start of the SHARED bit. More... | |
constexpr uint32_t | FSP_FLAGS_POS_TEMPORARY |
Zero relative shift position of the start of the TEMPORARY bit. More... | |
constexpr uint32_t | FSP_FLAGS_POS_ENCRYPTION |
Zero relative shift position of the start of the ENCRYPTION bit. More... | |
constexpr uint32_t | FSP_FLAGS_POS_SDI |
Zero relative shift position of the start of the SDI bits. More... | |
constexpr uint32_t | FSP_FLAGS_POS_UNUSED |
Zero relative shift position of the start of the UNUSED bits. More... | |
constexpr uint32_t | FSP_FLAGS_MASK_POST_ANTELOPE |
Bit mask of the POST_ANTELOPE field. More... | |
constexpr uint32_t | FSP_FLAGS_MASK_ZIP_SSIZE |
Bit mask of the ZIP_SSIZE field. More... | |
constexpr uint32_t | FSP_FLAGS_MASK_ATOMIC_BLOBS |
Bit mask of the ATOMIC_BLOBS field. More... | |
constexpr uint32_t | FSP_FLAGS_MASK_PAGE_SSIZE |
Bit mask of the PAGE_SSIZE field. More... | |
constexpr uint32_t | FSP_FLAGS_MASK_DATA_DIR |
Bit mask of the DATA_DIR field. More... | |
constexpr uint32_t | FSP_FLAGS_MASK_SHARED |
Bit mask of the SHARED field. More... | |
constexpr uint32_t | FSP_FLAGS_MASK_TEMPORARY |
Bit mask of the TEMPORARY field. More... | |
constexpr uint32_t | FSP_FLAGS_MASK_ENCRYPTION |
Bit mask of the ENCRYPTION field. More... | |
constexpr uint32_t | FSP_FLAGS_MASK_SDI |
Bit mask of the SDI field. More... | |
constexpr size_t | TRX_SYS_N_RSEGS = 128 |
Max number of rollback segments: the number of segment specification slots in the transaction system array; rollback segment id must fit in one (signed) byte, therefore 128; each slot is currently 8 bytes in size. More... | |
constexpr size_t | FSP_MIN_UNDO_TABLESPACES = 2 |
Minimum and Maximum number of implicit undo tablespaces. More... | |
constexpr size_t | FSP_MAX_UNDO_TABLESPACES = TRX_SYS_N_RSEGS - 1 |
constexpr size_t | FSP_IMPLICIT_UNDO_TABLESPACES = 2 |
constexpr size_t | FSP_MAX_ROLLBACK_SEGMENTS = TRX_SYS_N_RSEGS |
Flags for inserting records in order | |
If records are inserted in order, there are the following flags to tell this (their type is made byte for the compiler to warn if direction and hint parameters are switched in fseg_alloc_free_page) | |
constexpr byte | FSP_UP = 111 |
alphabetically upwards More... | |
constexpr byte | FSP_DOWN = 112 |
alphabetically downwards More... | |
constexpr byte | FSP_NO_DIR = 113 |
no order More... | |
The space low address page map | |
The pages at FSP_XDES_OFFSET and FSP_IBUF_BITMAP_OFFSET are repeated every XDES_DESCRIBED_PER_PAGE pages in every tablespace. | |
constexpr uint32_t | FSP_XDES_OFFSET = 0 |
extent descriptor More... | |
constexpr uint32_t | FSP_IBUF_BITMAP_OFFSET = 1 |
insert buffer bitmap; The ibuf bitmap pages are the ones whose page number is the number above plus a multiple of XDES_DESCRIBED_PER_PAGE More... | |
constexpr uint32_t | FSP_FIRST_INODE_PAGE_NO = 2 |
in every tablespace More... | |
constexpr uint32_t | FSP_IBUF_HEADER_PAGE_NO = 3 |
The following pages exist in the system tablespace (space 0). More... | |
constexpr uint32_t | FSP_IBUF_TREE_ROOT_PAGE_NO = 4 |
insert buffer B-tree root page in tablespace 0; The ibuf tree root page number in tablespace 0; its fseg inode is on the page number FSP_FIRST_INODE_PAGE_NO More... | |
constexpr uint32_t | FSP_TRX_SYS_PAGE_NO = 5 |
transaction system header, in tablespace 0 More... | |
constexpr uint32_t | FSP_FIRST_RSEG_PAGE_NO = 6 |
first rollback segment page, in tablespace 0 More... | |
constexpr uint32_t | FSP_DICT_HDR_PAGE_NO = 7 |
data dictionary header page, in tablespace 0 More... | |
constexpr uint32_t | FSP_RSEG_ARRAY_PAGE_NO = 3 |
rollback segment directory page number in each undo tablespace More... | |
File segment header | |
The file segment header points to the inode describing the file segment. | |
typedef byte | fseg_header_t |
Data type for file segment header. More... | |
constexpr uint32_t | FSEG_HDR_SPACE = 0 |
space id of the inode More... | |
constexpr uint32_t | FSEG_HDR_PAGE_NO = 4 |
page number of the inode More... | |
constexpr uint32_t | FSEG_HDR_OFFSET = 8 |
byte offset of the inode More... | |
constexpr uint32_t | FSEG_HEADER_SIZE = 10 |
Length of the file system header, in bytes. More... | |
#define FSP_EXTENT_SIZE |
File space extent size in pages page size | file space extent size -------—+--------------------— 4 KiB | 256 pages = 1 MiB 8 KiB | 128 pages = 1 MiB 16 KiB | 64 pages = 1 MiB 32 KiB | 64 pages = 2 MiB 64 KiB | 64 pages = 4 MiB.
typedef byte fseg_header_t |
Data type for file segment header.
enum fsp_reserve_t |
|
inline |
Validate the tablespace flags.
These flags are stored in the tablespace header at offset FSP_SPACE_FLAGS. They should be 0 for ROW_FORMAT=COMPACT and ROW_FORMAT=REDUNDANT. The newer row formats, COMPRESSED and DYNAMIC, will have at least the DICT_TF_COMPACT bit set.
[in] | flags | Tablespace flags |
bool fsp_is_checksum_disabled | ( | space_id_t | space_id | ) |
Check if checksum is disabled for the given space.
[in] | space_id | tablespace ID |
bool fsp_is_global_temporary | ( | space_id_t | space_id | ) |
Check if tablespace is global temporary.
[in] | space_id | tablespace ID |
bool fsp_is_session_temporary | ( | space_id_t | space_id | ) |
Check if the tablespace is session temporary.
[in] | space_id | tablespace ID |
bool fsp_is_system_temporary | ( | space_id_t | space_id | ) |
Check if tablespace is system temporary.
[in] | space_id | tablespace ID |
bool fsp_skip_sanity_check | ( | space_id_t | space_id | ) |
Skip some of the sanity checks that are time consuming even in debug mode and can affect frequent verification runs that are done to ensure stability of the product.
|
inline |
|
constexpr |
byte offset of the inode
|
constexpr |
page number of the inode
|
constexpr |
space id of the inode
|
constexpr |
Length of the file system header, in bytes.
|
constexpr |
On a page of any file segment, data may be put starting from this offset.
|
constexpr |
data dictionary header page, in tablespace 0
|
constexpr |
alphabetically downwards
|
constexpr |
File space extent size (four megabyte) in pages for MAX page size.
|
constexpr |
File space extent size (one megabyte) in pages for MIN page size.
|
constexpr |
in every tablespace
|
constexpr |
first rollback segment page, in tablespace 0
|
constexpr |
insert buffer bitmap; The ibuf bitmap pages are the ones whose page number is the number above plus a multiple of XDES_DESCRIBED_PER_PAGE
|
constexpr |
The following pages exist in the system tablespace (space 0).
insert buffer header page, in tablespace 0
|
constexpr |
insert buffer B-tree root page in tablespace 0; The ibuf tree root page number in tablespace 0; its fseg inode is on the page number FSP_FIRST_INODE_PAGE_NO
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
Minimum and Maximum number of implicit undo tablespaces.
This kind of undo tablespace is always created and found in –innodb-undo-directory.
|
constexpr |
no order
|
constexpr |
rollback segment directory page number in each undo tablespace
|
constexpr |
transaction system header, in tablespace 0
|
constexpr |
alphabetically upwards
|
constexpr |
extent descriptor
|
constexpr |
Max number of rollback segments: the number of segment specification slots in the transaction system array; rollback segment id must fit in one (signed) byte, therefore 128; each slot is currently 8 bytes in size.
If you want to raise the level to 256 then you will need to fix some assertions that impose the 7 bit restriction. e.g., mach_write_to_3()