Commit Graph

25 Commits

Author SHA1 Message Date
Devin Doucette
1bbb384300 DDC: Removed the legacy cache implementation from the clients for Horde Storage and Zen
#preflight 62967fd60c151996e13038ec
#rb Zousar.Shaker

[CL 20445538 by Devin Doucette in ue5-main branch]
2022-05-31 22:01:53 -04:00
dan engelbrecht
e4e1ba5527 Allow configuration for separate namespace for structured data
#preflight 628e494382597362d1f8050d
#preflight 628e70d72c7cb2d10d71c033

[CL 20369511 by dan engelbrecht in ue5-main branch]
2022-05-25 14:55:57 -04:00
Devin Doucette
92a888c1f6 Replaced uses of _ASV with ANSITEXTVIEW
#preflight 6266acf50634d0904cdfe91c
#rb Steve.Robb
#rnx

[CL 19903251 by Devin Doucette in ue5-main branch]
2022-04-25 11:31:36 -04:00
Zousar Shaker
03207d24ea Allow OAuth access scope to be configurable for a Horde Storage DDC store. Supplied by partners.
#rb devin.doucette
#rnx
#preflight 623b9723c73745c600c264e6

[CL 19487258 by Zousar Shaker in ue5-main branch]
2022-03-23 18:05:53 -04:00
Matt Peters
9741234c21 HttpCacheStoreTest: Add test to confirm that downloading from Jupiter -> Upstream Zen -> Zen -> Client works.
#rb Zousar.Shaker
#rnx
#preflight 621674780f71e491cc07ee7e

[CL 19095244 by Matt Peters in ue5-main branch]
2022-02-23 13:13:43 -05:00
Zousar Shaker
a0c688d5fd Unshelved from pending changelist '18992789' in UE5/Release-5.0:
Change Zen to  ValueWithLegacyFallback mode now that it handles Value PUTs to Jupiter correctly.  Add Jupiter auto test that ensures a PUT via UE->Zen->UpstreamZen->Jupiter produces something that can be GET from UE<-Jupiter.  Confirmed test passes.

#rb devin.doucette
#jira UE-134381
#lockdown Aurel.Cordonnier
#preflight 620b4e22bb6a072d17cdd6dd

[CL 18998519 by Zousar Shaker in ue5-main branch]
2022-02-15 12:34:29 -05:00
devin doucette
2800210897 DDC: Enabled compression of legacy cache data
- FileSystem, Http, Pak, S3 use the ValueWithLegacyFallback mode by default, which cause them to fall back to searching for uncompressed data if compressed data is not found.
- FileSystem has been fixed to store up to 1 MiB of compressed data inline with the value package rather than separately in content-addressable storage.
- Pak has been optimized to have GetChunks only load the required region of the requested value, rather than the whole value.
- Pak has been changed to stop storing data inline in the record package, since it will end up in the same file anyway when stored separately.
- Pak will upgrade the compressor and compression level when a compressed pak file is requested. Default cache compression uses Oodle Mermaid VeryFast and will upgrade to Oodle Kraken Optimal2.
- Zen does not have compression enabled by default, pending deployment of a new version that stores compressed values to Horde Storage.
- Added a missing request barrier when saving uncompressed data as compressed.

Example reduction in file system cache size when cooking for Windows:
- CitySample dropped from 66.5 GiB to 21.8 GiB.
- Lyra dropped from 2.54 GiB to 672 MiB.
- ShooterGame dropped from 1.21 GiB to 380 MiB.

Example reduction in compressed pak file cache size when cooking for Windows:
- CitySample dropped from 22.3 GiB to 18.5 GiB.
- Lyra dropped from 691 MiB to 543 MiB.
- ShooterGame dropped from 387 MiB to 313 MiB.

#jira UE-134381
#preflight 620a703f583261b0a658e043, 620a6fb2803d9066e6805310, 620a733117632e948459b6af
#lockdown Aurel.Cordonnier
#rb Zousar.Shaker

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18983671 in //UE5/Release-5.0/... via CL 18983890 via CL 18984096
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)

[CL 18984126 by devin doucette in ue5-main branch]
2022-02-14 14:43:39 -05:00
zousar shaker
f3b211baa8 Bump CacheStoreTest version as the AWS file share has had some test values put into it that are expected not to exist, meaning that the test always fails when using AWS as the shared cache.
#rb matt.peters
#jira UE-141632
#preflight 6206deaec663666c89b2df53
#lockdown aurel.cordonnier

#ROBOMERGE-AUTHOR: zousar.shaker
#ROBOMERGE-SOURCE: CL 18963345 in //UE5/Release-5.0/... via CL 18963931 via CL 18964734
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)

[CL 18964750 by zousar shaker in ue5-main branch]
2022-02-11 18:17:49 -05:00
zousar shaker
2903c5331f Fix static analysis error in CacheStoreTest.cpp.
#rb matt.peters
#jira UE-141032
#lockdown aurel.cordonnier
#preflight 61fc4d11e058822bdaaaefcb

#ROBOMERGE-AUTHOR: zousar.shaker
#ROBOMERGE-SOURCE: CL 18853180 in //UE5/Release-5.0/... via CL 18853206 via CL 18853946
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18853959 by zousar shaker in ue5-main branch]
2022-02-03 17:43:34 -05:00
matt peters
f2eed1a838 CacheStoreTest: Add a test case that catches ValuePolicies being parsed correctly.
#rb Zousar.Shaker
#rnx
#preflight 61f98f024404d5fadefb1c0b

#ROBOMERGE-AUTHOR: matt.peters
#ROBOMERGE-SOURCE: CL 18813550 in //UE5/Release-5.0/... via CL 18813562 via CL 18822761
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18824293 by matt peters in ue5-main branch]
2022-02-02 07:35:30 -05:00
zousar shaker
c6907b8736 Implement DDC2 Value API for Jupiter backend.
#rb devin.doucette
#preflight 61f98cc6db42673a6008471b

#ROBOMERGE-AUTHOR: zousar.shaker
#ROBOMERGE-SOURCE: CL 18813356 in //UE5/Release-5.0/... via CL 18813377 via CL 18822759
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18824291 by zousar shaker in ue5-main branch]
2022-02-02 07:35:19 -05:00
matt peters
c98e98aa5f ZenServer CachePolicy support.
Add batched Put and PutValue.
Update Batched Get to send the RecordPolicy with each key.
Update GetChunks to send the CachePolicy as string and to handle SkipData in the response.
Add more unit tests  for upstream behavior and GetChunks.
Update the CacheRecordPolicy Save/Load to match the new variable names on FCacheRecordPolicy.
Deploy new zenserver binaries with the required matching server-side changes.

#rb Per.Larsson,Devin.Doucette
#rnx
#preflight 61f94e5980608c7029b8fc5c

#ROBOMERGE-AUTHOR: matt.peters
#ROBOMERGE-SOURCE: CL 18808743 in //UE5/Release-5.0/... via CL 18809399 via CL 18822531
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v908-18788545)

[CL 18823289 by matt peters in ue5-main branch]
2022-02-02 05:33:16 -05:00
matt peters
e5f3189632 Fix static analysis warnings: possible dereference of null. The analyzer did not know that TestTrue only returns true if its argument is true.
#rb None, Trivial
#rnx
#preflight 61e63a95152881f71ca46584

#ROBOMERGE-AUTHOR: matt.peters
#ROBOMERGE-SOURCE: CL 18636517 in //UE5/Release-5.0/... via CL 18636520 via CL 18636526
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18637604 by matt peters in ue5-main branch]
2022-01-18 04:49:53 -05:00
devin doucette
6ab080890c DDC: Renamed cache request and response types from Chunk to GetChunk
#rb Zousar.Shaker
#rnx
#preflight 61e5ec410705ece855b8da74

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18635634 in //UE5/Release-5.0/... via CL 18635654 via CL 18635655
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18637582 by devin doucette in ue5-main branch]
2022-01-18 04:47:59 -05:00
matt peters
8a97cfb316 DDC/ZenDerivedDataBackend: Implement PutValue,GetValue API.
#rb Devin.Doucette
#rnx
#preflight 61e5a25d006b17a686689f5d

#ROBOMERGE-AUTHOR: matt.peters
#ROBOMERGE-SOURCE: CL 18634003 in //UE5/Release-5.0/... via CL 18634012 via CL 18634018
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18637414 by matt peters in ue5-main branch]
2022-01-18 04:34:10 -05:00
zousar shaker
a455cb734d Ensure Jupiter DDC backend implements GetChunks in a functionally correct way.
Fix erroneous logging in Jupiter DDC backend when a cache record was missed.
Fix breakage in Jupiter DDC backend automated test caused by the header re-org.
Add GetChunks tests to Jupiter DDC backend automated test and increase the size and  byte variety for values in the test content.

#rb devin.doucette
#preflight 61e19ae5076be0fc4e128941

#ROBOMERGE-AUTHOR: zousar.shaker
#ROBOMERGE-SOURCE: CL 18618080 in //UE5/Release-5.0/... via CL 18618090 via CL 18618106
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18618116 by zousar shaker in ue5-main branch]
2022-01-14 10:53:17 -05:00
devin doucette
394fd0642b DDC: Made the backend namespaces consistent in advance of introducing ILegacyCacheStore
#rb Zousar.Shaker
#rnx
#preflight 61e04880250b9537f77549d7

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18597466 in //UE5/Release-5.0/... via CL 18597469 via CL 18597485
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18597488 by devin doucette in ue5-main branch]
2022-01-13 11:09:29 -05:00
devin doucette
b46e70ea4e DDC: Rename CompleteParams to Response and use FSharedString with no alias
#rb Zousar.Shaker
#rnx
#preflight 61ddf9e0f10add4574e6cf59

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18577467 in //UE5/Release-5.0/... via CL 18577471
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18577481 by devin doucette in ue5-release-engine-test branch]
2022-01-11 17:09:20 -05:00
devin doucette
23ddaa8bab DDC: Moved cache backends out of headers
This hides implementation details and reduces the number of files that need to change when refactoring backends.

Backends moved in this change: AsyncPut, Http, Memory, S3, Zen.

#rb Zousar.Shaker
#rnx
#preflight 61dd0d758d72a407aab89074

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18573340 in //UE5/Release-5.0/... via CL 18573347
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18573359 by devin doucette in ue5-release-engine-test branch]
2022-01-11 11:57:38 -05:00
zousar shaker
831400efc2 Add support for structured cache operations through the Jupiter DDC backend.
#rb devin.doucette
#preflight 61dc76dc2d5fd64ff7d4d4e8

#ROBOMERGE-AUTHOR: zousar.shaker
#ROBOMERGE-SOURCE: CL 18562740 in //UE5/Release-5.0/... via CL 18562761
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18562791 by zousar shaker in ue5-release-engine-test branch]
2022-01-10 13:43:40 -05:00
francis hurteau
86b3fd8de8 Refix crash in http request batch when the batch contains both a head and get request for the same cache keys
Added a test that could reliably reproduce the problem to validate it is properly fixed

#rb Danny.Couture, Zousar.Shaker
#preflight 610010b247c93a0001335319

#ROBOMERGE-OWNER: francis.hurteau
#ROBOMERGE-AUTHOR: francis.hurteau
#ROBOMERGE-SOURCE: CL 16968978 via CL 16972104
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16972120 by francis hurteau in ue5-release-engine-test branch]
2021-07-27 15:25:39 -04:00
danny couture
950c53fc2b Fix thread starvation for request in http backend by using a FIFO for thread waiting for a connection to be freed
Replace the sleep by a wait on an event triggered by the thread freeing the connection
Improve the test to output stats seen below and use the proper amount of threads on low core systems

Automation RunTests System.DerivedDataCache.HttpDerivedDataBackend.ConcurrentCachedDataProbablyExistsBatch

Before
   RPS: 238, AvgLatency: 90.09 ms, MaxLatency: 7.77 s
   RPS: 231, AvgLatency: 87.66 ms, MaxLatency: 7.77 s
   RPS: 245, AvgLatency: 139.07 ms, MaxLatency: 10.08 s

After
   RPS: 634, AvgLatency: 102.97 ms, MaxLatency: 0.26 s
   RPS: 653, AvgLatency: 102.51 ms, MaxLatency: 0.26 s
   RPS: 630, AvgLatency: 102.29 ms, MaxLatency: 0.26 s

#rnx
#rb Zousar.Shaker, Francis.Hurteau
#preflight 60ffe8317f21c90001f6116a

#ROBOMERGE-SOURCE: CL 16968010 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16968015 by danny couture in ue5-release-engine-test branch]
2021-07-27 09:26:42 -04:00
francis hurteau
6862e14c30 Undo changelist 16938823 until investigation of cook failures are done
[FYI] Zousar.Shaker
#rb trivial
#preflight skip
discussed with Zoursar.Shaker, undo to fix cook failure

#ROBOMERGE-SOURCE: CL 16941401 via CL 16941404
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16941410 by francis hurteau in ue5-release-engine-test branch]
2021-07-23 16:16:35 -04:00
francis hurteau
d7677fba02 Fix crash in http request batch when the batch contains both a head and get request for the same cache keys
Added a test that could reliably reproduce the problem to validate it is properly fixed
#preflight 60faeafc1f926d000113425b

#ROBOMERGE-SOURCE: CL 16938823 via CL 16938832
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16938835 by francis hurteau in ue5-release-engine-test branch]
2021-07-23 13:15:05 -04:00
zousar shaker
1a835cd2c6 Fix bug where queued batch request failure in HttpDerivedDataBackend would cause incorrect DDC output (erroneous cache misses).
Adding basic unit test for HttpDerivedDataBackend.

#rb devin.doucette

#ROBOMERGE-SOURCE: CL 16885295 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16885298 by zousar shaker in ue5-release-engine-test branch]
2021-07-19 13:09:47 -04:00