- Reading files from the Game Thread now launches a task to check and update the modification time, which approximately halves the latency of these reads.
- Writing files now only asks to delete the temporary file upon failure, as it added unnecessary latency before by trying to delete it after it was renamed.
#preflight 6272d5b21f37fd32b0f07652
#rb Zousar.Shaker
[CL 20048278 by Devin Doucette in ue5-main branch]
- Added deletion of empty directories.
- Applied the rate limit to directory scans.
- Reduced the default scan rate by a factor of 10.
#preflight 626c3a8b0f5f22f922511514
#rb Zousar.Shaker
[CL 19984889 by Devin Doucette in ue5-main branch]
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]
Without using StopStore, 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 625835d97f628a9018d8acf6
#rb Zousar.Shaker
#rnx
[CL 19757142 by Devin Doucette in ue5-main branch]
Except when replacing an existing value, load the existing value and check for determinism, and replace the existing value in the presence of an invalid value or non-deterministic value with missing content. This resolves move collisions being reported when a value existed without its content.
#preflight 62582c69946114248db5561f
#rb Zousar.Shaker
#rnx
[CL 19756384 by Devin Doucette in ue5-main branch]
The wrong response status was being checked, and caused subsequent nodes to be skipped even if the StopStore node did not contain the data, if any previous node contained the data.
#preflight 62582d67946114248db62d58
#rb Zousar.Shaker
#rnx
[CL 19756375 by Devin Doucette in ue5-main branch]
The function is shared with the legacy cache store to allow callers of the legacy API to migrate to the value API using this conversion function without invalidating existing cache keys.
#preflight 624c9ab68d1db441a913137e
#rb Zousar.Shaker
[CL 19630681 by Devin Doucette in ue5-main branch]
In the examples below, <Node> is the name of a node in the cache store graph, or All to apply to every node.
-DDC-<Node>-MissTypes=StaticMesh+Texture will simulate a miss on every access to to static mesh and texture keys.
-DDC-<Node>-MissTypes=StaticMesh@12.5+Texture will simulate misses on 12.5% of accesses to static mesh keys and every access to texture keys.
-DDC-<Node>-MissRate=5 -DDC-<Node>-MissTypes=Texture will simulate misses on every access to texture keys and 5% of other keys.
-DDC-<Node>-MissRate=5 will simulate misses on 5% of keys.
-DDC-<Node>-MissSalt=PositiveInt32 will set the salt used to match keys to simulate misses on. A key always has the same simulated miss behavior with the same salt.
#preflight 6244d102b33098a72dc136df
#rb Zousar.Shaker
[CL 19572200 by Devin Doucette in ue5-main branch]