Commit Graph

41 Commits

Author SHA1 Message Date
devin doucette
6f9e8a3995 DDC: Added detection and reporting of Cancel() and Wait() deadlocks in FRequestOwner
#rb Zousar.Shaker

[CL 33982474 by devin doucette in ue5-main branch]
2024-05-29 14:46:55 -04:00
kevin macaulayvacher
6bddcafc06 Ignore cancelations when tracking DDC usage stats as our legacy stat tracking system doesn't represent cancellations and instead gives a false perception about how many cache misses are occurring. The cancellations do have an overhead, but in practice most cancellations are done before network traffic has begun and has very little cost, such that we aren't at a major lossby not tracking this time.
#jira UE-206398
#rb Zousar.Shaker
[FYI] Francis.Hurteau

[CL 32519384 by kevin macaulayvacher in ue5-main branch]
2024-03-26 15:15:39 -04:00
steve robb
66266c6a11 Fixed up DerivedDataCache, DesktopPlatform, ApplicationCore, AssetRegistry, Core, CoreUObject, Projects, Sockets code to use EAllowShrinking instead of bools.
[CL 30676428 by steve robb in ue5-main branch]
2024-01-17 19:51:06 -05:00
zousar shaker
e7e33882d3 Change the internal use of cache flags in the DDC hierarchy to have the flag usage be atomic and avoid needing to take a write lock of the nodes lock when the flags are being set. This is to avoid an issue where recursive read locks can lead to deadlocks in the presence of a write lock. A future change is planned to alter the locks to ones that support recursive use, at which point this change will no longer be necessary.
#rb Devin.Doucette

[CL 30597063 by zousar shaker in ue5-main branch]
2024-01-12 12:47:57 -05:00
dan engelbrecht
ba66b561de For local Zen DDC connections show the path where data is store in the Cache Statistics tab for DDC instead of local ip address
For Zen DDC connection show the storage size
#jira UE-199929
#rb Devin.Doucette

[CL 30501101 by dan engelbrecht in ue5-main branch]
2024-01-09 06:08:29 -05:00
devin doucette
c7cee256ca DDC: Added a fatal error if the cache is not readable or writable
#rb Zousar.Shaker

[CL 30294521 by devin doucette in ue5-main branch]
2023-12-13 11:07:59 -05:00
devin doucette
4cb30fbc48 DDC: Fixed accumulation and reporting of cache store latency
#jira UE-198599
#rb Zousar.Shaker

[CL 29079042 by devin doucette in ue5-main branch]
2023-10-25 03:15:00 -04:00
devin doucette
ce32414b30 DDC: Disabled propagation of gets from the cache of in-flight puts and added support for write-only cache stores
- Do not invoke the put completion callback from the hierarchy until a put to a readable node succeeds, which is now tracked by bFinished.
- Use StopGetStore on the in-flight put cache to stop gets from that cache from propagating as duplicate puts.
- Disable the in-flight put cache for async wrappers used by propagation of gets.

#jira UE-192655
#rb Zousar.Shaker

[CL 27771618 by devin doucette in ue5-main branch]
2023-09-11 17:24:27 -04:00
devin doucette
3df0bf7f14 DDC: Gather bucket stats from the new ICacheStats
#jira UE-133395
#rb Matt.Peters
#rnx

[CL 26555188 by devin doucette in ue5-main branch]
2023-07-24 16:52:05 -04:00
devin doucette
788aec3845 DDC: Disable stats for cache stores that should not be visible
#jira UE-133395
#rb Zousar.Shaker
#rnx

[CL 26192921 by devin doucette in ue5-main branch]
2023-06-22 16:35:48 -04:00
devin doucette
3a730d179e DDC: Added ICacheStoreStats to the Jupiter cache
#jira UE-133395
#rb Zousar.Shaker
#rnx

[CL 26186125 by devin doucette in ue5-main branch]
2023-06-22 12:55:58 -04:00
devin doucette
27cdd0bc2a DDC: Fixed the tests of the cache hierarchy
#rb Zousar.Shaker
#rnx

[CL 25871631 by devin doucette in ue5-main branch]
2023-06-08 10:50:44 -04:00
devin doucette
3897ae4e92 DDC: Added ICacheStoreStats to the memory cache and cleaned up graph node lifetime
#jira UE-133395
#rb Zousar.Shaker
#rnx

[CL 25870464 by devin doucette in ue5-main branch]
2023-06-08 10:07:21 -04:00
devin doucette
5229f46947 DDC: Added ICacheStoreStats and related functionality for cache stores to report stats
#jira UE-133395
#rb Zousar.Shaker
#rnx

[CL 25843613 by devin doucette in ue5-main branch]
2023-06-07 09:47:55 -04:00
devin doucette
6fff9c0396 DDC: Started toward exposing the cache store owner to the cache stores and flattening the hierarchy
- Construct an empty hierarchy first and populate it as the graph is parsed.
- Record the need for async and verify nodes, and create them only at the end.
- Extract parsing of debug options including throttling into the cache store owner.
- Expose the cache store owner to the cache store parsing/creation functions.
- Remove the unused speed class debug option.

#preflight 64777c254b0d5a1eb157ac8b
#rb Joe.Pribele
#rnx

[CL 25713242 by devin doucette in ue5-main branch]
2023-05-31 16:32:05 -04:00
devin doucette
7bcc3722c1 DDC: Fixed merging and filtering of partial records in the cache hierarchy
#rb Zousar.Shaker

[CL 25310446 by devin doucette in ue5-main branch]
2023-05-02 19:07:42 -04:00
Devin Doucette
023e2fd5e8 DDC: Fixed a race condition in the cache hierarchy
The hierarchy now uses a request barrier after the first synchronous request completion. Async requests could occasionally complete fast enough that DispatchRequests would be left to handle the completion. In that scenario, there would not be a barrier in place when beginning any subsequent requests, which would lead to a failed assertion in the request owner.

#preflight 63ceb5c63a03cb0bbff95362
#rb Zousar.Shaker

[CL 23848713 by Devin Doucette in ue5-main branch]
2023-01-25 11:05:29 -05:00
Devin Doucette
d508667187 DDC: Added a missing read lock in the cache hierarchy
#preflight 63751a331d25fe8b93371452
#rb Matt.Peters
#rnx

[CL 23161581 by Devin Doucette in ue5-main branch]
2022-11-16 15:43:58 -05:00
Devin Doucette
9aee9a4bd8 DDC: Fixed unsafe type cast warnings
#preflight 6317fc04a20b67673b1de7c3
#rb Zousar.Shaker
#rnx

[CL 21850770 by Devin Doucette in ue5-main branch]
2022-09-07 10:37:16 -04:00
devin doucette
9b905880aa DDC: Fixed UserData value returned by the cache hierarchy
#rb trivial
#rnx

[CL 21449943 by devin doucette in ue5-main branch]
2022-08-18 17:04:23 -04:00
Devin Doucette
055ba32b38 DDC: Added partial cache record propagation to the hierarchy, with tests
#jira UE-156058
#preflight 62fd59d5e64b1a51093918f8
#rb Zousar.Shaker

[CL 21441390 by Devin Doucette in ue5-main branch]
2022-08-18 09:51:07 -04:00
devin doucette
1d698f7814 DDC: Removed the remaining legacy cache implementations and made the default implementation non-virtual
#preflight 62a38afedf2d057cb2814ea4
#rb Steve.Robb
#rnx

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 20601122 via CL 20601125 via CL 20601130
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)

[CL 20602835 by devin doucette in ue5-main branch]
2022-06-10 17:21:00 -04:00
Devin Doucette
da04ab9644 DDC: Fixed cache put propagation for nodes that store async
#preflight 62798a72242446ce6c69df25
#rb Zousar.Shaker
#rnx

[CL 20121708 by Devin Doucette in ue5-main branch]
2022-05-10 08:46:00 -04:00
Devin Doucette
7a50c98265 DDC: Added propagation of cache records that contain metadata with no values
#preflight 62797bdd4561731dbe10ecdf
#rb Matt.Peters

[CL 20111217 by Devin Doucette in ue5-main branch]
2022-05-09 17:18:23 -04:00
Devin Doucette
fa8f3dbe82 DDC: Fixed duplicate puts caused by the in-flight memory cache
Without using StopGetStore, get hits on the in-flight cache would propagate as puts to subsequent nodes in the hierarchy. Since the in-flight cache is only used as temporary storage while a put is in flight, this caused duplicates of the in-flight puts, which manifests as move collision log spam from the file system cache store.

#preflight 625d772d691f49969ea93249
#rb Zousar.Shaker
#rnx

[CL 19785647 by Devin Doucette in ue5-main branch]
2022-04-18 11:06:05 -04:00