Hey folks, I have a quick question.
<br/>
I’ve read through the docs on Zen as a Shared DDC and the Zen Streaming stuff but wanted to clarify something, after I noticed something cool by accident.
<br/>
The context and the cool thing I noticed was that, I left the flags to enable Zen Streaming on, on one PC. That PC was running just “zen.exe” as a local DDC normally from LocalAppData. On a second PC, I was then able to connect to that regular Zen instance as a shared DDC.
<br/>
I’ve done this in past for streaming, cooked on PC A, streamed that to PC B. I didn’t realise that you could do this for the DDC functionality also. Was that intentional?
<br/>
But it got the cogs turning. We have build machines connected to a shared Zen instance, that are constantly cooking. We have Zen as Cook Output turned on in our project settings.
<br/>
Should we theoretically be able to point toward the shared Zen and stream from that? I did just put the IP in the -ZenStoreHost=X.X.X.X to no avail. Hence why I’m here. I guess I’m wondering if this tree is worth barking up. Whether we may have a block on our network somewhere preventing it, or if it isn’t supposed to work.
<br/>
The docs allude to the possibility of this working, but I couldn’t spot an explicit declaration that any “Zen Server” detailed in the diagrams was a ZenShared instance vs an instance not deliberately set up as a shared instance, like in my happy accident. Happy to be proven wrong if you point me to the line where it states one way or the other. 
<br/>
Many thanks,
David
[Attachment Removed]
re: I’ve done this in past for streaming, cooked on PC A, streamed that to PC B. I didn’t realise that you could do this for the DDC functionality also. Was that intentional?
The setup for DDC tries to ensure that local zen and shared zen are as similar as possible, that’s why this works out for you. It’s intentional, but it’s not the ideal setup for a couple of reasons:
- Local zenserver may become more locked down for remote access control in the future, where-as the shared zen configuration is specifically designed to be wide access within a LAN
- In terms of performance, the shared zenserver configuration uses “dedicated” mode and “httpsys” server (on windows), and those configurations influence performance and scalability in a way that the local zenserver won’t be configured for.
So ya, overall, you can use it, but beware that it may get more locked down and not be ideal for performance.
re: Should we theoretically be able to point toward the shared Zen and stream from that?
This can be done, but requires some care to get it working. Specifically you’d have to specify -ZenStoreProject=<Foo> also. The Project ID is of the form “ProjectName.AlphaNumeric” where AlphaNumeric is a base64 encoding of the absolute path to the uproject on that machine. You can go look up what to use for it by looking at http://<my_cooking_machine>:8558/dashboard/ and browsing the projects that are present. There might be some other things that come up and require debugging, but fundamentally the client shouldn’t care much whether you’re streaming from your workstation or from some other host used to produce builds. It will require that the client matches changelist/revision with the cooked data that was produced, but otherwise it should work.
Internally we’re using the “Cooked Data Snapshots” method to get cooked data into your local zenserver, but that doesn’t preclude you from also doing what you described.
https://dev.epicgames.com/documentation/en\-us/unreal\-engine/cooked\-data\-snapshots\-with\-zen\-storage\-server\-for\-unreal\-engine
[Attachment Removed]
Yes, they should be the same. So it’s odd that you’re not seeing it on the shared zen dashboard. I think this will require more debugging from you to make sure that the data is being stored where you think it is at cook time.
[Attachment Removed]
Thanks David. I’ll be curious what you find as you dig into it.
[Attachment Removed]
Hey Zousar,
We actually don’t see those numerical IDs, or any entries in the Projects table, on the dashboard for our shared machines. Does that indicate a problem? I do see them on the dashboard on my local PC. I imagine that they’re the same right?
Many thanks,
David
[Attachment Removed]
I’ll dig into it when I can. In the meantime, I have a suspicion that it’s to do with the fact we don’t have a copy of the project checked out on the PCs we use as shared DDCs. Right now that feels like a “why would we” kind of deal. Maybe the answer to that question is because it needs to have it to work. Though I am relatively confident the shared DDC is working, it appears in our Cache Stats panel, and frequently returns a high hit rate when loading levels with minimal changes. Not to mention we see a noticable slow down on branches that use a different setup without it.
Many thanks,
David
[Attachment Removed]