Cache store: migration from the current caches + inspect/dump tool #714
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#714
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).
Interface audit (step 1 of #715): what migration reads from each old cache, and the tool's hooks.
Sources (counts from #708 / #705)
texturecache/, 42.9k textures, 11.0 GB)texture.entries+texture.cache+[0-f]/<uuid>.texturetexture.cache[idx*600 .. +min(600, size)]+ body file. Meta =mImageSize; access time =mTime->prev_session_access. Skip entries whose body size disagrees (the old validation, lltexturecache.cpp:1960).gputex/, 29.6k files, 8.2 GB)<uuid>_<w>x<h>_e_l_v[_mask].gtxparse_name(llgputexcache.cpp:137) gives the key + meta. Verify likerun_read(:252). Rebuildable, so delete it instead if import is not worth it (measure).cache/, 265k files)sl_cache_<uuid>_0.assetcache/)InCacheflags. Anything unparseable is dropped (refetchable).clusterlod/), if it joins.clodSounds (
.dsf) and the object cache stay files and need no migration (the object cache reads its old files, #713).Slice of the interface
Store::beginStaged(kind)->append->commit(key, meta, flags)at LOW priority, plus a meta field for the imported access time.setDiskReserve(#711): import one old file, then delete it, so peak extra disk use is one segment.slcachetool):Store::stats()(segments, live %, bytes written per day),forEach(kind)to list,verifyAll(), extract a record by key to a file, and a hex/meta dump of one record.Drop-in plan
One importer per store consumer, landing with that consumer: GPU-ready first (or plain delete), J2C with the J2C adapter, assets + mesh split with the asset adapter. The tool lands with the store core because #708's tests and debugging need it.
Fixed in 1.4.1 (
89cb2d5abf). Reopen if you still see it.