Switch Zen cache store to use the HTTP request codepath in the Jupiter cache store while taking some of the improvements that had been made when that code was branched off to make the Zen HTTP codepath. This is a precursor for getting Zen cache store using non-blocking operations like Jupiter cache store - this has started to be stubbed in with the EnqueueAsyncRpc methods that are stubbed in but not used from the Zen cache store. Eventually I'd like this HTTP code to move out of the DerivedDataCache module and be usable elsewhere and supplant the HTTP code currently in the Zen module, but this will require some decisions about whether IRequestOwner should move out of the DerivedDataCache module or not.
Tested Zen operation using ShooterGame editor.
Tested Jupiter operation using CitySample editor (empty local cache).
#rb devin.doucette
#fyi stefan.boberg
#preflight 62953e65401169f78c57c298
#preflight 629642a1be0ae0b33a46d012
[CL 20438549 by Zousar Shaker in ue5-main branch]
Added Zen Server Stats to Analytics
#rb zousar.shaker, devin.doucette
#jira none
#preflight 6295d84bd57da28cc8ee9eab
[CL 20434901 by mark lintott in ue5-main branch]
#fyi Zousar.Shaker
Original CL Desc
-----------------------------------------------------------------
Switch Zen cache store to use the HTTP request codepath in the Jupiter cache store while taking some of the improvements that had been made when that code was branched off to make the Zen HTTP codepath. This is a precursor for getting Zen cache store using non-blocking operations like Jupiter cache store - this has started to be stubbed in with the EnqueueAsyncRpc methods that are stubbed in but not used from the Zen cache store. Eventually I'd like this HTTP code to move out of the DerivedDataCache module and be usable elsewhere and supplant the HTTP code currently in the Zen module, but this will require some decisions about whether IRequestOwner should move out of the DerivedDataCache module or not.
Tested Zen operation using ShooterGame editor.
Tested Jupiter operation using CitySample editor (empty local cache).
#rb devin.doucette
#fyi stefan.boberg
#preflight 62953e65401169f78c57c298
[CL 20433363 by Zousar Shaker in ue5-main branch]
Tested Zen operation using ShooterGame editor.
Tested Jupiter operation using CitySample editor (empty local cache).
#rb devin.doucette
#fyi stefan.boberg
#preflight 62953e65401169f78c57c298
[CL 20433163 by Zousar Shaker in ue5-main branch]
Separate re-usable HTTP types from the HttpCacheStore to allow for re-use in the future by other cache stores.
#rb devin.doucette
#rnx
#preflight 62841cbdf536779152dfc561
[CL 20260417 by Zousar Shaker in ue5-main branch]
#fyi Zousar.Shaker
Original CL Desc
-----------------------------------------------------------------
Separate re-usable HTTP types from the HttpCacheStore to allow for re-use in the future by other cache stores.
#rb devin.doucette
#rnx
#preflight 62841cbdf536779152dfc561
[CL 20254560 by Zousar Shaker in ue5-main branch]
FHttpSharedData is no longer constructed as a function-local static because that makes shutdown more difficult to handle correctly. The cache store now owns the shared data and destroys it when it shuts down.
Includes greater encapsulation of the shared data and migration from FRunnable/FRunnableThread to FThread.
#preflight 627aad2bc42338be65272366
#rb Zousar.Shaker
#rnx
[CL 20138109 by Devin Doucette in ue5-main branch]
#fyi Zousar.Shaker
Original CL Desc
-----------------------------------------------------------------
Limit concurrent connections when using the Curl multi API for Jupiter DDC operations.
#rb devin.doucette
#preflight 627040b4645c64f3a25a14ca
#preflight 62716d2c9d6c2f8f5b2558f2
[CL 20057204 by Zousar Shaker in ue5-main branch]
In the examples below, <Node> is the name of a node in the cache store graph, or All to apply to every node.
-DDC-<Node>-MissTypes=StaticMesh+Texture will simulate a miss on every access to to static mesh and texture keys.
-DDC-<Node>-MissTypes=StaticMesh@12.5+Texture will simulate misses on 12.5% of accesses to static mesh keys and every access to texture keys.
-DDC-<Node>-MissRate=5 -DDC-<Node>-MissTypes=Texture will simulate misses on every access to texture keys and 5% of other keys.
-DDC-<Node>-MissRate=5 will simulate misses on 5% of keys.
-DDC-<Node>-MissSalt=PositiveInt32 will set the salt used to match keys to simulate misses on. A key always has the same simulated miss behavior with the same salt.
#preflight 6244d102b33098a72dc136df
#rb Zousar.Shaker
[CL 19572200 by Devin Doucette in ue5-main branch]
This would manifest as a cache entry being deemed to "exist", but later when you attempt to fetch it, it would not exist.
#rb devin.doucette
[FYI] joakim.lindqvist
#jira UE-145701
#lockdown simon.tourangeau
#preflight 6231f8866e25767a2189e99a
#ROBOMERGE-AUTHOR: zousar.shaker
#ROBOMERGE-SOURCE: CL 19407779 in //UE5/Release-5.0/... via CL 19408966
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19409941 by zousar shaker in ue5-main branch]