Zenserver local DDC and controlling GC

Hi,

we have Virtual Assets configured in our projects and are running into an issue when an outsourcer user does not have access to Perforce or our Zen shared DDC.

The outsourcers do precaching on a machine connected to our perforce server and then copy the Zen local to the other users machines.

It seems however that garbage collection is removing payloads when the user starts the editor.

How can we control the garbage collection for the Zen local DDC?

Also, if we get them to setup a Zen server for shared DDC, with the precache will the payloads be cached always on the shared server or only when ithe payload doesn’t exist in the Zen local DDC?

[Attachment Removed]

ZenLocal DDC is configured by default to garbage collect DDC data that hasn’t been accessed in the past 14 days. This is controlled by the gc-cache-duration-seconds config value seen in BaseEngine.ini (see below). It is possible that if you’re copying in a ZenLocal data folder from weeks ago, that upon startup it sees the data as being older than 14 days and starts cleaning it up. Forcing GC off could lead to other problems.

[Zen.AutoLaunch]
...
ExtraArgs=--http asio --gc-cache-duration-seconds 1209600 --gc-interval-seconds 21600 --gc-low-diskspace-threshold 2147483648 --cache-bucket-limit-overwrites --quiet

My suggestion in this situation would be to setup a ZenShared DDC for those outsources if they share an office. That ZenShared DDC server can be configured to have a longer retention. There’s also the further step of setting up a globally replicated Cloud DDC if there’s a real need for it.

To your question about setting up zen shared and whether payloads will be cached always on the shared server - assuming you have GC on the shared server and all keys are cached in users local ddcs, then eventually the zen shared DDC will see keys haven’t been accessed in the GC duration and it will start to clean them up from the zen shared. This challenge of updating access times in a hierarchical cache is something we’ve been discussing lately and we hope to implement a solution for it. Right now the strategies for addressing this class of issue are mostly manual and we want to make them more automatic. [mention removed]​ for visibility on this discussion point.

[Attachment Removed]