Commit Graph

454 Commits

Author SHA1 Message Date
devin doucette
14bcbbe4c6 DDC: Updated the stat dialog layout and split Zen to include its local stats and upstream stats
#rb Zousar.Shaker
#rnx
#preflight 61bba91ac32d830955820a47

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

[CL 18481812 by devin doucette in ue5-release-engine-test branch]
2021-12-16 19:56:35 -05:00
devin doucette
68dcdf74a1 DDC: Folded the corruption wrapper into the S3 cache
#rb Zousar.Shaker
#rnx
#preflight 61badf093961edbe76d77bf1

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

[CL 18481156 by devin doucette in ue5-release-engine-test branch]
2021-12-16 19:04:45 -05:00
devin doucette
73b904baed DDC: Extended the S3 cache with the ability to do local generation and decompression of bundles
#rb Zousar.Shaker
#preflight 61ba653d055f301345a1457a

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

[CL 18471721 by devin doucette in ue5-release-engine-test branch]
2021-12-15 17:23:24 -05:00
devin doucette
f7ff6e2de1 DDC: Fixed the file access log to write paths relative to the cache directory
#rb Bryan.Johnson
#rnx
#preflight 61ba63d7055f301345a0f56b

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

[CL 18471478 by devin doucette in ue5-release-engine-test branch]
2021-12-15 17:03:40 -05:00
devin doucette
844d30fa29 DDC: Fold the corruption wrapper into the file system cache store
#rb Zousar.Shaker
#rnx
#preflight 61b98c448f57c5c0c234fb17

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

[CL 18466801 by devin doucette in ue5-release-engine-test branch]
2021-12-15 09:30:12 -05:00
charles bloom
d6c8d22b81 Fix DDC should not sanitize $ characters because it makes $ characters
SanitizeCacheKey and ValidateCacheKey should check the same condition

#rb devin.doucette, danny.couture

#ROBOMERGE-AUTHOR: charles.bloom
#ROBOMERGE-SOURCE: CL 18455963 in //UE5/Release-5.0/... via CL 18455975
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v898-18417669)

[CL 18455987 by charles bloom in ue5-release-engine-test branch]
2021-12-14 12:35:14 -05:00
devin doucette
1ff24789c0 DDC: Added FPayload::RemoveData() to simplify converting payloads to references
#rb Zousar.Shaker
#rnx
#preflight 61b7b81ff42e2f02a8fda898

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18449038 in //UE5/Release-5.0/... via CL 18449046
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18449051 by devin doucette in ue5-release-engine-test branch]
2021-12-13 16:38:01 -05:00
devin doucette
559754c569 DDC: Removed accessors for raw data from FCacheRecord
Use GetValue().GetData().Decompress() in place of GetValue(), or the equivalent for GetAttachment(Id). The removed accessors kept a cache of the decompressed payload and required synchronization to be safe to call from multiple threads.

#rb Zousar.Shaker
#rnx
#preflight 61b7a41efc570891338e17aa

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18447623 in //UE5/Release-5.0/... via CL 18448002
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18448136 by devin doucette in ue5-release-engine-test branch]
2021-12-13 15:24:25 -05:00
devin doucette
8161902f38 DDC: Exposed payload compression block size through the cache record and build function interfaces
#rb Zousar.Shaker
#rnx
#preflight 61b7721bdd0e83c861a420d8

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18444327 in //UE5/Release-5.0/... via CL 18445345
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18445509 by devin doucette in ue5-release-engine-test branch]
2021-12-13 13:44:06 -05:00
devin doucette
4d164bdfd5 DDC: Added a uint64 UserData to ICacheStore requests to make completion callbacks more efficient
Requests to Put and Get now specify the policy independently for each record or key, but the implementations have not yet been updated to take this into account.

The existing Put and Get API has been maintained temporarily to allow the conversion to happen separately, and will be removed after callers have been converted to use the new API.

#rb Zousar.Shaker
#rnx
#preflight 61b2e550ee0de9822e2e84dc

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18443052 in //UE5/Release-5.0/... via CL 18445037
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18445201 by devin doucette in ue5-release-engine-test branch]
2021-12-13 13:32:28 -05:00
devin doucette
86dfb790ef DDC: Optimized GetChunks in the file system cache store to read only the requested range from disk
Contains changes to other structured cache file access to stream data from archives instead of loading the whole file into memory. The record package will now be split into separate allocations on load, rather than the previous behavior where the whole package was kept in memory as long as any part of it was referenced.

#rb Zousar.Shaker
#rnx
#preflight 61b11fd75238845473be0c30

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18413427 in //UE5/Release-5.0/... via CL 18413472
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18413485 by devin doucette in ue5-release-engine-test branch]
2021-12-08 17:15:36 -05:00
devin doucette
27c1393427 CompressedBuffer: Removed partial decompression from FCompressedBuffer now that FCompressedBufferReader is available
Requiring the use of a separate reader type makes it more likely that readers will be reused, and makes it easier to audit reader usage going forward. Reusing readers is desirable to reduce the number of large temporary allocations made during partial decompression of a buffer.

- Added FCompressedBuffer::Save(FArchive&) and renamed FromCompressed(FArchive&) to Load(FArchive&).
- Added FCompressedBufferReaderSourceScope to set a buffer source within a scope.
- Added proper bounds checks to FNoneDecoder.
- Store the header checksum on the decoder context to allow raw blocks to be reused across sources.
- Decode the header on the fly to avoid a temporary header allocation when the header is in contiguous memory.

#rb Zousar.Shaker
#rnx
#preflight 61a98d53800738dbfbc84c73

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18382211 in //UE5/Release-5.0/... via CL 18382310
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)

[CL 18382377 by devin doucette in ue5-release-engine-test branch]
2021-12-06 10:16:05 -05:00
devin doucette
cea98e6ab4 DDC: Split build diagnostics into messages and logs
Messages are deterministic output recorded explicitly by the build function. Logs will be automatically captured from the output log and are not necessarily deterministic. The presence of logs in a build output automatically disables caching of the build output.

#rb Zousar.Shaker
#rnx

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18286155 in //UE5/Release-5.0/... via CL 18286173
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18286201 by devin doucette in ue5-release-engine-test branch]
2021-11-24 13:25:25 -05:00
mark lintott
a90eaa1e87 Optimise FZenDerivedDataBackend::IsRemote() by checking the once on backend creation and caching the result
#jira UE-135791
#rb trivial
[FYI] zousar.shaker
#preflight 619e27c3aa4521f9e7b6b567

#ROBOMERGE-AUTHOR: mark.lintott
#ROBOMERGE-SOURCE: CL 18282332 in //UE5/Release-5.0/... via CL 18282340
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18282346 by mark lintott in ue5-release-engine-test branch]
2021-11-24 07:17:42 -05:00
Marc Audy
0c3be2b6ad Merge Release-Engine-Staging to Test @ CL# 18240298
[CL 18241953 by Marc Audy in ue5-release-engine-test branch]
2021-11-18 14:37:34 -05:00
devin doucette
a6c9c59388 DDC: Fixed the async put wrapper with -NoThreading
#rb Zousar.Shaker
#rnx
#preflight 6194654c34377daf864d4f80

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18223152 in //UE5/Release-5.0/... via CL 18223191
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 18223207 by devin doucette in ue5-release-engine-test branch]
2021-11-17 09:49:24 -05:00
devin doucette
a171327680 DDC: Added structured cache support to the pak file cache store
#rb Zousar.Shaker
#rnx
#preflight 61942ee0cc0baff9b08f7659

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18218377 in //UE5/Release-5.0/... via CL 18218399
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 18218408 by devin doucette in ue5-release-engine-test branch]
2021-11-16 21:12:12 -05:00
devin doucette
4ae155a04b DDC: Improved the cache fill behavior of the hierarchical backend for the structured cache
#rb Zousar.Shaker
#rnx
#preflight 61945597f65efa9243e340da

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18218366 in //UE5/Release-5.0/... via CL 18218394
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 18218405 by devin doucette in ue5-release-engine-test branch]
2021-11-16 21:12:04 -05:00
devin doucette
af6b0b0dd2 DDC: Fixed the size calculation for partial payload reads in the file system cache store
#rb Zousar.Shaker
#rnx
#preflight 61942eab1c373afe37b20142

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18217611 in //UE5/Release-5.0/... via CL 18217675
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 18217685 by devin doucette in ue5-release-engine-test branch]
2021-11-16 20:09:56 -05:00
devin doucette
b958bf4af6 DDC: Fixed file system cache maintenance with -NoThreading
#rb Zousar.Shaker
#rnx

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18194101 in //UE5/Release-5.0/... via CL 18194138
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 18194155 by devin doucette in ue5-release-engine-test branch]
2021-11-15 13:56:02 -05:00
devin doucette
17c37e1a01 DDC: Reorganize the code in the file system cache store
No functional changes, only bringing the code style in line with the current coding standards since nearly the entire file has been modified for 5.0 anyway.

#rb none
#rnx

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18135592 in //UE5/Release-5.0/... via CL 18135607
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v889-18060218)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 18135617 by devin doucette in ue5-release-engine-test branch]
2021-11-10 14:44:18 -05:00
devin doucette
53f316587b DDC: New filesystem cache store directory layout and file format
- Implemented only for the structured cache initially.
- Records are stored as compact binary packages with payloads stored within the record if small enough.
- Records are stored in Records/{Bucket}/{01}/{23}/{456789abcdef0123456789abcdef01234567} based on the hash in the cache key.
- Content that exceeds the size allowed for storage within the record is stored in Content/{01}/{23}/{456789abcdef0123456789abcdef01234567} based on the hash of the content.
- Both records and content are written to disk with their hash as a suffix, and are always checked on load.
- Maximum size of compressed data stored in the package can be configured by MaxRecordSizeKB and MaxValueSizeKB.
- Maintenance of the cache, to delete unused files, has been rewritten and can now scan ~175k files/second on modern hardware, though is limited to 10k files/second in the config to avoid adding too much overhead.

#rb Zousar.Shaker
#preflight 618b75c14a0c609a29204032
#preflight 618bfb5ec717ba4e929b7ac0

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18133085 in //UE5/Release-5.0/... via CL 18133356
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v889-18060218)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 18133430 by devin doucette in ue5-release-engine-test branch]
2021-11-10 13:08:00 -05:00
aurel cordonnier
fc542f6cfd Merge from Release-Engine-Staging @ 18081189 to Release-Engine-Test
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971

[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
2021-11-07 23:43:01 -05:00
devin doucette
3fd0edf1c2 DDC: Added a missing request barrier in the hierarchical backend
#rb Zousar.Shaker
#rnx

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18040463 in //UE5/Release-5.0/... via CL 18040477
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v885-17909292)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 18040498 by devin doucette in ue5-release-engine-test branch]
2021-11-03 16:32:08 -04:00
devin doucette
6f080fc3f1 DDC: Added a ServerID field to the Jupiter configuration to allow reading settings from another section
When ServerID is used, configuration is first loaded from a key matching the ServerID field, in the HordeStorageServers section of the same INI. This makes it easier to put Jupiter configuration in a consistent place and have it stripped by the cooker to avoid leaking any of the configuration.

#rb Zousar.Shaker
#rnx
#preflight 617a28570cec4300011619d4

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 17961730 in //UE5/Release-5.0/... via CL 17961740
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v885-17909292)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17961744 by devin doucette in ue5-release-engine-test branch]
2021-10-28 09:39:12 -04:00