Commit Graph

59 Commits

Author SHA1 Message Date
Devin Doucette
a05f939c6b CompactBinary: Renamed and added overloads to FCbWriter to clarify behavior and allow specifying name and value in the same function
#rb Zousar.Shaker
#rnx

[CL 15303766 by Devin Doucette in ue5-main branch]
2021-02-03 18:37:36 -04:00
Devin Doucette
d273616103 CompactBinary: Renamed Reference to Attachment to clarify the expected relationship between reference fields and package attachments
#rb trivial
#rnx

[CL 15299118 by Devin Doucette in ue5-main branch]
2021-02-03 14:33:20 -04:00
Devin Doucette
90298de5c2 DDC: Added the value hash to FCacheRecord and made it easier to access object values
#rb Matt.Peters
#rnx

[CL 15237973 by Devin Doucette in ue5-main branch]
2021-01-28 09:50:58 -04:00
Devin Doucette
e9b798ca9c CompactBinary: Converted from FBlake3Hash to FIoHash
#rb Zousar.Shaker
#rnx

[CL 15212418 by Devin Doucette in ue5-main branch]
2021-01-26 18:17:02 -04:00
danny couture
0790ec6eb0 Create a separate thread pool for the I/O portion of DDC requests to avoid clogging the workers with long I/O waits
Add queued work priority support to auto delete async tasks and schedule DDC Puts as Low priority
ThreadPool threads are now honoring the names they've been given on creation
Move the I/O only async DDC Get into the DDC ThreadPool with higher priority (Normal) than DCC Puts

#rb Devin.Doucette

[CL 15177897 by danny couture in ue5-main branch]
2021-01-25 10:55:26 -04:00
Devin Doucette
3fdb9bc4e5 CompactBinary: Rename Reference to CompactBinaryReference for clarity and consistency
#rb Zousar.Shaker
#rnx

[CL 15169906 by Devin Doucette in ue5-main branch]
2021-01-23 02:45:14 -04:00
mark lintott
6c3abefe2f #rb Devin.Doucette
Added stats for Cloud based DCC ( ie Jupiter ) to DDC.Summary
Added BackEnd name to DDC.Summary
Added HasLocalDDC, HasSharedDDC, HasCloudDDC to DDC.Summary

[CL 15164347 by mark lintott in ue5-main branch]
2021-01-22 12:20:09 -04:00
Marc Audy
bc88b73a29 Merge Release-Engine-Staging to Main @ CL# 15151250
Represents UE4/Main @ 15133763

[CL 15158774 by Marc Audy in ue5-main branch]
2021-01-21 16:22:06 -04:00
Devin Doucette
0c7d307086 DDC: Removed ECachePolicy::Overwrite because there is not a valid use case for it
#rb Zousar.Shaker
#rnx

[CL 15154520 by Devin Doucette in ue5-main branch]
2021-01-21 11:37:24 -04:00
Devin Doucette
7bd5b197e8 DDC: Added the new cache interface UE::DerivedData::ICache
ICache will eventually replace the existing cache access functions on FDerivedDataCacheInterface. The notable differences relative to the existing interface are:

- It is asynchronous with completion callbacks by default, and allows waiting when necessary.
- It allows batch requests containing multiple cache records by default.
- It uses a structured cache key made up of a bucket name and a hash.
- It supports prioritization and cancellation of requests.
- It supports structured cache records with metadata.
- It supports attachments to allow multi-part cache records.
- It uses a typed request object instead of an opaque integer handle.
- It provides cache policy flags to control how to query and store cache records, and which parts of a cache record to fetch.

This initial implementation of ICache is totally synchronous and uses the existing cache backends for storage.

#rb Zousar.Shaker

[CL 15152247 by Devin Doucette in ue5-main branch]
2021-01-21 01:57:01 -04:00
Devin Doucette
6b3ce5c706 DDC: Changed CachedDataProbablyExistsBatch to call CachedDataProbablyExists for a batch size of 1
#rb Zousar.Shaker
#rnx

[CL 15019812 by Devin Doucette in ue5-main branch]
2021-01-08 11:44:45 -04:00
Devin Doucette
e6401b0897 DDC: Added variants of CachedDataProbablyExists that check multiple keys
#rb Matt.Peters
#fyi Joakim.Lindqvist, Stefan.Boberg

[CL 14998596 by Devin Doucette in ue5-main branch]
2021-01-06 09:27:11 -04:00
Marcus Wassmer
3b81cf8201 Merging using //UE5/Main_to_//UE5/Release-Engine-Staging @14384769
autoresolved files
#rb none

[CL 14384911 by Marcus Wassmer in ue5-main branch]
2020-09-24 00:43:27 -04:00
ben ingram
8b1cd24d0b #jira none
Add some more verbose DDC logging
#rb none

#ROBOMERGE-OWNER: ben.ingram
#ROBOMERGE-AUTHOR: ben.ingram
#ROBOMERGE-SOURCE: CL 12905133 in //UE4/Release-4.25/... via CL 12905135 via CL 12905175
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v682-12900288)

[CL 12907642 by ben ingram in Main branch]
2020-04-18 16:05:20 -04:00
andrew grant
e7779bd965 Added DDC options to engine test to investigate corruption issue
- VerifyDDC option is now correctly passed to the editor for editor-based tests and the cooker for cooked tests
- DDC= option added that allows kicked tests to use a different DDC backend (e.g. noshared). Defaults to 'default' which will use the default DDC set up.

[FYI] zabir.hoque
#jira nojira
#rb swarm
#lockdown cristina.riveron

#ROBOMERGE-SOURCE: CL 12726902 in //UE4/Release-4.25/... via CL 12726918 via CL 12781760
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v681-12776863)

[CL 12782565 by andrew grant in Main branch]
2020-04-14 13:41:19 -04:00
andrew grant
3cc86b3d2f Optimizations for DDC access on remote / slow drives.
If a filesystem node is not available not prompt the user and optionally retry incase they need to mount a drive or start VPN

Fiilesystem nodes now perform a speed test using a selection of 'DDC sized' files to determine a classification (local, fast, ok, slow).

Add a new 'ConsiderSlowAt' property to the 'Filesystem' DDC node type. If latency to the node is >= this value then the node will be marked as slow which disables touch'ing and reduces file stats

Interface Changes

- Add the concept of a speed class to nodes
- Add GetName to nodes for better debugging / logging
- WouldCache query that allows caches to opt of of consideration early and avoid async tasks being created.
- Create a new 'FileBackedDerivedDataBackend' class that's the for the memory/boot backend and future classes
- TryToPrefetch interface functions for future use

Behavior Changes

- Moved parameter parsing into FileSysteDerivedDataBackend as things were getting out of hand
- FileSystemDerivedDataBackend now performs a speed test using 'DDC sized' files in separate directories and applies a classification
- Slow locations turn off touching of data on read
- Slow locations always return true for CachedDataProbablyExists. It's faster just to try to read and fail
- If the shared DDC is not available the user is prompted incase they need to mount it.

[at]ben.marsh [at]josh.engebretson
#rb swarm
#tests lots of PIE runs with / without this option


#ROBOMERGE-SOURCE: CL 12387516 via CL 12387517 via CL 12396622
#ROBOMERGE-BOT: (v671-12333473)

[CL 12396757 by andrew grant in Release-Engine-Staging branch]
2020-03-24 19:12:36 -04:00
Devin Doucette
e8ba41d54f Changed FStringView parameters to virtual functions to pass by value instead of by reference
This is the preferred way to use string views. These interfaces were added in 4.25 so this is the time to fix them without breaking user code.

#jira none
#rb trivial
#rnx

#ROBOMERGE-OWNER: Devin.Doucette
#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 12236111 in //UE4/Release-4.25/... via CL 12236115
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v664-12234175)

[CL 12238549 by Devin Doucette in Main branch]
2020-03-17 22:32:03 -04:00
nick darnell
7fb5ae96d7 Changing the DDC interface to use TArrayView instead of TArray for placing data into the DDC.
Updating the ArrayView with new comparison operators to have greater replacement for what TArray provides.

#rb Marc.Audy, Steve.Robb


#ROBOMERGE-OWNER: nick.darnell
#ROBOMERGE-AUTHOR: nick.darnell
#ROBOMERGE-SOURCE: CL 11843381 via CL 11843463 via CL 11843492
#ROBOMERGE-BOT: (v656-11643781)

[CL 11879995 by nick darnell in Main branch]
2020-03-03 14:33:45 -05:00
devin doucette
ee99e02649 Work around a false positive from static analysis
Static analysis is reporting that certain local variables inside of lambdas are shadowing themselves. Steve.Robb found https://developercommunity.visualstudio.com/content/problem/576913/c6244-regression-in-new-lambda-processorpermissive.html where the same problem was reported last year. Microsoft closed the issue without resolving it.

#jira UE-88014
#rb trivial
#rnx
#robomerge Fortnite-Main

[CL 11215662 by devin doucette in Main branch]
2020-02-04 11:54:28 -05:00
Devin Doucette
070f44a07a Add debug context to DDC requests that take the key as a parameter
The existing GetSynchronous, GetAsynchronous, and Put functions are deprecated in favor of the DebugContext overloads. It is unlikely that a licensee has derived from FDerivedDataCacheInterface, but anyone who does will have a compile error that they override a non-virtual function and that they don't implement a pure virtual function, which will be straightforward to fix.

#rb Zousar.Shaker

#ROBOMERGE-OWNER: Devin.Doucette
#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 11210386 via CL 11210387
#ROBOMERGE-BOT: (v643-11205221)

[CL 11210609 by Devin Doucette in Main branch]
2020-02-03 17:17:56 -05:00
ryan durand
471d972e62 Updating copyright for Engine Developer.
#rnx
#rb none


#ROBOMERGE-SOURCE: CL 10869240 via CL 10869516 via CL 10869902
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870584 by ryan durand in Main branch]
2019-12-26 15:32:37 -05:00
Stefan Boberg
d2f9a61b06 Copy-up from Dev-Core
#rb none

[CL 10419044 by Stefan Boberg in Main branch]
2019-11-25 12:03:09 -05:00
marc audy
dbcf07a558 Use new inline versions of substring functions
Fix up nearby cases where ESearchCase::CaseSensitive should have been used
#jira
#rnx
#rb

#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: marc.audy
#ROBOMERGE-SOURCE: CL 10309793 via CL 10309818
#ROBOMERGE-BOT: (v593-10286020)

[CL 10309932 by marc audy in Main branch]
2019-11-19 13:27:07 -05:00
Stefan Boberg
1f813eb516 Copying //UE4/Dev-Core to Main (//UE4/Main)
#rb many

[CL 9405827 by Stefan Boberg in Main branch]
2019-10-03 16:26:48 -04:00
Stefan Boberg
8607ecb30d Copying //UE4/Dev-Core to Dev-Main (//UE4/Dev-Main)
#rb none

[CL 6815521 by Stefan Boberg in Main branch]
2019-06-03 15:32:00 -04:00