| Class | Innodb::Page::FspHdrXdes |
| In: |
lib/innodb/page/fsp_hdr_xdes.rb
|
| Parent: | Innodb::Page |
A specialized class for FSP_HDR (filespace header) and XDES (extent descriptor) page types. Each tablespace always has an FSP_HDR page as its first page (page 0), and has repeating XDES pages every 16,384 pages after that (page 16384, 32768, …). The FSP_HDR and XDES page structure is completely identical, with the exception that the FSP header structure is zero-filled on XDES pages, but populated on FSP_HDR pages.
The basic structure of FSP_HDR and XDES pages is: FIL header, FSP header, an array of 256 XDES entries, empty (unused) space, and FIL trailer.
| FLAGS_PAGE_SIZE_SHIFT | = | 9 | A value added to the adjusted exponent stored in the page size field of the flags in the FSP header. |
Decode the "flags" field in the FSP header, returning a hash of useful decodings of the flags (based on MySQl 5.6 definitions). The flags are:
Offset Size Description 0 1 Post-Antelope Flag. 1 4 Compressed Page Size (zip_size). This is stored as a
power of 2, minus 9. Since 0 is reserved to mean "not
compressed", the minimum value is 1, thus making the
smallest page size 1024 (2 ** (9 + 1)).
5 1 Atomic Blobs Flag. 6 4 System Page Size (innodb_page_size, UNIV_PAGE_SIZE).
The setting of the system page size when the tablespace
was created, stored in the same format as the compressed
page size above.
10 1 Data Directory Flag.
Iterate through all XDES entries in order. This is useful for debugging, but each of these entries is actually a node in some other list. The state field in the XDES entry indicates which type of list it is present in, although not necessarily which list (e.g. :fseg).
Read the FSP (filespace) header, which contains a few counters and flags, as well as list base nodes for each list maintained in the filespace.