93 std::ostream &
print(std::ostream &out)
const;
97 return (obj.
print(out));
117 std::ostream &
print(std::ostream &out)
const;
122 return (obj.
print(out));
218#define FSEG_FRAG_ARR_N_SLOTS (FSP_EXTENT_SIZE / 2)
224#define FSEG_INODE_SIZE \
225 (16 + 3 * FLST_BASE_NODE_SIZE + FSEG_FRAG_ARR_N_SLOTS * FSEG_FRAG_SLOT_SIZE)
248#define FSEG_FRAG_LIMIT FSEG_FRAG_ARR_N_SLOTS
310 (XDES_BITMAP + UT_BITS_IN_BYTES(FSP_EXTENT_SIZE * XDES_BITS_PER_PAGE))
313#define XDES_SIZE_MAX \
314 (XDES_BITMAP + UT_BITS_IN_BYTES(FSP_EXTENT_SIZE_MAX * XDES_BITS_PER_PAGE))
317#define XDES_SIZE_MIN \
318 (XDES_BITMAP + UT_BITS_IN_BYTES(FSP_EXTENT_SIZE_MIN * XDES_BITS_PER_PAGE))
446 byte *encrypt_info,
bool update_fsp_flags,
447 bool rotate_encryption,
mtr_t *mtr);
459 byte operation_type,
bool update_operation_type,
mtr_t *mtr);
511 ulint byte_offset,
bool has_done_reservation,
543 bool has_done_reservation,
mtr_t *mtr,
mtr_t *init_mtr);
715 uint32_t fsp_flags) {
745 bool atomic_blobs,
bool has_data_dir,
882 return (
"XDES_NOT_INITED");
884 return (
"XDES_FREE");
886 return (
"XDES_FREE_FRAG");
888 return (
"XDES_FULL_FRAG");
890 return (
"XDES_FSEG");
892 return (
"XDES_FSEG_FRAG");
908 <<
", new_size=" <<
size);
945 bool to_encrypt,
void *dd_space_in);
982 std::ostream &
print(std::ostream &out)
const;
1027 return (obj.
print(out));
1086 size_t &space_size);
uint32_t space_id_t
Tablespace identifier.
Definition: api0api.h:47
uint32_t page_no_t
Page number.
Definition: api0api.h:45
std::pair< page_no_t, page_no_t > Page_range_t
Definition: btr0btr.h:131
The database buffer pool high-level routines.
DDL log record.
Definition: log0ddl.h:78
Progress
Encryption progress type.
Definition: os0enc.h:80
A wrapper class to operate on a file segment inode pointer (fseg_inode_t*)
Definition: fsp0fsp.h:952
const page_size_t & m_page_size
The page size used in this tablespace.
Definition: fsp0fsp.h:989
space_id_t m_space_id
Unique tablespace identifier.
Definition: fsp0fsp.h:986
page_no_t calculate_not_full_n_used()
Calculate the value of FSEG_NOT_FULL_N_USED by traversing the FSEG_NOT_FULL list.
Definition: fsp0fsp.cc:4998
mtr_t * m_mtr
The mini-transaction operation context.
Definition: fsp0fsp.h:995
fseg_inode_t * m_fseg_inode
file segment inode pointer that is being wrapped by this object.
Definition: fsp0fsp.h:992
std::random_device m_rd
Definition: fsp0fsp.h:1009
std::default_random_engine m_random_engine
Definition: fsp0fsp.h:1010
std::ostream & print(std::ostream &out) const
Print the current object into the given output stream.
Definition: fsp0fsp.cc:5019
bool verify_not_full_n_used()
Verify the stored FSEG_NOT_FULL_N_USED value.
Definition: fsp0fsp.cc:4988
void write_not_full_n_used(uint32_t n_used)
Update the value of FSEG_NOT_FULL_N_USED.
Definition: fsp0fsp.cc:4957
uint64_t get_seg_id() const
Get the segment identifier value.
Definition: fsp0fsp.h:976
bool do_verify()
To reduce the cost of verification of FSEG_NOT_FULL_N_USED, do it only when this function returns tru...
Definition: fsp0fsp.h:1016
std::uniform_int_distribution< int > m_dist
Definition: fsp0fsp.h:1011
uint32_t read_not_full_n_used() const
Get the current value of FSEG_NOT_FULL_N_USED.
Definition: fsp0fsp.cc:5013
File_segment_inode(space_id_t space_id, const page_size_t &page_size, fseg_inode_t *inode, mtr_t *mtr)
Constructor.
Definition: fsp0fsp.h:959
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
Page identifier.
Definition: buf0types.h:207
Page size descriptor.
Definition: page0size.h:50
size_t physical() const
Retrieve the physical page size (on-disk).
Definition: page0size.h:121
int page
Definition: ctype-mb.cc:1234
dberr_t
Definition: db0err.h:39
#define is_shared(S, V)
Definition: dbug.cc:204
constexpr uint32_t FIL_PAGE_DATA
start of the data on the page
Definition: fil0types.h:111
bool fsp_is_system_temporary(space_id_t space_id)
Check if tablespace is system temporary.
Definition: fsp0fsp.cc:305
xdes_state_t xdes_get_state(const xdes_t *descr, mtr_t *mtr)
Get the state of an xdes.
Definition: fsp0fsp.h:848
static bool fsp_flags_are_equal(uint32_t flags1, uint32_t flags2)
Determine if two tablespaces are equivalent or compatible.
std::ostream & xdes_page_print(std::ostream &out, const page_t *xdes, page_no_t page_no, mtr_t *mtr)
Print the extent descriptor page in user-friendly format.
Definition: fsp0fsp.cc:4023
const byte * fsp_parse_init_file_page(const byte *ptr, const byte *end_ptr, buf_block_t *block)
Parses a redo log record of a file page init.
Definition: fsp0fsp.cc:780
static page_no_t fsp_get_extent_size_in_pages(const page_size_t &page_size)
Calculate the number of physical pages in an extent for this file.
Definition: fsp0fsp.h:356
dberr_t fsp_alter_encrypt_tablespace(THD *thd, space_id_t space_id, bool to_encrypt, void *dd_space_in)
Encrypt/Unencrypt a tablespace.
Definition: fsp0fsp.cc:4683
static buf_block_t * fseg_alloc_free_page(fseg_header_t *seg_header, page_no_t hint, byte direction, mtr_t *mtr)
Allocates a single free page from a segment.
Definition: fsp0fsp.h:557
void fsp_sdi_write_root_to_page(page_t *page, const page_size_t &page_size, page_no_t root_page_num, mtr_t *mtr)
Write SDI Index root page num to page 0 of tablespace.
Definition: fsp0fsp.cc:3945
static bool fsp_is_file_per_table(space_id_t space_id, uint32_t fsp_flags)
Check if tablespace is file-per-table.
Definition: fsp0fsp.h:714
dberr_t fseg_alloc_pages_of_extent(const Page_alloc_info &info, mtr_t *mtr, Page_range_t &page_range)
Allocate pages in bulk.
Definition: fsp0fsp.cc:5026
void fsp_header_set_field(page_t *page, uint32_t field, uint32_t val)
Update a tablespace header field.
Definition: fsp0fsp.h:384
bool fsp_extend_by_default_size(space_id_t space_id, bool make_old, size_t &space_size)
Extend space by default extension size.
Definition: fsp0fsp.cc:3262
bool fsp_reserve_free_extents(ulint *n_reserved, space_id_t space_id, ulint n_ext, fsp_reserve_t alloc_type, mtr_t *mtr, page_no_t n_pages=2)
Reserves free pages from a tablespace.
Definition: fsp0fsp.cc:3130
ulint fsp_header_get_encryption_progress_offset(const page_size_t &page_size)
Get the offset of encryption progress information in page 0.
Definition: fsp0fsp.ic:396
uint32_t fsp_flags_to_dict_tf(uint32_t fsp_flags, bool compact)
Convert a 32 bit integer tablespace flags to the 32 bit table flags.
Definition: fsp0fsp.cc:237
static ulint xdes_calc_descriptor_index(const page_size_t &page_size, ulint offset)
Calculates the descriptor index within a descriptor page.
static bool fsp_is_system_or_temp_tablespace(space_id_t space_id)
Check if the space_id is for a system-tablespace (shared + temp).
Definition: fsp0fsp.h:696
bool fsp_check_tablespace_size(space_id_t space_id)
Check if the tablespace size information is valid.
Definition: fsp0fsp.cc:4066
buf_block_t * fseg_alloc_free_page_general(fseg_header_t *seg_header, page_no_t hint, byte direction, bool has_done_reservation, mtr_t *mtr, mtr_t *init_mtr)
Allocates a single free page from a segment.
Definition: fsp0fsp.cc:3005
bool fsp_header_dict_get_server_version(uint *version)
Read the server version number from the DD tablespace header.
Definition: fsp0fsp.cc:989
bool fsp_header_write_encryption_progress(space_id_t space_id, ulint space_flags, ulint progress_info, byte operation_type, bool update_operation_type, mtr_t *mtr)
Write the encryption progress info into the space header.
bool fseg_free_step_not_header(fseg_header_t *header, bool ahi, mtr_t *mtr)
Frees part of a segment.
Definition: fsp0fsp.cc:3746
void fsp_init_file_page_low(buf_block_t *block)
Inits a file page whose prior contents should be ignored.
Definition: fsp0fsp.cc:694
fsp_header_t * fsp_get_space_header_block(space_id_t id, const page_size_t &page_size, mtr_t *mtr, buf_block_t **block)
Gets a pointer to the space header and acquires a SX lock on the page.
Definition: fsp0fsp.cc:196
uint32_t fsp_header_get_space_version(const page_t *page)
Reads the server space version from the first page of a tablespace.
buf_block_t * fseg_create(space_id_t space, page_no_t page, ulint byte_offset, mtr_t *mtr)
Creates a new segment.
Definition: fsp0fsp.cc:2427
fseg_inode_t * fseg_inode_get(const fseg_header_t *header, space_id_t space, const page_size_t &page_size, mtr_t *mtr, buf_block_t **block=nullptr)
Returns the file segment inode, page x-latched.
Definition: fsp0fsp.cc:2176
void xdes_mark_all_used(xdes_t *descr, mtr_t *mtr)
Mark all the pages of the extent as used.
Definition: fsp0fsp.cc:420
bool fseg_page_is_free(fseg_header_t *seg_header, space_id_t space_id, page_no_t page)
Checks if a single page of a segment is free.
Definition: fsp0fsp.cc:3554
constexpr uint64_t FSP_MAX_AUTOEXTEND_SIZE
Definition: fsp0fsp.h:181
page_no_t fsp_get_pages_to_extend_ibd(const page_size_t &page_size, page_no_t size)
Calculate the number of pages to extend a datafile.
Definition: fsp0fsp.cc:1407
bool fsp_is_inode_page(page_no_t page)
Check if a specified page is inode page or not.
Definition: fsp0fsp.ic:281
uint32_t fsp_header_get_flags(const page_t *page)
Read the flags from the tablespace header page.
Definition: fsp0fsp.h:391
bool fsp_header_init(space_id_t space_id, page_no_t size, mtr_t *mtr)
Initializes the space header of a new created space and creates also the insert buffer tree root if s...
Definition: fsp0fsp.cc:1014
dberr_t fsp_has_sdi(space_id_t space_id)
Determine if the tablespace has SDI.
Definition: fsp0fsp.cc:4096
uint32_t fsp_header_get_field(const page_t *page, uint32_t field)
Read a tablespace header field.
Definition: fsp0fsp.h:376
static bool fsp_descr_page(const page_id_t &page_id, const page_size_t &page_size)
Checks if a page address is an extent descriptor page address.
static bool fsp_flags_is_compressed(uint32_t flags)
Determine if the tablespace is compressed from tablespace flags.
void fsp_init(void)
Initializes the file space system.
Definition: fsp0fsp.cc:791
ulint fsp_header_get_sdi_offset(const page_size_t &page_size)
Get the offset of SDI root page number in page 0.
Definition: fsp0fsp.ic:384
mysql_cond_t resume_encryption_cond
Definition: ha_innodb.cc:298
static uint32_t fsp_flags_init(const page_size_t &page_size, bool atomic_blobs, bool has_data_dir, bool is_shared, bool is_temporary, bool is_encrypted=false)
Initialize an FSP flags integer.
Encryption::Progress fsp_header_encryption_op_type_in_progress(const page_t *page, page_size_t page_size)
Get encryption operation type in progress from the first page of a tablespace.
Definition: fsp0fsp.cc:881
static bool fsp_is_ibd_tablespace(space_id_t space_id)
Determine if the space ID is an IBD tablespace, either file_per_table or a general shared tablespace,...
Definition: fsp0fsp.h:705
uint32_t fsp_header_get_server_version(const page_t *page)
Reads the server version from the first page of a tablespace.
static page_no_t xdes_calc_descriptor_page(const page_size_t &page_size, page_no_t offset)
Calculates the page where the descriptor of a page resides.
void fsp_header_size_update(fsp_header_t *header, ulint size, mtr_t *mtr)
Update the tablespace size information and generate redo log for it.
Definition: fsp0fsp.h:903
void fseg_free_page(fseg_header_t *seg_header, space_id_t space_id, page_no_t page, bool ahi, mtr_t *mtr)
Frees a single page of a segment.
Definition: fsp0fsp.cc:3531
std::vector< DDL_Record * > ts_encrypt_ddl_records
DDL records for tablespace (un)encryption.
Definition: fsp0fsp.cc:82
void xdes_mark_pages_free(xdes_t *descr, mtr_t *mtr, const page_no_t from)
Mark all the pages of the extent from given page_no as free.
Definition: fsp0fsp.cc:429
bool fsp_header_write_encryption(space_id_t space_id, uint32_t space_flags, byte *encrypt_info, bool update_fsp_flags, bool rotate_encryption, mtr_t *mtr)
Write the encryption info into the space header.
Definition: fsp0fsp.cc:912
bool fsp_is_undo_tablespace(space_id_t space_id)
Check whether a space id is an undo tablespace ID Undo tablespaces have space_id's starting 1 less th...
Definition: fsp0fsp.cc:271
bool fseg_free_step(fseg_header_t *header, bool ahi, mtr_t *mtr)
Frees part of a segment.
Definition: fsp0fsp.cc:3661
page_no_t fsp_header_get_tablespace_size(void)
Gets the size of the system tablespace from the tablespace header.
Definition: fsp0fsp.cc:1204
ulint fseg_n_reserved_pages(fseg_header_t *header, ulint *used, mtr_t *mtr)
Calculates the number of pages reserved by a segment, and how many pages are currently used.
Definition: fsp0fsp.cc:2493
space_id_t fsp_header_get_space_id(const page_t *page)
Reads the space id from the first page of a tablespace.
Definition: fsp0fsp.cc:1124
bool fsp_header_rotate_encryption(fil_space_t *space, byte *encrypt_info, mtr_t *mtr)
Rotate the encryption info in the space header.
Definition: fsp0fsp.cc:968
fsp_header_t * fsp_get_space_header(space_id_t id, const page_size_t &page_size, mtr_t *mtr)
Gets a pointer to the space header and acquires a SX lock on the page.
Definition: fsp0fsp.cc:218
page_no_t fsp_sdi_get_root_page_num(space_id_t space, const page_size_t &page_size, mtr_t *mtr)
Retrieve tablespace dictionary index root page number stored in the page 0.
Definition: fsp0fsp.cc:3913
void fsp_header_inc_size(space_id_t space_id, page_no_t size_inc, mtr_t *mtr)
Increases the space size field of a space.
Definition: fsp0fsp.cc:1177
static bool xdes_get_bit(const xdes_t *descr, ulint bit, page_no_t offset)
Gets a descriptor bit of a page.
void fsp_init_resume_alter_encrypt_tablespace()
Initiate roll-forward of alter encrypt in background thread.
Definition: fsp0fsp.cc:4949
page_size_t fsp_header_get_page_size(const page_t *page)
Reads the page size from the first page of a tablespace.
Definition: fsp0fsp.cc:1148
static bool fsp_is_system_tablespace(space_id_t space_id)
Definition: fsp0fsp.h:689
buf_block_t * fseg_create_general(space_id_t space_id, page_no_t page, ulint byte_offset, bool has_done_reservation, mtr_t *mtr)
Creates a new segment.
Definition: fsp0fsp.cc:2287
mysql_mutex_t resume_encryption_cond_m
Definition: ha_innodb.cc:299
void fsp_header_init_fields(page_t *page, space_id_t space_id, uint32_t flags)
Writes the space id and flags to a tablespace header.
Definition: fsp0fsp.cc:808
bool fsp_header_get_encryption_key(uint32_t fsp_flags, Encryption_key &e_key, page_t *page)
Reads the encryption key from the first page of a tablespace.
Definition: fsp0fsp.cc:1157
page_no_t fseg_alloc_page_no(fil_space_t *space, const page_size_t &page_size, fseg_inode_t *seg_inode, page_no_t hint, byte direction, mtr_t *mtr, bool has_done_reservation)
Allocate a page number.
Definition: fsp0fsp.cc:2743
uintmax_t fsp_get_available_space_in_free_extents(space_id_t space_id)
Calculate how many KiB of new data we will be able to insert to the tablespace without running out of...
Definition: fsp0fsp.cc:3291
ulint fsp_header_get_encryption_offset(const page_size_t &page_size)
Get the offset of encryption information in page 0.
Definition: fsp0fsp.cc:820
bool fsp_is_dd_tablespace(space_id_t space_id)
Check if tablespace is dd tablespace.
Definition: fsp0fsp.cc:259
General shared tablespace implementation.
#define FSP_EXTENT_SIZE
File space extent size in pages page size | file space extent size -------—+--------------------— 4 K...
Definition: fsp0types.h:64
constexpr uint32_t FSEG_PAGE_DATA
On a page of any file segment, data may be put starting from this offset.
Definition: fsp0types.h:79
fsp_reserve_t
Flags for fsp_reserve_free_extents.
Definition: fsp0types.h:136
byte fseg_header_t
Data type for file segment header.
Definition: fsp0types.h:85
File-based list utilities.
constexpr ulint FLST_BASE_NODE_SIZE
Definition: fut0lst.h:50
constexpr ulint FLST_NODE_SIZE
Definition: fut0lst.h:53
constexpr uint32_t XDES_FLST_NODE
The list node data structure for the descriptors.
Definition: fsp0fsp.h:270
constexpr uint32_t XDES_ID
The identifier of the segment to which this extent belongs.
Definition: fsp0fsp.h:268
constexpr uint32_t XDES_STATE
contains state information of the extent
Definition: fsp0fsp.h:272
constexpr uint32_t XDES_FREE_BIT
Index of the bit which tells if the page is free.
Definition: fsp0fsp.h:281
constexpr uint32_t XDES_BITMAP
Descriptor bitmap of the pages in the extent.
Definition: fsp0fsp.h:274
constexpr uint32_t XDES_ARR_OFFSET
Offset of the descriptor array on a descriptor page.
Definition: fsp0fsp.h:321
const ulint XDES_FRAG_N_USED
The number of reserved pages in a fragment extent.
Definition: fsp0fsp.h:324
xdes_state_t
States of a descriptor.
Definition: fsp0fsp.h:287
constexpr uint32_t XDES_BITS_PER_PAGE
How many bits are there per page.
Definition: fsp0fsp.h:279
constexpr uint32_t XDES_CLEAN_BIT
NOTE: currently not used! Index of the bit which tells if there are old versions of tuples on the pag...
Definition: fsp0fsp.h:284
@ XDES_NOT_INITED
extent descriptor is not initialized
Definition: fsp0fsp.h:290
@ XDES_FULL_FRAG
extent is in full fragment list of space
Definition: fsp0fsp.h:299
@ XDES_FSEG
extent belongs to a segment
Definition: fsp0fsp.h:302
@ XDES_FSEG_FRAG
fragment extent leased to segment
Definition: fsp0fsp.h:305
@ XDES_FREE
extent is in free list of space
Definition: fsp0fsp.h:293
@ XDES_FREE_FRAG
extent is in free fragment list of space
Definition: fsp0fsp.h:296
#define FSEG_INODE_SIZE
Definition: fsp0fsp.h:224
constexpr uint32_t FSEG_FREE_LIST_MAX_LEN
Definition: fsp0fsp.h:254
constexpr uint32_t FSEG_NOT_FULL
list of partially free extents
Definition: fsp0fsp.h:209
constexpr uint32_t FSEG_INODE_PAGE_NODE
Definition: fsp0fsp.h:196
constexpr uint32_t FSEG_MAGIC_N
magic number used in debugging
Definition: fsp0fsp.h:213
constexpr double FSEG_RESERVE_PCT_MIN
Definition: fsp0fsp.h:245
constexpr uint32_t FSEG_FRAG_ARR
array of individual pages belonging to this segment in fsp fragment extent lists
Definition: fsp0fsp.h:216
constexpr double FSEG_RESERVE_PCT_DFLT
Definition: fsp0fsp.h:244
constexpr uint32_t FSEG_MAGIC_N_VALUE
Definition: fsp0fsp.h:233
constexpr uint32_t FSEG_NOT_FULL_N_USED
number of used segment pages in the FSEG_NOT_FULL list
Definition: fsp0fsp.h:205
static uint32_t FSP_SEG_INODES_PER_PAGE(page_size_t page_size)
Definition: fsp0fsp.h:227
constexpr uint32_t FSEG_FRAG_SLOT_SIZE
a fragment page slot contains its page number within space, FIL_NULL means that the slot is not in us...
Definition: fsp0fsp.h:221
constexpr uint32_t FSEG_FREE_LIST_LIMIT
If the reserved size of a segment is at least this many extents, we allow extents to be put to the fr...
Definition: fsp0fsp.h:253
constexpr uint32_t FSEG_ID
Definition: fsp0fsp.h:203
double fseg_reserve_pct
The segment_reserve_factor is the ratio x/y expressed in percentage, where x is the number of free pa...
Definition: fsp0fsp.cc:67
byte fseg_inode_t
Definition: fsp0fsp.h:194
constexpr double FSEG_RESERVE_PCT_MAX
Definition: fsp0fsp.h:246
constexpr uint32_t FSEG_FULL
list of full extents
Definition: fsp0fsp.h:211
constexpr uint32_t FSEG_FREE
list of free extents of this segment
Definition: fsp0fsp.h:207
constexpr uint32_t FSEG_ARR_OFFSET
Definition: fsp0fsp.h:200
byte xdes_t
Definition: fsp0fsp.h:75
constexpr uint32_t FSP_FREE_ADD
This many free extents are added to the free list from above FSP_FREE_LIMIT at a time.
Definition: fsp0fsp.h:176
constexpr uint32_t FSP_NOT_USED
this field contained a value up to which we know that the modifications in the database have been flu...
Definition: fsp0fsp.h:138
constexpr uint32_t FSP_SEG_INODES_FREE
list of pages containing segment headers, where not all the segment header slots are reserved
Definition: fsp0fsp.h:168
constexpr uint32_t FSP_FRAG_N_USED
number of used pages in the FSP_FREE_FRAG list
Definition: fsp0fsp.h:150
std::vector< space_id_t > flag_mismatch_spaces
Definition: fsp0fsp.cc:85
constexpr uint32_t FSP_SDI_HEADER_LEN
The number of bytes required to store SDI root page number(4) and SDI version(4) at Page 0.
Definition: fsp0fsp.h:71
constexpr uint32_t FSP_SPACE_ID
space id
Definition: fsp0fsp.h:135
constexpr uint32_t FSP_SEG_INODES_FULL
list of pages containing segment headers, where all the segment inode slots are reserved
Definition: fsp0fsp.h:164
constexpr uint32_t FSP_SEG_ID
8 bytes which give the first unused segment id
Definition: fsp0fsp.h:160
constexpr uint32_t FSP_FREE
list of free extents
Definition: fsp0fsp.h:152
constexpr uint32_t FSP_FULL_FRAG
list of full extents not belonging to any segment
Definition: fsp0fsp.h:157
bool xdes_state_is_valid(ulint state)
Check if the state of extent descriptor is valid.
Definition: fsp0fsp.cc:457
constexpr uint32_t FSP_HEADER_SIZE
Definition: fsp0fsp.h:172
constexpr uint32_t FSP_HEADER_OFFSET
Offset of the space header within a file page.
Definition: fsp0fsp.h:67
std::ostream & operator<<(std::ostream &out, const xdes_mem_t &obj)
Definition: fsp0fsp.h:96
constexpr uint32_t FSP_FREE_LIMIT
Minimum page number for which the free list has not been initialized: the pages >= this limit are,...
Definition: fsp0fsp.h:146
constexpr uint32_t FSP_SPACE_FLAGS
fsp_space_t.flags, similar to dict_table_t::flags
Definition: fsp0fsp.h:148
constexpr uint32_t FSP_FREE_FRAG
list of partially free extents not belonging to any segment
Definition: fsp0fsp.h:154
byte fsp_header_t
Definition: fsp0fsp.h:74
constexpr uint32_t FSP_SIZE
Current size of the space in pages.
Definition: fsp0fsp.h:140
constexpr uint32_t fsp_is_shared_tablespace(uint32_t flags)
Use an alias in the code for FSP_FLAGS_GET_SHARED()
Definition: fsp0types.h:388
static int flags[50]
Definition: hp_test1.cc:40
static uint32_t mach_read_from_4(const byte *b)
The following function is used to fetch data from 4 consecutive bytes.
static void mach_write_to_4(byte *b, ulint n)
The following function is used to store data in 4 consecutive bytes.
static uint64_t mach_read_from_8(const byte *b)
The following function is used to fetch data from 8 consecutive bytes.
void mlog_write_ulint(byte *ptr, ulint val, mlog_id_t type, mtr_t *mtr)
Writes 1, 2 or 4 bytes to a file page.
Definition: mtr0log.cc:258
#define mtr_memo_contains_page(m, p, t)
Check if memo contains the given page.
Definition: mtr0mtr.h:111
@ MLOG_4BYTES
4 bytes ...
Definition: mtr0types.h:76
@ MTR_MEMO_PAGE_SX_FIX
Definition: mtr0types.h:275
#define DBUG_LOG(keyword, v)
Definition: my_dbug.h:315
#define DBUG_TRACE
Definition: my_dbug.h:146
Instrumentation helpers for conditions.
ABI for instrumented mutexes.
ulong n_pages
Number of pages per doublewrite thread/segment.
Definition: buf0dblwr.cc:83
bool is_encrypted(const String_type &type)
Definition: dd_table.h:422
size_t size(const char *const c)
Definition: base64.h:46
byte page_t
Type of the index page.
Definition: page0types.h:152
Record manager global types.
required uint64 version
Definition: replication_group_member_actions.proto:41
Definition: fsp0fsp.h:1041
Page_alloc_info(space_id_t space_id, const page_size_t &page_size, fseg_header_t *fseg_hdr)
Definition: fsp0fsp.h:1042
fseg_header_t * m_fseg_header
File segment header.
Definition: fsp0fsp.h:1053
page_size_t m_page_size
Page size.
Definition: fsp0fsp.h:1050
space_id_t m_space_id
Tablespace ID.
Definition: fsp0fsp.h:1047
The buffer control block structure.
Definition: buf0buf.h:1747
Tablespace or log data space.
Definition: fil0fil.h:238
In-memory representation of flst_base_node_t.
Definition: fut0lst.h:148
Mini-transaction handle and buffer.
Definition: mtr0mtr.h:177
An instrumented cond structure.
Definition: mysql_cond_bits.h:50
An instrumented mutex structure.
Definition: mysql_mutex_bits.h:50
const xdes_t * m_xdes
Definition: fsp0fsp.h:91
bool is_valid() const
Definition: fsp0fsp.h:868
const char * state_name() const
Definition: fsp0fsp.h:873
xdes_mem_t(const xdes_t *xdes)
Definition: fsp0fsp.h:86
std::ostream & print(std::ostream &out) const
Definition: fsp0fsp.cc:4047
static const space_id_t TRX_SYS_SPACE
Space id of the transaction system page (the system tablespace)
Definition: trx0types.h:52
Version control for database, common definitions, and include files.
uint64_t ib_id_t
The generic InnoDB system object identifier data type.
Definition: univ.i:443
#define UNIV_PAGE_SIZE
The universal page size of the database.
Definition: univ.i:294
#define IF_DEBUG(...)
Definition: univ.i:674
unsigned long int ulint
Definition: univ.i:406
Utilities for byte operations.
#define ut_ad(EXPR)
Debug assertion.
Definition: ut0dbg.h:105