Object cache: zstd compression #713
Labels
No labels
amd
avatars
bug
builder
cannot-reproduce
crash
epic
feature
from-viewer
gl-removal
known-limitation
monitoring
parity
perf
platform
priority
critical
priority
high
priority
low
priority
medium
provenance
rendering
rt
status
in-progress
status
testing
status
up-next
triage
ui
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sky_line/Slipstream#713
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Part of #715 (cache rewrite epic).
Per-region object cache files compress ~3x at zstd-3 (7.4 MB -> 2.4 MB, decompress ~2.7 GB/s). Region-entry read on a laptop HDD ~90 -> ~45 ms, desktop HDD ~55 -> ~25 ms, SATA SSD 13 -> 8 ms. Versioned header so old files are read or discarded cleanly.
Interface audit (step 1 of #715): the object cache keeps its files and gets only the codec.
Touches
objects_<x>_<y>.slcandobjects_<x>_<y>_extras.slecper region inobjectcache/serialize_object_cache(main thread) -> :1851writeToCache-> I/O thread writes.tmp,LLFile::replace(#528)read_object_cache_file, :1572read_extras_cache_file(I/O thread), :1662readFromCacheAsync, results viadrainCompletions(#568)object.cacheheader:HeaderMetaInfo {version 18, address size}+ 128HeaderEntryInfo; version mismatch removes the whole cache (:1114-1124).slctoday = region UUID (16 B) + entry count (S32) + entries. There is no magic and no whole-file checksum; validity comes from the UUID match, per-entry decode and size checks.Slice of the interface
Only
LLCache::Codec(the store library's byte codec, #710). LLVOCache does not join the segment store (per #708).postIOjob), so the main-thread serialize cost does not grow.ObjectCacheCompression(on by default). Off = write IDENTITY with the same header.Drop-in plan
Depends only on the codec + zstd package (#710 step 0-1), not on the segment store, so it can land any time. Measure region-entry read time on HDD / SATA SSD before and after (ticket numbers: 7.4 -> 2.4 MB, ~90 -> ~45 ms laptop HDD).