-
Type:
Improvement
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Statistics
-
Storage Engines, Storage Engines - Foundations
-
534.38
-
None
-
None
Investigations from two different sources, BF-44448 and a the logical size project work have both identifed inefficiencies / bugs in the stat cursor fast path for disagg.
Ideally a user provides "statistics:size" alongside a URI and WiredTiger will fetch the size from the metadata, however if it finds a zero size it then opens the dhandle and fetches the size from the dhandle, which fetches the size from the metadata...
The contract perhaps needs reinforcing, but if both paths end up in the metadata file then we should simply never take the slow path and return 0 to the caller. Alternatively if the ident does not yet exist a ENOENT error is ideal.
The open question that I can see is, when if ever can the size be zero in the metadata?And is this a case we care about? I can think of potentially two cases:
- Fake checkpoints, zero might not be correct here?
- An empty root checkpoint, in which case zero is correct
This impacts the dhandle scalability work and should be worked on as priority, but any changes made here to the contract will impact the database size work, and by extension the logical size work and should be made carefully...
- blocks
-
WT-18277 Fix memory leak in __ckpt_load
-
- Closed
-
- is depended on by
-
SERVER-131714 Deduplicate index size computation for logical size
-
- Backlog
-
- is related to
-
WT-17093 Redefine the rules of checkpoint order for fake checkpoint
-
- Open
-
-
WT-18039 Enable the check of WT-18036 in production
-
- Open
-
- related to
-
WT-17300 __curstat_size_only fast path incorrectly propagates ENOENT instead of falling back to slow path
-
- Closed
-
-
WT-18129 Fix statistics=(size) fast path for layered table URIs
-
- Closed
-
-
WT-18277 Fix memory leak in __ckpt_load
-
- Closed
-