- Construct an empty hierarchy first and populate it as the graph is parsed.
- Record the need for async and verify nodes, and create them only at the end.
- Extract parsing of debug options including throttling into the cache store owner.
- Expose the cache store owner to the cache store parsing/creation functions.
- Remove the unused speed class debug option.
#preflight 64777c254b0d5a1eb157ac8b
#rb Joe.Pribele
#rnx
[CL 25713242 by devin doucette in ue5-main branch]
[FYI] Devin.Doucette
Original CL Desc
-----------------------------------------------------------------
DDC: Moved file system cache store configuration into the file system cache store
#rb Zousar.Shaker
#rnx
[CL 25482846 by zousar shaker in ue5-main branch]
This allows a cache to be kept in the hierarchy solely to ensure that it is cleaned up as its contents expire. Maintenance has been improved to delete more empty folders and to count every scanned folder.
#preflight 6363370154471d10be395619
#rb Zousar.Shaker
[CL 22953493 by Devin Doucette in ue5-main branch]
It is disabled by default outside of Epic, and can be enabled by configuring the Default key in the StorageServers section of the Engine config.
#rb Zousar.Shaker
[CL 22836839 by devin doucette in ue5-main branch]
A cache replay can be created from any program that uses the cache, and can be replayed through any cache graph in any program that uses the cache.
Save a cache replay by adding -DDC-ReplaySave=PathToReplay.ddr to the command line, and compress when saving by adding -DDC-ReplayCompress to reduce replay size by approximately 85%.
Load a cache replay by adding -DDC-ReplayLoad=PathToReplay.ddr to the command line one or more times.
- Modify the cache priority on loaded replays with -DDC-ReplayLoadPriority=Priority.
- For example, -DDC-ReplayLoadPriority=Lowest will queue replayed requests to execute asynchronously.
- Modify the cache policy on loaded replays with -DDC-ReplayLoadAddPolicy=CachePolicy and -DDC-ReplayLoadRemovePolicy=CachePolicy.
- For example, -DDC-ReplayLoadAddPolicy=SkipData will make the replay prefetch into the cache stores earlier in the cache hierarchy.
- For example, -DDC-ReplayLoadRemovePolicy=QueryLocal will make the replay query only remote cache stores.
Filter save or load operations by combining these arguments:
-DDC-ReplayMethods=Get+GetValue+GetChunks will only process requests of the corresponding methods.
-DDC-ReplayTypes=Type1[[at]Rate1][+Type2[[at]Rate2]...] will only process requests of the corresponding types.
-DDC-ReplayRate=Rate will only process Rate% of the requests that do not match one of the type filters.
-DDC-ReplaySalt=Salt configures the salt used to filter by type and rate, which makes them match consistently between sessions instead of being random.
Load a cache replay with the console command: DDC.LoadReplay ReplayPath [Priority=PriorityName]
#jira UE-144410
#rb Zousar.Shaker
#ROBOMERGE-OWNER: devin.doucette
#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 20741874 via CL 20745226 via CL 20745737
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v970-20704180)
[CL 20751395 by devin doucette in ue5-main branch]