-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Storage Engines - Persistence
-
255.969
-
None
-
None
Problem
A page below leaf_page_max does not necessarily contain unused allocated disk space. WiredTiger writes packed, variable-sized images, so page underfill and physical allocation padding need separate measurements.
Proposed change
Add two measurements to the live B-tree statistics walk:
- Occupancy: serialized leaf-image sizes before block compression, grouped below, near and above the configured page-size target. Include page counts and byte totals; oversized inline values are valid.
- Padding: rounded physical allocation length minus encoded block length, including headers and compression/encryption overhead.
Start with current persisted row-store leaf images. Report analysed and skipped pages separately for each measurement. Keep obsolete content separate from padding; neither occupancy nor padding alone predicts reclaimable space.
First establish which existing formats expose the encoded length reliably. disk_size - mem_size is not a general padding formula for compressed or encrypted pages. Report unsupported formats explicitly; assess any required on-disk format change separately.
Acceptance criteria
- Tests cover small, near-target and oversized images, plus exact padding at allocation boundaries.
- Compressed/encrypted pages produce validated padding measurements or explicit exclusions.
- Stale images are excluded; unsupported measurements are not reported as zero.
- Document the effect of split_pct on occupancy and measure added walk cost.