Commit Graph

552 Commits

Author SHA1 Message Date
steve robb
33c800a605 TEXT(""_SV) changed to TEXTVIEW("") for UTF-8 support.
#rb trivial

#ROBOMERGE-OWNER: steve.robb
#ROBOMERGE-AUTHOR: steve.robb
#ROBOMERGE-SOURCE: CL 19135062 via CL 19136099 via CL 19136620 via CL 19138526
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19155676 by steve robb in ue5-main branch]
2022-02-25 15:48:16 -05:00
zousar shaker
25249765d9 Avoid wasted time when pulling data from Jupiter by:
1) Increasing connection pool size
2) Allowing DNS and SSL/TLS data to be shared by connections
3) Switching to ValueOnly mode for Jupiter backends by default
4) Using "inline get" feature when querying Value data

Tested:
- .run editor -- -execCmds="Automation RunTests System.DerivedDataCache.HttpDerivedDataBackend.CacheStore;Quit" -NullRHI -stdout -unattended -ddc=DerivedDataBackendGraph_Jupiter
-Launch CitySample editor with empty local cache and open Small_City_LVL
-Launch CitySample editor with hot local cache and open Small_City_LVL

Can be improved further with a batched existence API for refs (instead of blobs).  The current one does not work due to a Jupiter server bug, so this is an improvement that will have to come afterwards.

Note: There is a known issue involving Jupiter where the server will sometimes return uncompressed blobs.  This manifests as cache misses due to invalid/rejected results returned from Jupiter.  The client handles the miss and builds the data and stores it in its local cache but does not upload it to Jupiter (because Jupiter says it already has the blob).  Subsequent runs will not suffer from the issue as the data will be present in the local cache.  There are discussions in progress for how to address this issue on server or client side.  No immediate mitigation is needed for it.

#rb devin.doucette
#jira UE-143616
#lockdown aurel.cordonnier
#preflight


#ROBOMERGE-OWNER: zousar.shaker
#ROBOMERGE-AUTHOR: zousar.shaker
#ROBOMERGE-SOURCE: CL 19104205 via CL 19104462 via CL 19104579 via CL 19104585 via CL 19110006
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19113840 by zousar shaker in ue5-main branch]
2022-02-24 10:24:10 -05:00
devin doucette
6dd39d0d04 DDC: Fixed -DDC-All-MissRate to work with callers that expect consistent hits on the same key
Fixes the accumulation of stats in the async wrapper as well.

#jira UE-143606
#preflight 6216a933a45a91013f3f4047
#lockdown Aurel.Cordonnier
#rb Zousar.Shaker
#rnx

#ROBOMERGE-OWNER: Devin.Doucette
#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-COMMAND: _robomerge UE5-Main
#ROBOMERGE-SOURCE: CL 19102208 in //UE5/Release-5.0/... via CL 19102301
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19102315 by devin doucette in ue5-main branch]
2022-02-23 17:04:41 -05:00
devin doucette
a2fba58903 DDC: Destroy the cache store graph when shutting down the cache
#jira UE-116166
#preflight 620ea11c7509be98435db253
#lockdown Aurel.Cordonnier
#rb Zousar.Shaker

#ROBOMERGE-OWNER: Devin.Doucette
#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-COMMAND: _robomerge UE5-Main
#ROBOMERGE-SOURCE: CL 19092848 in //UE5/Release-5.0/... via CL 19096129
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19096234 by devin doucette in ue5-main branch]
2022-02-23 13:47:00 -05:00
devin doucette
0e929ad2f3 DDC: Re-added the in-flight cache for async puts
- Legacy puts are now executing asynchronously.
- Memory cache now merges partial cache records.
- Memory cache is used to store data temporarily while it is being written by an async put.
- Expanded the deprecation of persisted boot/memory caches, which no longer offer the performance benefit that they used to.
- Fixed the pak file cache to skip data with a compressed size of over 2 GiB.

#jira UE-141307
#preflight 620d85f93609e19371510fb1
#lockdown Aurel.Cordonnier
#rb Zousar.Shaker
#rnx

#ROBOMERGE-OWNER: Devin.Doucette
#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-COMMAND: _robomerge UE5-Main
#ROBOMERGE-SOURCE: CL 19076205 in //UE5/Release-5.0/... via CL 19094550
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19095974 by devin doucette in ue5-main branch]
2022-02-23 13:40:18 -05:00
devin doucette
792dbb1d33 DDC: Fixed MissTypes configuration broken by the new legacy key format
#jira none
#preflight 620bd6fb475fb819ddc646c2
#lockdown Aurel.Cordonnier
#rb Zousar.Shaker
#rnx

#ROBOMERGE-OWNER: Devin.Doucette
#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-COMMAND: _robomerge UE5-Main
#ROBOMERGE-SOURCE: CL 19075175 in //UE5/Release-5.0/... via CL 19094294
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19095954 by devin doucette in ue5-main branch]
2022-02-23 13:39:39 -05: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
5f7ace679b Improve error handling and messaging when Horde Storage server has errors during the multi-step PUT of structured data (records or values).
#rb devin.doucette
#jira UE-142763
#preflight 620c1c9901253d2e19ecebeb
#lockdown aurel.cordonnier

#ROBOMERGE-AUTHOR: zousar.shaker
#ROBOMERGE-SOURCE: CL 19059654 in //UE5/Release-5.0/... via CL 19074796
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19076670 by zousar shaker in ue5-main branch]
2022-02-22 13:55:39 -05:00
zousar shaker
022ac1483a Fix for Unity name collision on MakeArrayView.
#jira UE-143154
#preflight 620edc52c91bcd0017af81c5
#rb matt.peters
#lockdown mitchell.wilson


#ROBOMERGE-AUTHOR: zousar.shaker
#ROBOMERGE-SOURCE: CL 19044958 via CL 19045096 via CL 19045152 via CL 19045155 via CL 19045399
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v918-19018356)

[CL 19045909 by zousar shaker in ue5-main branch]
2022-02-17 20:05:08 -05:00
danny couture
1f388a417c Fix audio crash when using -DDC-All-MissTypes on streamed audio by only returning DDC miss until a put is done.
- Infinite misses break the editor in too many ways as we often rely on the local cache to be working correctly as off-memory storage.

#rnx
#rb Devin.Doucette
#preflight 620e36ea7e2cef4bf1d255a2

[CL 19033237 by danny couture in ue5-main branch]
2022-02-17 06:59:36 -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
5953a87414 DDC: Fixed an error caught by StressTestUnity
#jira none
#preflight 620af27d583261b0a67b105b
#lockdown Aurel.Cordonnier
#rb Zousar.Shaker
#rnx

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

[CL 18997149 by devin doucette in ue5-main branch]
2022-02-15 11:27:30 -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
c800de44ea Value API support for S3 DDC backend.
#rb devin.doucette
#jira UE-134381
#lockdown aurel.cordonnier
#preflight 62060b280d0c8cd8abb00af0

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

[CL 18955205 by zousar shaker in ue5-main branch]
2022-02-11 12:57:03 -05:00
devin doucette
70d0aea9a6 DDC: Added support for 64-bit sizes in the legacy cache
Includes an optimization to avoid an extra copy of data loaded from the cache.

#jira UE-103039
#preflight 6205f379b84973a2bb76d942
#lockdown Aurel.Cordonnier
#rb Zousar.Shaker

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

[CL 18955195 by devin doucette in ue5-main branch]
2022-02-11 12:56:47 -05:00
zousar shaker
82fa907ee1 Value API support for PAK DDC backend.
#rb devin.doucette
#jira UE-134381
#lockdown aurel.cordonnier
#preflight 62059568a155a4cddac9e324

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

[CL 18946566 by zousar shaker in ue5-main branch]
2022-02-10 18:46:59 -05:00
zousar shaker
54406ad0b8 Value API support for Memory DDC backend.
#rb devin.doucette
#jira UE-134381
#lockdown mark.lintott
#preflight 62055c084c6c33118fadaf04

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

[CL 18942059 by zousar shaker in ue5-main branch]
2022-02-10 15:29:38 -05:00
devin doucette
778a7d292b DDC: Added compression support to legacy cache values
The cache stores can individually control their "legacy mode" now, which offers a choice of ValueOnly, ValueWithLegacyFallback, LegacyOnly.
- Using ValueOnly will forward every legacy request through the Value API, which compresses values by default and supports values larger than 2 GiB.
- Using ValueWithLegacyFallback behaves like ValueOnly, but misses from GetValue are forwarded to GetCachedData, and stored with PutValue if found.
- Using LegacyOnly will forward every legacy request through the Legacy API.

FLegacyCacheValue uses shared state to ensure that each value is compressed or decompressed at most once.

#jira UE-134381
#preflight 62054b430c64e1822f41231b
#lockdown Mark.Lintott
#rb Zousar.Shaker
#rnx

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

[CL 18941401 by devin doucette in ue5-main branch]
2022-02-10 14:57:42 -05:00
devin doucette
87fd32cbac DDC: Fixed an error in GetChunks in the pak file cache
#jira MH-5194
#preflight 620559904c6c33118fad9a05
#lockdown Aurel.Cordonnier
#rb Zousar.Shaker
#rnx

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

[CL 18941355 by devin doucette in ue5-main branch]
2022-02-10 14:55:00 -05:00
Matt Peters
f76045bb7e LowLevelMemTracker - add scopes for some large allocations during cooking.
#rb Devin.Doucette
#rnx
#preflight 62047a600a1c4eb68f555ba5

[CL 18930861 by Matt Peters in ue5-main branch]
2022-02-09 21:53:31 -05:00
devin doucette
c2a46c2242 DDC: Fixed a test failure for small values in the file system cache
#jira UE-141632
#preflight 6202b6c9bf28c072cbf308ce
#lockdown Mark.Lintott
#rb Matt.Peters
#rnx

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18909346 in //UE5/Release-5.0/... via CL 18909604 via CL 18909733
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v915-18905420)

[CL 18909753 by devin doucette in ue5-main branch]
2022-02-08 16:07:34 -05:00
devin doucette
2ae070347f DDC: Fixed a memory leak in the cache
#jira UE-141335
#preflight 620294f5bd4f846436e5f4c6
#lockdown Mark.Lintott
#rb Matt.Peters
#rnx

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18903655 in //UE5/Release-5.0/... via CL 18903892 via CL 18904098
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v912-18901109)

[CL 18904146 by devin doucette in ue5-main branch]
2022-02-08 12:17:15 -05:00
zousar shaker
df06aa0d18 Allow for region pinning when connecting to Jupiter. Fix value printing error. Increase concurrent PUT operations from 2 to 4 when batching is enabled.
#preflight 6201d9c7384d6a94e8fc20d7
#jira UE-141733
#rb devin.doucette

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

[CL 18899684 by zousar shaker in ue5-main branch]
2022-02-08 01:56:17 -05:00
devin doucette
c03d680063 DDC: Fixed propagation of cache values when a value policy contains SkipData
#jira UE-141576
#preflight 61fe001fdb3d0b17a933391c
#lockdown Mark.Lintott
#rb Zousar.Shaker
#rnx

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18896581 in //UE5/Release-5.0/... via CL 18896633 via CL 18896789
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18897023 by devin doucette in ue5-main branch]
2022-02-07 20:06:56 -05:00