|
Monero
|
Classes | |
| union | [union].mp_p |
| union | [union].mp_pb |
Public Attributes | |
| union | mp_p |
| uint16_t | mp_pad |
| uint16_t | mp_flags |
| union | mp_pb |
| indx_t | mp_ptrs [1] |
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.
| uint16_t MDB_page::mp_flags |
| union MDB_page::[union].mp_p MDB_page::mp_p |
| uint16_t MDB_page::mp_pad |
key size if this is a LEAF2 page
| union MDB_page::[union].mp_pb MDB_page::mp_pb |
| indx_t MDB_page::mp_ptrs[1] |
dynamic size