MySQL 8.0.40
Source Code Documentation
Segment Inode Constants (moved from fsp0fsp.c)

Macros

#define FSEG_FRAG_ARR_N_SLOTS   (FSP_EXTENT_SIZE / 2)
 
#define FSEG_INODE_SIZE    (16 + 3 * FLST_BASE_NODE_SIZE + FSEG_FRAG_ARR_N_SLOTS * FSEG_FRAG_SLOT_SIZE)
 
#define FSEG_FRAG_LIMIT   FSEG_FRAG_ARR_N_SLOTS
 

Typedefs

typedef byte fseg_inode_t
 

Functions

static uint32_t FSP_SEG_INODES_PER_PAGE (page_size_t page_size)
 

Variables

constexpr uint32_t FSEG_INODE_PAGE_NODE = FSEG_PAGE_DATA
 
constexpr uint32_t FSEG_ARR_OFFSET = FSEG_PAGE_DATA + FLST_NODE_SIZE
 
constexpr uint32_t FSEG_ID = 0
 
constexpr uint32_t FSEG_NOT_FULL_N_USED = 8
 number of used segment pages in the FSEG_NOT_FULL list More...
 
constexpr uint32_t FSEG_FREE = 12
 list of free extents of this segment More...
 
constexpr uint32_t FSEG_NOT_FULL = 12 + FLST_BASE_NODE_SIZE
 list of partially free extents More...
 
constexpr uint32_t FSEG_FULL = 12 + 2 * FLST_BASE_NODE_SIZE
 list of full extents More...
 
constexpr uint32_t FSEG_MAGIC_N = 12 + 3 * FLST_BASE_NODE_SIZE
 magic number used in debugging More...
 
constexpr uint32_t FSEG_FRAG_ARR = 16 + 3 * FLST_BASE_NODE_SIZE
 array of individual pages belonging to this segment in fsp fragment extent lists More...
 
constexpr uint32_t FSEG_FRAG_SLOT_SIZE = 4
 a fragment page slot contains its page number within space, FIL_NULL means that the slot is not in use More...
 
constexpr uint32_t FSEG_MAGIC_N_VALUE = 97937874
 
double fseg_reserve_pct
 The segment_reserve_factor is the ratio x/y expressed in percentage, where x is the number of free pages in the segment, and y is the total number of pages in the segment. More...
 
constexpr double FSEG_RESERVE_PCT_DFLT = 12.50
 
constexpr double FSEG_RESERVE_PCT_MIN = 0.03
 
constexpr double FSEG_RESERVE_PCT_MAX = 40.00
 
constexpr uint32_t FSEG_FREE_LIST_LIMIT = 40
 If the reserved size of a segment is at least this many extents, we allow extents to be put to the free list of the extent: at most FSEG_FREE_LIST_MAX_LEN many. More...
 
constexpr uint32_t FSEG_FREE_LIST_MAX_LEN = 4
 

Detailed Description

Macro Definition Documentation

◆ FSEG_FRAG_ARR_N_SLOTS

#define FSEG_FRAG_ARR_N_SLOTS   (FSP_EXTENT_SIZE / 2)

◆ FSEG_FRAG_LIMIT

#define FSEG_FRAG_LIMIT   FSEG_FRAG_ARR_N_SLOTS

◆ FSEG_INODE_SIZE

#define FSEG_INODE_SIZE    (16 + 3 * FLST_BASE_NODE_SIZE + FSEG_FRAG_ARR_N_SLOTS * FSEG_FRAG_SLOT_SIZE)

Typedef Documentation

◆ fseg_inode_t

typedef byte fseg_inode_t

Function Documentation

◆ FSP_SEG_INODES_PER_PAGE()

static uint32_t FSP_SEG_INODES_PER_PAGE ( page_size_t  page_size)
inlinestatic

Variable Documentation

◆ FSEG_ARR_OFFSET

constexpr uint32_t FSEG_ARR_OFFSET = FSEG_PAGE_DATA + FLST_NODE_SIZE
constexpr

◆ FSEG_FRAG_ARR

constexpr uint32_t FSEG_FRAG_ARR = 16 + 3 * FLST_BASE_NODE_SIZE
constexpr

array of individual pages belonging to this segment in fsp fragment extent lists

◆ FSEG_FRAG_SLOT_SIZE

constexpr uint32_t FSEG_FRAG_SLOT_SIZE = 4
constexpr

a fragment page slot contains its page number within space, FIL_NULL means that the slot is not in use

◆ FSEG_FREE

constexpr uint32_t FSEG_FREE = 12
constexpr

list of free extents of this segment

◆ FSEG_FREE_LIST_LIMIT

constexpr uint32_t FSEG_FREE_LIST_LIMIT = 40
constexpr

If the reserved size of a segment is at least this many extents, we allow extents to be put to the free list of the extent: at most FSEG_FREE_LIST_MAX_LEN many.

◆ FSEG_FREE_LIST_MAX_LEN

constexpr uint32_t FSEG_FREE_LIST_MAX_LEN = 4
constexpr

◆ FSEG_FULL

constexpr uint32_t FSEG_FULL = 12 + 2 * FLST_BASE_NODE_SIZE
constexpr

list of full extents

◆ FSEG_ID

constexpr uint32_t FSEG_ID = 0
constexpr

◆ FSEG_INODE_PAGE_NODE

constexpr uint32_t FSEG_INODE_PAGE_NODE = FSEG_PAGE_DATA
constexpr

◆ FSEG_MAGIC_N

constexpr uint32_t FSEG_MAGIC_N = 12 + 3 * FLST_BASE_NODE_SIZE
constexpr

magic number used in debugging

◆ FSEG_MAGIC_N_VALUE

constexpr uint32_t FSEG_MAGIC_N_VALUE = 97937874
constexpr

◆ FSEG_NOT_FULL

constexpr uint32_t FSEG_NOT_FULL = 12 + FLST_BASE_NODE_SIZE
constexpr

list of partially free extents

◆ FSEG_NOT_FULL_N_USED

constexpr uint32_t FSEG_NOT_FULL_N_USED = 8
constexpr

number of used segment pages in the FSEG_NOT_FULL list

◆ fseg_reserve_pct

double fseg_reserve_pct
extern

The segment_reserve_factor is the ratio x/y expressed in percentage, where x is the number of free pages in the segment, and y is the total number of pages in the segment.

The number of used pages in the segment is given by (y-x). The number of free pages in the segment (x) will be maintained such that the actual segment_reserve_factor will be >= the requested segment_reserve_factor, which is contained in this variable.

◆ FSEG_RESERVE_PCT_DFLT

constexpr double FSEG_RESERVE_PCT_DFLT = 12.50
constexpr

◆ FSEG_RESERVE_PCT_MAX

constexpr double FSEG_RESERVE_PCT_MAX = 40.00
constexpr

◆ FSEG_RESERVE_PCT_MIN

constexpr double FSEG_RESERVE_PCT_MIN = 0.03
constexpr