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.

Methods

Constants

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.

Public Class methods

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.

Public Instance methods

Dump the contents of a page for debugging purposes.

Iterate through all lists in the file space.

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).

The number of entries in the XDES array. Defined as page size divided by extent size.

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.

The FSP header immediately follows the FIL header.

The XDES entry array immediately follows the FSP header.

The FSP header contains six 32-bit integers, one 64-bit integer, and 5 list base nodes.

[Validate]