Monero
Loading...
Searching...
No Matches
MDB_page Struct Reference
Collaboration diagram for MDB_page:

Public Attributes

union { 
   pgno_t   p_pgno 
   struct MDB_page *   p_next 
mp_p
uint16_t mp_pad
uint16_t mp_flags
union { 
   struct { 
      indx_t   pb_lower 
      indx_t   pb_upper 
   }   pb
   uint32_t   pb_pages 
mp_pb
indx_t mp_ptrs [1]

Detailed Description

Common header for all page types. The page type depends on mp_flags.

P_BRANCH and P_LEAF pages have unsorted 'MDB_node's at the end, with sorted mp_ptrs[] entries referring to them. Exception: P_LEAF2 pages omit mp_ptrs and pack sorted MDB_DUPFIXED values after the page header.

P_OVERFLOW records occupy one or more contiguous pages where only the first has a page header. They hold the real data of F_BIGDATA nodes.

P_SUBP sub-pages are small leaf "pages" with duplicate data. A node with flag F_DUPDATA but not F_SUBDATA contains a sub-page. (Duplicate data can also go in sub-databases, which use normal pages.)

P_META pages contain MDB_meta, the start point of an LMDB snapshot.

Each non-metapage up to MDB_meta.mm_last_pg is reachable exactly once in the snapshot: Either used by a database or listed in a freeDB record.

Member Data Documentation

◆ mp_flags

uint16_t MDB_page::mp_flags

◆ [union]

union { ... } MDB_page::mp_p

◆ mp_pad

uint16_t MDB_page::mp_pad

key size if this is a LEAF2 page

◆ [union]

union { ... } MDB_page::mp_pb

◆ mp_ptrs

indx_t MDB_page::mp_ptrs[1]

dynamic size

◆ p_next

struct MDB_page* MDB_page::p_next

for in-memory list of freed pages

◆ p_pgno

pgno_t MDB_page::p_pgno

page number

◆ [struct]

struct { ... } MDB_page::pb

◆ pb_lower

indx_t MDB_page::pb_lower

lower bound of free space

◆ pb_pages

uint32_t MDB_page::pb_pages

number of overflow pages

◆ pb_upper

indx_t MDB_page::pb_upper

upper bound of free space


The documentation for this struct was generated from the following file: