page4
HAMMER Media Layout - B-Tree
PARENT ZOFF
MIRROR TID
ELM0
ELM1
ELM2
ELM62
BASE
MIRROR TID
SUBTREE ZOFF
BASE
DATA ZOFF
DATA LEN
DATA CRC
16:PFS ID
16:LOCALIZATION
64:OBJ_ID
64:KEY
64:CREATE_TID
[64:DELETE_TID]
16:REC_TYPE
08:OBJ_TYPE
08:BTYPE ('L', 'I', 'R')
B-Tree Node (4K)
Internal Element
Leaf Element
63-Way B-Tree, fat 64-byte B-Tree elements for now, with large keys.
Used to index EVERYTHING. Inodes, directory entries, data blocks, etc.
MIRROR_TID used solely to support incremental mirroring streams.
Localization groups B-Tree elements and related data, e.g. inodes vs file data.
Both Left and Right-hand bounds for internal nodes (ELM63 does not recurse)
Searches complicated by CREATE_TID.
Insertion, Deletion, Update cases – DELETE_TID and snapshot access.