Version 10.0.0
Data File Format (Architecture Guide)
Data StructuresSource Location
WT_CELLsrc/include/block.h
src/include/btmem.h
src/include/cell.h
src/include/cell_inline.h
src/reconcile/rec_col.c
src/reconcile/rec_row.c

The format of the WiredTiger data file is given by structures in block.h , defining the overall structure of the file and its blocks. The WT_BLOCK_DESC starts the file. Following that, individual pages appear, each with a WT_PAGE_HEADER defined in btmem.h and a WT_BLOCK_HEADER defined in block.h . Individual cells then sequentially appear as defined in cell.h . Each cell encodes a key or value. Ordering is important, values are all associated with the key that precedes them. Multiple values may be present, which can represent multiple versions. Extremely large values may be represented as a reference to another page.

The exact encoding is rather complex, and beyond what can be described here. The encoding strikes a balance between data that can be compacted efficiently in time and space, extensibility, and compatibility with previous versions.